【发布时间】: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 版本和它的工作。我认为我们应该把这个评论作为这个问题的答案。