将字体添加到Apache Pdfbox?

K.N*_*zyk 9 java pdf fonts pdfbox

有没有办法在Apache Pdfbox中添加其他字体样式?

我们目前正在尝试在我们的系统中打印PDF(目前正在使用PDF-Renderer.)我一直在寻找各种替代方案(pdfbox,jpedal,jPDFPrint)

我们希望使用免费的GPL兼容库,因此我们倾向于使用pdfbox.我已经能够编写一些示例代码来打印出"有效"的pdf.见下文:

PDDocument doc;
try {
        doc = PDDocument.load("test.pdf");
        doc.print();
    } catch (Exception e) {
        // Come up with better thing to do on fail.
        e.printStackTrace();
    }
Run Code Online (Sandbox Code Playgroud)

正如我所提到的,这是有效的,但我遇到的问题是PdfBox似乎没有识别pdf中使用的字体,因此改变了使用的字体.因此,该文档看起来很奇怪(间距和字符大小不同,看起来很奇怪).我经常看到以下日志消息,或类似的东西:

2014年4月16日下午2:56:21 org.apache.pdfbox.pdmodel.font.PDSimpleFont drawString警告:将<>中的字体从<NimbusMono>更改为默认字体

有没有人知道如何在pdfbox中添加新的fonttype方法(或参考)?或者除此之外,如何更改默认字体类型?

据我所知,pdfbox支持14种标准字体.不幸的是,NimbusMono不是其中之一.任何指导将不胜感激.

Til*_*err 8

未发布的2.0版本支持嵌入字体的渲染.您可以将其作为快照 https://repository.apache.org/content/groups/snapshots/org/apache/pdfbox/ 或通过"svn checkout http://svn.apache.org/repos/asf/pdfbox/ trunk / ".API与1.8.x版本略有不同,可能会有所变化,最好是查看代码示例.快速测试以确定您的文件是否正确呈现是下载"pdfbox-app" https://repository.apache.org/content/groups/snapshots/org/apache/pdfbox/pdfbox-app/2.0.0 -SNAPSHOT / 然后运行查看器:java -jar pdfbox-app-2.0.0-20140416.173452-273.jar PDFReader your-file-name.pdf还有一个打印功能.

祝好运!

2016年更新:2.0版本已发布,请在此处下载.如果您使用的是1.8版本,请阅读迁移指南.