Link
Skip to main content

在 Java 中提取 PDF 元数据和指标信息

JPedal 库可用于提取 PDF 文件的元数据。 有多个PdfUtilities

你可以在自己的应用程序中使用PdfUtilities,以下是示例代码,你只需移除不需要的行即可。

final PdfUtilities utilities = new PdfUtilities("inputFile.pdf");
utilities.setPassword("password"); // 仅当文件需要密码时才需要此设置。
try {
    if (utilities.openPDFFile()) {
        
        // 返回包含文档 PDF 版本的字符串。
        final String documentPDFVersion = utilities.getPDFVersion();

        // 如果文件包含任何嵌入的字体,则返回 true。
        final boolean hasEmbeddedFonts = utilities.hasEmbeddedFonts();

        // 返回一个映射,键是页码,值是一个字符串,详细说明该页面的字体信息。
        final Map<Integer, String > documentFontData = utilities.getAllFontDataForDocument();

        // 返回一个字符串,包含文档的所有元数据字段。
        final String documentPropertiesAsXML = utilities.getDocumentPropertyFieldsInXML();

        // 返回一个映射,键是属性名称,值是属性值。
        final Map<String, String > documentPropertiesAsMap = utilities.getDocumentPropertyStringValuesAsMap();

        // 返回一个布尔值,如果文件符合所有标记 PDF 的规范则为 true。即使为 false,也可能提取一些标记内容。
        final boolean isFullyTagged = utilities.isMarkedContent();

        // 返回此 PDF 的权限值,并在控制台显示权限的字符串。
        final int permissions = utilities.getPdfFilePermissions();
        PdfUtilities.showPermissionsAsString(permissions);

        // 返回总页数,以整数形式表示。
        final int totalPageCount = utilities.getPageCount();

        for (int i = 1; i != totalPageCount; i++) {
            // 获取指定页面在给定单位和类型下的页面尺寸。
            final float[] pageDimensions = utilities.getPageDimensions(i, PdfUtilities.PageUnits.Pixels, PdfUtilities.PageSizeType.CropBox);

            // 返回用于定义指定页面内容的 PDF 命令总数。
            final int commandCountForPage = utilities.getCommandCountForPageStream(i);

            // 返回指定页面的字体数据,格式为字符串。
            final String fontDataForPage = utilities.getFontDataForPage(i);

            // 返回指定页面的图像数据,格式为字符串。
            final String xImageDataForPage = utilities.getXImageDataForPage(i);

        }
    }
} catch(final PdfException e) {
    e.printStackTrace();
}
utilities.closePDFfile();

PDFUtilities 类还可以通过另一个构造函数进行实例化,该构造函数接受一个 PDF 的字节数组而非文件名。这个构造函数的使用方法如下。

byte[] pdfByteArray;

//Read PDF into pdfByteArray

final PdfUtilities utilities = new PdfUtilities(pdfByteArray);

为什么选择 JPedal?

  • 定期更新的商业库,提供全面支持且无第三方依赖项。
  • 处理 PDF 文件的速度比其他 Java PDF 库快达 3 倍。
  • 为原始设备制造商(OEM)用户提供简单的许可选项和源代码访问权限。

免费试用


Customer Downloads

Select Download