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

问题描述 投票:0回答:1

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

如何用Itext7完成?

谢谢

itext itext7
1个回答
2
投票

Custom fonts:

许多不同的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答案是没有意义的。

Custom Colors

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

这个类有几个子类:CalGrayCalRgbDeviceCmykDeviceGrayDeviceNDeviceRgbIccBasedIndexedLabPatternColorSeparation

您可以通过选择其中一个子类来创建自定义颜色,具体取决于您正在使用的颜色空间。例如:假设您要使用设备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文档将解释不同构造函数的工作方式。

© www.soinside.com 2019 - 2024. All rights reserved.