Interface ITextStyle

ITextStyle interface

टेक्स्ट स्टाइल के साथ काम करने के लिए इंटरफ़ेस

public interface ITextStyle

गुण

नामविवरण
AutoKerning { get; set; }ऑटो कर्निंग प्राप्त करता है या सेट करता है।
AutoLeading { get; set; }एक मान प्राप्त करता है या सेट करता है जो दर्शाता है कि [स्वचालित अग्रणी].
BaselineShift { get; set; }बेसलाइन शिफ्ट।
ContextualAlternates { get; set; }अक्षरों को एक साथ जोड़ने के लिए प्रयुक्त प्रासंगिक विकल्प।
DiscretionaryLigatures { get; set; }विशेष रूप से स्क्रिप्ट फोंट में अक्षरों को जोड़ने के लिए उपयोग किए जाने वाले विवेकाधीन संयुक्ताक्षर।
FauxBold { get; set; }हो जाता है या गलत बोल्ड सक्षम है सेट करता है।
FauxItalic { get; set; }हो जाता है या गलत बोल्ड सक्षम है सेट करता है।
FillColor { get; set; }फिल का रंग प्राप्त या सेट करता है।
FontBaseline { get; set; }फ़ॉन्ट आधार रेखा।
FontCaps { get; set; }फ़ॉन्ट कैप।
FontIndex { get; }फॉन्ट इंडेक्स प्राप्त करता है।
FontName { get; set; }फ़ॉन्ट नाम प्राप्त या सेट करता है।
FontSize { get; set; }फ़ॉन्ट का आकार प्राप्त या सेट करता है।
Fractions { get; set; }भिन्न प्रतीकों को विशेष ग्लिफ़ से बदला जा सकता है।
HindiNumbers { get; set; }एक मान प्राप्त या सेट करता है जो दर्शाता है कि [हिंदी संख्या].
HorizontalScale { get; set; }क्षैतिज पैमाना।
IsStandardVerticalRomanAlignmentEnabled { get; set; }मानक लंबवत रोमन संरेखण प्राप्त या सेट करता है। यह बेसलाइन डायरेक्शन संसाधन मान पर आधारित केवल तभी लागू होता है जब टेक्स्ट ओरिएंटेशन होता हैVertical .
Kerning { get; set; }कर्निंग प्राप्त या सेट करता है।
LanguageIndex { get; }भाषा अनुक्रमणिका प्राप्त करता है.
Leading { get; set; }अग्रणी हो जाता है या सेट करता है।
NoBreak { get; set; }नो ब्रेक वैल्यू सेट करता है।
StandardLigatures { get; set; }अक्षरों को एक साथ जोड़ने के लिए उपयोग किए जाने वाले मानक प्रासंगिक संयुक्ताक्षर।
Strikethrough { get; set; }[स्ट्राइकथ्रू]. इंगित करने वाला मान प्राप्त करता है या सेट करता है
StrokeColor { get; set; }स्ट्रोक का रंग प्राप्त या सेट करता है।
Tracking { get; set; }ट्रैकिंग प्राप्त या सेट करता है।
Underline { get; set; }[अंडरलाइन]. इंगित करने वाला मान प्राप्त करता है या सेट करता है
VerticalScale { get; set; }वर्टिकल स्केल.

तरीकों

नामविवरण
Apply(ITextStyle)निर्दिष्ट शैली लागू करता है।
IsEqual(ITextStyle)निर्धारित करता है कि निर्दिष्ट शैली बराबर है या नहीं।

उदाहरण

निम्न उदाहरण दर्शाता है कि आप Aspose.PSD में एक पाठ परत में विभिन्न शैलियों को कैसे प्रस्तुत कर सकते हैं

[C#]

string sourceFile = "text212.psd";
string etalonFile = "Ethalon_text212.psd";
string outputFile = "Output_text212.psd";

using (var img = (PsdImage)Image.Load(sourceFile))
{
    TextLayer textLayer = (TextLayer)img.Layers[1];
    IText textData = textLayer.TextData;
    ITextStyle defaultStyle = textData.ProducePortion().Style;
    ITextParagraph defaultParagraph = textData.ProducePortion().Paragraph;
    defaultStyle.FillColor = Color.DimGray;
    defaultStyle.FontSize = 51;

    textData.Items[1].Style.Strikethrough = true;

    ITextPortion[] newPortions = textData.ProducePortions(
        new string[]
        {
          "E=mc", "2\r", "Bold", "Italic\r",
          "Lowercasetext"
        },
        defaultStyle,
        defaultParagraph);

    newPortions[0].Style.Underline = true; // पाठ शैली संपादित करें "ई = एमसी"
    newPortions[1].Style.FontBaseline = FontBaseline.Superscript; // पाठ शैली संपादित करें "2\r"
    newPortions[2].Style.FauxBold = true; // पाठ शैली संपादित करें "बोल्ड"
    newPortions[3].Style.FauxItalic = true; // पाठ शैली संपादित करें "इटैलिक\r"
    newPortions[3].Style.BaselineShift = -25; // पाठ शैली संपादित करें "इटैलिक\r"
    newPortions[4].Style.FontCaps = FontCaps.SmallCaps; // पाठ शैली संपादित करें "लोअरकेसटेक्स्ट"

    foreach (var newPortion in newPortions)
    {
        textData.AddPortion(newPortion);
    }

    textData.UpdateLayerData();
    img.Save(outputFile);
}

निम्न कोड प्रदर्शित करता है कि पाठ परत में किसी पाठ भाग के लिए फ़ॉन्ट आकार कैसे प्राप्त करें।

[C#]

// निकाला गया गलत फ़ॉन्ट आकार 
string filePath = "直播+电商.psd";

var tolerance = 0.001;
using (var image = Image.Load(filePath))
{
    int layerIndex = 22;

    // पुराना एपीआई (पहले पैराग्राफ फ़ॉन्ट का उपयोग करके)
    PsdImage psdImage = image as PsdImage;
    double[] matrix = ((TextLayer)psdImage.Layers[layerIndex]).TransformMatrix;
    double baseFontSize = ((TextLayer)psdImage.Layers[layerIndex]).Font.Size;
    double fontSize = matrix[0] * baseFontSize;

    // आधार फ़ॉन्ट आकार की जाँच करना
    if (Math.Abs(100.0 - baseFontSize) > tolerance)
    {
        throw new Exception("Font size was read incorrect");
    }

    // वास्तविक फ़ॉन्ट आकार की जाँच करना
    if (Math.Abs(88.425 - fontSize) > tolerance)
    {
        throw new Exception("TransformMatrix was read incorrect");
    }

    // नया एपीआई (एक पाठ परत में फ़ॉन्ट आकार की कितनी भी मात्रा हो सकती है)
    ITextPortion[] portions = ((TextLayer)psdImage.Layers[layerIndex]).TextData.Items;
    ITextStyle style = portions[0].Style;
    double fontSizeOfPortion = matrix[0] * style.FontSize;

    // आधार भाग फ़ॉन्ट आकार की जाँच करना
    if (Math.Abs(100.0 - style.FontSize) > tolerance)
    {
        throw new Exception("Font size was read incorrect");
    }

    // वास्तविक भाग फ़ॉन्ट आकार की जाँच करना
    if (Math.Abs(88.425 - fontSizeOfPortion) > tolerance)
    {
        throw new Exception("TransformMatrix was read incorrect");
    }
}

निम्नलिखित कोड उदाहरण संपादन पाठ भागों और उनकी पाठ शैली को प्रदर्शित करता है।

[C#]

const double Tolerance = 0.0001;
var filePath = "ThreeColorsParagraphs.psd";
var outputPath = "ThreeColorsParagraph_out.psd";
using (var im = (PsdImage)Image.Load(filePath))
{
    for (int i = 0; i < im.Layers.Length; i++)
    {
        var layer = im.Layers[i] as TextLayer;

        if (layer != null)
        {
            var portions = layer.TextData.Items;

            if (portions.Length != 4)
            {
                throw new Exception();
            }

            // हर हिस्से का टेक्स्ट चेक करना
            if (portions[0].Text != "Old " ||
                portions[1].Text != "color" ||
                portions[2].Text != " text\r" ||
                portions[3].Text != "Second paragraph\r")
            {
                throw new Exception();
            }

            // पैराग्राफ डेटा की जाँच करना
            // पैराग्राफ का अलग औचित्य है
            if (
                (int)portions[0].Paragraph.Justification != 0 ||
                (int)portions[1].Paragraph.Justification != 0 ||
                (int)portions[2].Paragraph.Justification != 0 ||
                (int)portions[3].Paragraph.Justification != 2)
            {
                throw new Exception();
            }

            // पहले और दूसरे पैराग्राफ के अन्य सभी गुण समान हैं
            for (int j = 0; j < portions.Length; j++)
            {
                var paragraph = portions[j].Paragraph;

                if (Math.Abs(paragraph.AutoLeading - 1.2) > Tolerance ||
                    paragraph.AutoHyphenate != false ||
                    paragraph.Burasagari != false ||
                    paragraph.ConsecutiveHyphens != 8 ||
                    Math.Abs(paragraph.StartIndent) > Tolerance ||
                    Math.Abs(paragraph.EndIndent) > Tolerance ||
                    paragraph.EveryLineComposer != false ||
                    Math.Abs(paragraph.FirstLineIndent) > Tolerance ||
                    paragraph.GlyphSpacing.Length != 3 ||
                    Math.Abs(paragraph.GlyphSpacing[0] - 1) > Tolerance ||
                    Math.Abs(paragraph.GlyphSpacing[1] - 1) > Tolerance ||
                    Math.Abs(paragraph.GlyphSpacing[2] - 1) > Tolerance ||
                    paragraph.Hanging != false ||
                    paragraph.HyphenatedWordSize != 6 ||
                    paragraph.KinsokuOrder != 0 ||
                    paragraph.LetterSpacing.Length != 3 ||
                    Math.Abs(paragraph.LetterSpacing[0]) > Tolerance ||
                    Math.Abs(paragraph.LetterSpacing[1]) > Tolerance ||
                    Math.Abs(paragraph.LetterSpacing[2]) > Tolerance ||
                    paragraph.LeadingType != LeadingMode.Auto ||
                    paragraph.PreHyphen != 2 ||
                    paragraph.PostHyphen != 2 ||
                    Math.Abs(paragraph.SpaceBefore) > Tolerance ||
                    Math.Abs(paragraph.SpaceAfter) > Tolerance ||
                    paragraph.WordSpacing.Length != 3 ||
                    Math.Abs(paragraph.WordSpacing[0] - 0.8) > Tolerance ||
                    Math.Abs(paragraph.WordSpacing[1] - 1.0) > Tolerance ||
                    Math.Abs(paragraph.WordSpacing[2] - 1.33) > Tolerance ||
                    Math.Abs(paragraph.Zone - 36.0) > Tolerance)
                {
                    throw new Exception();
                }
            }

            // शैली डेटा की जाँच करना
            // शैलियों में अलग-अलग रंग और फ़ॉन्ट आकार होते हैं
            if (Math.Abs(portions[0].Style.FontSize - 12) > Tolerance ||
                Math.Abs(portions[1].Style.FontSize - 12) > Tolerance ||
                Math.Abs(portions[2].Style.FontSize - 12) > Tolerance ||
                Math.Abs(portions[3].Style.FontSize - 10) > Tolerance)
            {
                throw new Exception();
            }

            if (portions[0].Style.FillColor != Color.FromArgb(255, 145, 0, 0) ||
                portions[1].Style.FillColor != Color.FromArgb(255, 201, 128, 2) ||
                portions[2].Style.FillColor != Color.FromArgb(255, 18, 143, 4) ||
                portions[3].Style.FillColor != Color.FromArgb(255, 145, 42, 100))
            {
                throw new Exception();
            }

            for (int j = 0; j < portions.Length; j++)
            {
                var style = portions[j].Style;

                if (style.AutoLeading != true ||
                    style.HindiNumbers != false ||
                    style.Kerning != 0 ||
                    style.Leading != 0 ||
                    style.StrokeColor != Color.FromArgb(255, 175, 90, 163) ||
                    style.Tracking != 50)
                {
                    throw new Exception();
                }
            }

            // पाठ संपादन का उदाहरण
            portions[0].Text = "Hello ";
            portions[1].Text = "World";

            // पाठ के भाग निकालने का उदाहरण
            layer.TextData.RemovePortion(3);
            layer.TextData.RemovePortion(2);

            // नया पाठ भाग जोड़ने का उदाहरण
            var createdPortion = layer.TextData.ProducePortion();
            createdPortion.Text = "!!!\r";
            layer.TextData.AddPortion(createdPortion);

            portions = layer.TextData.Items;

            // भागों के लिए अनुच्छेद और शैली संपादन का उदाहरण
            // सही औचित्य सेट करें
            portions[0].Paragraph.Justification = JustificationMode.Right;
            portions[1].Paragraph.Justification = JustificationMode.Right;
            portions[2].Paragraph.Justification = JustificationMode.Right;

            // प्रत्येक शैली के लिए अलग-अलग रंग। बदल दिया जाएगा, लेकिन रेंडरिंग पूरी तरह से समर्थित नहीं है
            portions[0].Style.FillColor = Color.Aquamarine;
            portions[1].Style.FillColor = Color.Violet;
            portions[2].Style.FillColor = Color.LightBlue;

            // अलग फ़ॉन्ट। बदल दिया जाएगा, लेकिन रेंडरिंग पूरी तरह से समर्थित नहीं है
            portions[0].Style.FontSize = 6;
            portions[1].Style.FontSize = 8;
            portions[2].Style.FontSize = 10;

            layer.TextData.UpdateLayerData();

            im.Save(outputPath, new PsdOptions(im));

            break;
        }
    }
}

यह सभी देखें