【问题标题】:Is there a way to just make the first character a different color using iText7?有没有办法使用 iText7 使第一个字符变成不同的颜色?
【发布时间】:2020-02-18 11:19:26
【问题描述】:

我在 C# 中使用 itext7,我只想使用一个段落,第一个字符需要是不同的颜色。有什么办法吗?在 iText5 中有一个带有块的东西,但这在 iText7 中不可用,所以我现在被卡住了。

【问题讨论】:

    标签: c# pdf itext pdf-generation itext7


    【解决方案1】:

    没有块,但您可以添加具有不同特征的段落字符串。

        PdfDocument pdfDoc = new PdfDocument(new PdfWriter(DEST));
        Document doc = new Document(pdfDoc);
    
        Paragraph p = new Paragraph();
        string original = "Some text";
    
        string first = original.Substring(0, 1);
    
        p.Add(new Text(first)
                .SetFontColor(ColorConstants.BLUE));
        p.Add(original.Substring(1, original.Length - 1));
        doc.Add(p);
        doc.Close();
    

    这将创建一个 PDF 文件,其中“ome text”为黑色,而“S”为蓝色。

    相关文档 (Colored Text example) 和 Paragraph 的 API。

    【讨论】:

    • 感谢您的回复,这也是一个很好的方法!我正要发布一个我想出的解决方案,同时差点毁了我的键盘。
    【解决方案2】:

    您可以将文本添加到段落,并在将其添加到段落之前设置颜色。

    var dotstring = new Text("$");
    var cashstring = new Text("1.000,-");
    dotstring.SetFontColor(DeviceCmyk.MAGENTA);
    
    var NummerParagraph = new Paragraph();
    NummerParagraph.Add(dotstring);
    NummerParagraph.Add(cashstring);
    

    这是我找到的一个简单的解决方案,因为我的第一个字母是静态的,我知道它是什么。 如果您不知道字符串的第一个字母,André Lemos 发布的另一个解决方案会更好。

    【讨论】:

      猜你喜欢
      • 2016-10-08
      • 1970-01-01
      • 1970-01-01
      • 2016-12-18
      • 1970-01-01
      • 1970-01-01
      • 2012-04-18
      • 1970-01-01
      • 2021-08-19
      相关资源
      最近更新 更多