我使用pdfbox API在Java中编写了一些代码,该API将pdf文档拆分为单独的页面,查看特定字符串的页面,然后从页面上创建一个带有字符串的新pdf。我的问题是,当保存新页面时,我丢失了我的字体。我刚刚制作了一个快速word文档来测试它,默认字体是calibri,所以当我运行程序时,我得到一个错误框,上面写着:“无法提取嵌入字体...”所以它用其他一些默认字体替换字体
我已经看到很多示例代码,它们显示了当您输入要放在pdf中的文本时如何更改字体,但没有任何设置pdf的字体。
如果有人熟悉这样做的方法,(或者可以找到文档/示例),我将不胜感激!
编辑:忘记包含一些示例代码
if (pageContent.indexOf(findThis) >= 0){
PDPage pageToRip = pages.get(i);
>>set the font of pageToRip here
res.importPage(pageToRip); //res is the new document that will be saved
}
我不知道这是否有帮助,但我想我会把它包括在内。
此外,如果pdf是用calibri编写的,那么这就是变化:
注意:这可能不是一个问题,它取决于需要处理的文件中使用的字体。除了Calibri,我尝试了一些其他的东西,结果很好。
答案 0 :(得分:0)
来自How to extract fonts from a PDF:
实际上,您无法从PDF中提取字体,即使字体也是如此 完全嵌入。这是不可行的两个原因:
•大多数字体都受版权保护,因此使用提取器是非法的。
•当PDF中嵌入字体时,并非所有字体数据都是 包括在内。显然,包括字体轮廓数据以及 字体宽度表。其他信息,例如关于连字的数据, 在PDF中是无关紧要的,因此这些数据不会被包含在内 PDF。我不知道任何字体提取工具,但如果你来 跨越一个,上述原因应该明确这些 公用事业应该避免。