1

我使用 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,右:它变成了什么

注意:这可能不是问题,它取决于需要处理的文件中使用的字体。我尝试了除了 Calibri 之外的一些东西,效果很好。

4

1 回答 1

0

如何从 PDF 中提取字体

您实际上无法从 PDF 中提取字体,即使该字体已完全嵌入也是如此。这不可行的原因有两个:

•大多数字体都受版权保护,因此使用提取器是非法的。

•当字体嵌入PDF 时,并非所有字体数据都包括在内。显然,字体轮廓数据以及字体宽度表都包括在内。其他信息(例如关于连字的数据)在 PDF 中是不相关的,因此这些数据不会包含在 PDF 中。我不知道有任何字体提取工具,但如果你遇到了一种,以上原因应该清楚地表明这些工具是应该避免的。

于 2011-10-03T18:38:03.207 回答