如何在Itext7中使用自定义颜色和自定义字体

如何在Itext7中使用自定义颜色和自定义字体,itext,itext7,Itext,Itext7,我正在使用IText7从html字符串生成pdf。 现在我需要将自定义颜色和自定义字体或字体系列应用于段落 如何使用Itext7实现这一点 谢谢自定义字体: 许多不同的iText 7教程对此进行了解释: 在“构建块”教程中 在HTML到PDF教程中 一个例子: 假设您有一个用于Cardo常规字体的字体程序: public static final String REGULAR = "src/main/resources/fonts/Cardo-Regular.ttf"; 您可以使用

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

如何使用Itext7实现这一点

谢谢

自定义字体: 许多不同的iText 7教程对此进行了解释:

  • 在“构建块”教程中
  • 在HTML到PDF教程中
一个例子:

假设您有一个用于Cardo常规字体的字体程序:

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);
这只是使用自定义字体的一种方法;您将在教程中找到其他方法。您当然明白,将教程复制到堆栈溢出答案中是没有意义的

定制颜色 iText 7有一个名为
Color
的类:

这个类有几个子类:
CalGray
CalRgb
DeviceCmyk
DeviceGray
devicegb
iccbase
index
Lab
PatternColor
分离

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

一个例子:

假设您希望RGB颜色的值为红色=0.2、绿色=0.2、蓝色=0.2,那么您将使用以下构造函数:

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

自定义字体: 许多不同的iText 7教程对此进行了解释:

  • 在“构建块”教程中
  • 在HTML到PDF教程中
一个例子:

假设您有一个用于Cardo常规字体的字体程序:

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);
这只是使用自定义字体的一种方法;您将在教程中找到其他方法。您当然明白,将教程复制到堆栈溢出答案中是没有意义的

定制颜色 iText 7有一个名为
Color
的类:

这个类有几个子类:
CalGray
CalRgb
DeviceCmyk
DeviceGray
devicegb
iccbase
index
Lab
PatternColor
分离

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

一个例子:

假设您希望RGB颜色的值为红色=0.2、绿色=0.2、蓝色=0.2,那么您将使用以下构造函数:

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