我们目前正在尝试合并多个 PDF 并从中创建一个 PDF/A (1B)。
目前,当我们想要修复颜色配置文件时,我们面临一个问题。我们收到的 PDF 没有嵌入颜色配置文件,因此在 PDFBox 的合并功能期间,不会合并任何 OutputIntent。因此,在最后一步中,我们尝试添加颜色配置文件。
如果我们不添加任何颜色配置文件,我们会遇到 RGB 和 CMYK 的验证问题。如果我们将两个颜色配置文件都添加到 PDDocumentCatalog,那么只有第一个的验证问题就消失了。因此,如果我们先添加 RGB,我们只会遇到 CMYK 验证问题,反之亦然。
这是我们添加颜色配置文件时的部分代码:
public void convertToPDFA(PDDocument doc, String file){
PDMetadata metadata = new PDMetadata(doc);
PDDocumentCatalog cat = doc.getDocumentCatalog();
cat.setMetadata(metadata);
// do metadata stuff, just removed it for now
InputStream colorProfile = PDFService.class.getResourceAsStream("/pdfa/sRGB Color Space Profile.icm");
PDOutputIntent oi = new PDOutputIntent(doc, colorProfile);
oi.setInfo("sRGB IEC61966-2.1");
oi.setOutputCondition("sRGB IEC61966-2.1");
oi.setOutputConditionIdentifier("sRGB IEC61966-2.1");
oi.setRegistryName("http://www.color.org");
cat.addOutputIntent(oi);
这是 RGB 的代码,我们还为 CMYK 添加了另一个 *.icm 颜色配置文件。所以颜色配置文件似乎很好,因为依赖于我们首先添加的配置文件,验证问题就消失了。
对我来说,感觉我们只是错过了一个小东西,即两种颜色配置文件都将被接受,或者是否只能使用一个颜色配置文件来创建 PDF/A?
预先感谢和亲切的问候