我正在将PDF文档中的页面转换为字节,然后从中构造图像。
在Windows上,图像构造良好。在Linux上,图像上的字母看起来很脏(彼此重叠)
在日志(weblogic)中,我看到以下内容,指示Linux上缺少所需的字体。
<Dec 3, 2019 11:06:35 PM EST> <Warning> <org.apache.pdfbox.pdmodel.font.PDType1Font> <BEA-000000> <Using fallback font LiberationSans for Helvetica-Bold>
<Dec 3, 2019 11:06:35 PM EST> <Warning> <org.apache.pdfbox.pdmodel.font.PDType1Font> <BEA-000000> <Using fallback font LiberationSans for Times-Roman>
<Dec 3, 2019 11:06:35 PM EST> <Warning> <org.apache.pdfbox.pdmodel.font.PDType1Font> <BEA-000000> <Using fallback font LiberationSans for Times-Bold>
<Dec 3, 2019 11:06:35 PM EST> <Warning> <org.apache.pdfbox.pdmodel.font.PDType1Font> <BEA-000000> <Using fallback font LiberationSans for Times-Italic>
<Dec 3, 2019 11:06:35 PM EST> <Warning> <org.apache.pdfbox.pdmodel.font.PDType1Font> <BEA-000000> <Using fallback font LiberationSans for Helvetica>
如何在Linux上提供缺少的字体?我看到在2之前的版本中使用属性文件(PDFBox_External_Fonts.properties)的引用。在pdfbox版本2.0.17上我能做什么?我找不到有关如何进行操作的任何文档。
PDFbox邮件列表中的Tilman Hausher帮助了。
将所需的字体复制到{home} /。fonts文件夹有助于解决我的问题。PDFBOX代码在以下目录中查找字体。
protected String[] getSearchableDirectories()
{
return new String[] { System.getProperty("user.home") + "/.fonts", // user
"/usr/local/fonts", // local
"/usr/local/share/fonts", // local shared
"/usr/share/fonts", // system
"/usr/X11R6/lib/X11/fonts" // X
};
}