如何使用 iText7 将字体嵌入 pdf/a
How to embed font into pdf/a using iText7
我正在尝试了解如何将字体嵌入我的 pdf/a。
我找到了很多答案,但使用的是 iTextSharp。
在我的 cas 中,我使用 iText7,但我尝试的所有操作都给了我错误:
"All the fonts must be embedded..."
我有一个 ttf 文件用于我的字体,但我没有找到将它嵌入到我的 pdf 中来使用它的方法...
有人可以帮我吗?
提前致谢
kor6k
如 tutorial 中所述以及您提到的错误 ("All the fonts must be embedded") 所示,您需要嵌入字体。
您可能没有定义字体,在这种情况下,将使用 标准 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);
如果您已经使用了这种方法,但仍然出现错误,则您可能在某处有一些内容,您没有为其定义嵌入的字体。
我正在尝试了解如何将字体嵌入我的 pdf/a。
我找到了很多答案,但使用的是 iTextSharp。
在我的 cas 中,我使用 iText7,但我尝试的所有操作都给了我错误:
"All the fonts must be embedded..."
我有一个 ttf 文件用于我的字体,但我没有找到将它嵌入到我的 pdf 中来使用它的方法...
有人可以帮我吗?
提前致谢
kor6k
如 tutorial 中所述以及您提到的错误 ("All the fonts must be embedded") 所示,您需要嵌入字体。
您可能没有定义字体,在这种情况下,将使用 标准 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);
如果您已经使用了这种方法,但仍然出现错误,则您可能在某处有一些内容,您没有为其定义嵌入的字体。