我正在使用 IText7 从 html 字符串生成 pdf。现在我需要将自定义颜色和自定义字体或字体系列应用于段落。
Itext7如何做到这一点?
谢谢
这在许多不同的 iText 7 教程中都有解释:
一个例子:
假设您有一个用于 Cardo Regular 字体的字体程序:
public static final String REGULAR =
"src/main/resources/fonts/Cardo-Regular.ttf";
Run Code Online (Sandbox Code Playgroud)
您可以FontProgram使用此字体程序创建一个对象,如下所示:
FontProgram fontProgram =
FontProgramFactory.createFont(REGULAR);
Run Code Online (Sandbox Code Playgroud)
使用此FontProgram对象,您可以创建一个PdfFont:
PdfFont font = PdfFontFactory.createFont(
fontProgram, PdfEncodings.WINANSI, true);
Run Code Online (Sandbox Code Playgroud)
现在您可以使用此PdfFont对象来更改段落的字体:
p.setFont(font);
Run Code Online (Sandbox Code Playgroud)
这只是使用自定义字体的一种方式;您将在教程中找到其他方法。您当然明白将教程复制到 Stack Overflow 答案中是没有意义的。
iText 7 有一个类叫做Color:http : //itextsupport.com/apidocs/iText7/latest/com/itextpdf/kernel/colors/Color.html
这个类有几个子类:CalGray、CalRgb、DeviceCmyk、DeviceGray、DeviceN、DeviceRgb、IccBased、Indexed、Lab、PatternColor、Separation。
您可以通过选择这些子类之一来创建自定义颜色,具体取决于您使用的颜色空间。例如:假设您想使用设备 RGB 颜色,那么您将使用DeviceRgb该类。
一个例子:
假设你想要一个值为 red = 0.2, green = 0.2, blue = 0.2 的 RGB 颜色,那么你可以使用这个构造函数: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);
Run Code Online (Sandbox Code Playgroud)
这只是一个例子。ISO 32000-2 将为您提供有关颜色空间之间差异的更多信息(需要选择正确的颜色类),API 文档将解释不同构造函数的工作原理。
| 归档时间: |
|
| 查看次数: |
3538 次 |
| 最近记录: |