【问题标题】:How to use Custom colors and custom Fonts in Itext7如何在 Itext7 中使用自定义颜色和自定义字体
【发布时间】:2019-02-21 10:56:54
【问题描述】:

我正在使用 IText7 从 html 字符串生成 pdf。 现在我需要将自定义颜色和自定义字体或字体系列应用于段落。

如何用 Itext7 完成?

谢谢

【问题讨论】:

    标签: itext itext7


    【解决方案1】:

    自定义字体:

    这在许多不同的 iText 7 教程中都有解释:

    一个例子:

    假设你有一个 Cardo Regular 字体的字体程序:

    public static final String REGULAR =
        "src/main/resources/fonts/Cardo-Regular.ttf";
    

    您可以使用这个字体程序创建一个FontProgram 对象,如下所示:

    FontProgram fontProgram =
        FontProgramFactory.createFont(REGULAR);
    

    有了这个FontProgram对象,你可以创建一个PdfFont

    PdfFont font = PdfFontFactory.createFont(
        fontProgram, PdfEncodings.WINANSI, true);
    

    现在您可以使用这个PdfFont 对象来更改段落的字体:

    p.setFont(font);
    

    这只是使用自定义字体的一种方式;您将在教程中找到其他方法。您肯定知道将教程复制到 Stack Overflow 答案中是没有意义的。

    自定义颜色

    iText 7 有一个名为Color 的类:http://itextsupport.com/apidocs/iText7/latest/com/itextpdf/kernel/colors/Color.html

    这个类有几个子类:CalGrayCalRgbDeviceCmykDeviceGrayDeviceNDeviceRgbIccBasedIndexedLab、@987654@3 987654344@.

    您可以通过选择其中一个子类来创建自定义颜色,具体取决于您正在使用的色彩空间。例如:假设您想使用设备 RGB 颜色,那么您将使用DeviceRgb 类。

    一个例子:

    假设您想要一个 RGB 颜色,其值为红色 = 0.2、绿色 = 0.2、蓝色 = 0.2,那么您将使用此构造函数:http://itextsupport.com/apidocs/iText7/latest/com/itextpdf/kernel/colors/DeviceRgb.html#DeviceRgb-float-float-float-

    Color color = new ColorRgb(0.2f, 0.2f, 0.2f);
    

    这只是一个例子。 ISO 32000-2 将为您提供有关颜色空间之间差异的更多信息(需要选择正确的颜色类),API 文档将解释不同构造函数的工作原理。

    【讨论】:

      猜你喜欢
      • 2017-08-24
      • 1970-01-01
      • 2020-06-01
      • 2011-11-27
      • 2013-05-10
      • 1970-01-01
      • 2014-12-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多