【问题标题】:PDFbox Preflight PDF/A-1b check not working properly in java version 1.8PDFbox Preflight PDF/A-1b 检查在 Java 1.8 版中无法正常工作
【发布时间】:2015-03-22 15:13:50
【问题描述】:

我正在使用 PDFBOX Preflight 来验证 pdf 文档以检查它是否为 PDF/A-1b 格式。它在 java 1.7 上完美运行,但是当我在 java 1.8 中运行代码时出现以下错误

2.4.3 : 无效的色彩空间,缺少 DestOutputProfile

2.4.3 : 无效的色彩空间,缺少 DestOutputProfile

2.4.3 : 无效的色彩空间,缺少 DestOutputProfile

7.11 : 元数据错误

我正在使用 pdfbox 1.8.8 和 preflight 1.8.3

以下是我用来验证 PDF 执行此操作的代码。

                ValidationResult result = null;
                FileDataSource fd = new FileDataSource(InputFolder
                        + listOfFiles[i].getName());
                PreflightParser parser = new PreflightParser(fd);
                try {
                    parser.parse(Format.PDF_A1A);
                    PreflightDocument documentt = parser
                            .getPreflightDocument();
                    documentt.validate();
                    result = documentt.getResult();
                    documentt.close();
                } catch (SyntaxValidationException e) {
                    result = e.getResult();
                }
                if (result.isValid()) {
                    System.out
                            .println("The file  is a valid PDF/A-1a file");

                } else {
                    System.out.println("The file is not valid, error(s) :");

                            for (ValidationError error : result
                                    .getErrorsList()) {
                                message = error.getErrorCode() + " : "
                                        + error.getDetails();
                                fos.write(message.getBytes());
                                fos.write(System.getProperty(
                                        "line.separator").getBytes());
                                // System.out.println(error.getErrorCode() +
                                // " : " + error.getDetails());
                            }

}

PDFBOX 与 java 1.8 不兼容还是我做错了什么?

【问题讨论】:

  • 这可能是在用户邮件列表或 JIRA 上提出的更好的问题类型,因为它可能需要很多来回。但是请确保 1) 您使用相同的版本,2) 该文件可用于评估。您也可以使用 pdf-tools.com/pdf/validate-pdfa-online.aspx 检查文件。祝你好运!
  • @tilman 你介意我在这里问你几个问题吗....或者我应该问一个新问题。
  • 看是不是这个话题。对于新主题,您应该提出一个新问题(这个想法是您的问题应该对未来的用户有所帮助)。但你真的应该做我在第一条评论中提到的事情,即 1) 使用相同版本的 pdfbox 和预检,2) 使用 PDF 工具测试你的文件。 3) 使文件可用。
  • @tilman 你的建议奏效了。我实际上使用的是不同版本的 preflight.jar 和 pdfbox jar 。然后我使用了 1.8.8 版本和它的工作。我认为我们应该把这个评论作为这个问题的答案。

标签: java pdf pdfbox pdfa


【解决方案1】:

正如 cmets 中所解决的:始终使用相同版本的 PDFBox 和 Preflight jar 文件,在编写此响应时为 1.8.8。

额外的奖励建议:当得到您不相信的结果时,请通过free PDF-Tools PDF/A-1b validator 获得“第二意见”。

如果结果不同,请在JIRA 中打开一个问题或尝试2.0 snapshots of PDFBox + preflight

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-18
    • 2015-02-27
    • 1970-01-01
    • 1970-01-01
    • 2014-11-06
    • 1970-01-01
    • 1970-01-01
    • 2010-09-10
    相关资源
    最近更新 更多