如何使用iText7将字体嵌入到pdf / a中

时间:2018-03-27 11:40:39

标签: pdf fonts itext7

我试图了解如何将字体嵌入到我的pdf / a中 我找到了很多答案但是使用了iTextSharp 在我的cas中,我使用了iText7,我试过的都给了我错误:
"必须嵌入所有字体......"

我有一个ttf文件用于我的字体,但我没有找到一种方法将其嵌入到我的pdf中使用它...

有人可以帮助我吗? 提前致谢

kor6k

1 个答案:

答案 0 :(得分:0)

tutorial中所述并且您提到的错误(“所有字体必须嵌入”)所示,您需要嵌入字体。

您可能没有定义字体,在这种情况下,将使用标准Type 1 字体Helvetica。这些标准的Type 1 字体从不嵌入,因此您需要选择另一种字体。

本教程中的示例使用免费字体FreeSans:

public const String FONT = "resources/font/FreeSans.ttf";

字体对象的定义如下:

PdfFont font = PdfFontFactory.CreateFont(FONT, PdfEncodings.WINANSI, true);

此字体用于Paragraph,如下所示:

Paragraph p = new Paragraph();
p.SetFont(font);
p.Add(new Text("Font is embedded"));
document.Add(p);

这是C#版本。如果您需要Java版本,请查看Java version of the tutorial

public static final String FONT = "src/main/resources/font/FreeSans.ttf";
PdfFont font = PdfFontFactory.createFont(FONT, PdfEncodings.WINANSI, true);
Paragraph p = new Paragraph();
p.setFont(font);
p.add(new Text("Font is embedded"));
document.add(p);

如果您已经使用了这种方法,并且仍然遇到错误,那么您可能在某些地方没有定义嵌入字体的内容。