当前位置: 首页 > 知识库问答 >
问题:

使用PDFBox检查pdf中的嵌入式字体

魏晨
2023-03-14

请,我想知道从pdf中提取的字体是否嵌入,如何使用PDFBox实现这一点?

共有2个答案

陶原
2023-03-14

在PDFBox2中,您将获得字体及其嵌入状态,如下所示:

PDResources resources = page.getResources();
Iterator<COSName> ite = resources.getFontNames();
while (ite.hasNext()) {
    COSName name = ite.next();
    PDFont font = resources.getFont(name);
    boolean isEmbedded = font.isEmbedded();
    // ... do something with the results ...
}

然而,我没有找到任何方法来找出字体的哪些字符是嵌入的,哪些不是。

松和安
2023-03-14

也许你能在这里找到答案

要获取所有字体,您必须遍历pdf页面并按如下方式提取字体:

PDDocument  doc = PDDocument.load("C:/test.pdf");
List<PDPage> pages = doc.getDocumentCatalog().getAllPages();
for(PDPage page:pages){
    Map<String,PDFont> pageFonts=page.getResources().getFonts();
}
 类似资料:
  • 问题内容: 如何使用Java和iText检查PDF文件中使用的所有字体是否已嵌入文件中?我有一些现有的PDF文档,并且我想确认它们 仅 使用嵌入式字体。 这将需要检查是否未使用PDF标准字体,并且是否将其他使用的字体嵌入文件中。 问题答案: 看一下iText in Action中的ListUsedFonts示例。 http://itextpdf.com/examples/iia.php?id=28

  • 所以我有下面的问题。我收到一个文件,其中包含一组字体。这些字体没有嵌入到文件中。下面是一个简单的例子: 我希望将这些字体嵌入到中,这样它们就可以自包含并且始终可用。但事情似乎没那么简单。我正在使用进行处理。 我已经阅读并尝试了以下问题/答案: null

  • 我正在使用PDFBox从现有的PDF模板构建文档,因此它会打开文件,向其中添加文本,然后保存。除了尝试使用外部TTF字体外,它工作得很好。我尝试了不同的方法,花了两天时间寻找解决方案,但PDFBox上没有太多。 这里有一些代码,使用字体“Tardy Kid”,因为它不能被误认为其他任何东西,也不太可能是任何标准库的一部分。 代码执行良好,显示println中的“TardyKid”(显示字体已加载且

  • 我用PDFBox填写一个PDF表单,我在保存它之前把它变平。窗体具有文本和窗体字段的自定义字体。当我在未安装此自定义字体的设备上打开输出文档(具有平坦字段)时,普通文本的字体仍然正确,但平坦字段的字体显示为回退(?)字体。在安装了这种自定义字体的设备上,一切看起来都和预期的一样。 有没有办法在展平窗体后,强制对所有文本使用相同的自定义字体? 使用PDFBOX填写PDF表单时使用的代码(简化):

  • 问题内容: 我想使用Apache PDFBox 1.8.8创建一个包含Unicode字符的PDF,但是我对支持什么和不支持什么感到困惑。 请有人澄清。另外,如果这是一个已修复的错误,则有人可以告诉我何时可能发布PDFBox的下一个版本。 谢谢。 问题答案: 基本上,您链接到的所有答案都是正确的。您必须记住它们分别引用哪个PDFBox版本。 _关于这个答案 在2.0.0之前的版本(直到当前的1.8.

  • 我的目标是提取和处理PDF文档可能包含的任何JavaSript代码。通过在编辑器中打开一个PDF文件,我可以看到这样的对象: 我正在尝试使用Apache PDFBox来实现这一点,但到目前为止没有运气。 此行返回一个空列表: 谁能给我指点方向吗?