【发布时间】:2014-10-29 07:01:45
【问题描述】:
我正在使用 PdfAWriter 创建 PDF-A(PDF 存档格式)文件并使用 .ttf 在 PDF 中嵌入字体。我的 TTF 文件在 config 文件夹下。 当我尝试创建如下字体时,它可以在本地工作
Font BOLD_10 = FontFactory.getFont("./config/FreeSansBold.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED, 10);
Document document; //Document created using PDF-A writer
PdfPTable table = new PdfPTable(new float[] { 50,50 });
table.setWidthPercentage(new Float(100));
Paragraph paragraph = new Paragraph("Header 1", BOLD_10);
document.add(paragraph);
如果我尝试构建一个 jar 文件并将 .tff 放入 jar 中,下面的代码不起作用,因为它无法找到 ttf 文件的路径:
字体 BOLD_10 = FontFactory.getFont("./config/FreeSansBold.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED, 10);
如何配置我的字体文件路径以从 jar 中动态选择?
我们已尝试使用内置字体和 BaseFont 代替 .ttf,但它们对“PDF-A”文件不起作用(在运行时引发异常)。
除了使用 TTF 之外,还有其他方法可以在 PDF-A 文件中嵌入字体吗?
【问题讨论】:
-
解决了这样的问题 - (1) 将 .ttf 文件放在“com/mycompany/pdfutility/fonts”目录下,并将它们包含在 jar 文件中。 (2) 在代码中引用这个文件是这样的:Font BOLD_10 = FontFactory.getFont("/com/mycompany/pdfutility/fonts/FreeSansBold.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED, 10);