Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Validation 通过重影脚本将PS文件转换为PDF/A,颜色空间问题_Validation_Ghostscript_Pdfbox_Icc_Pdfa - Fatal编程技术网

Validation 通过重影脚本将PS文件转换为PDF/A,颜色空间问题

Validation 通过重影脚本将PS文件转换为PDF/A,颜色空间问题,validation,ghostscript,pdfbox,icc,pdfa,Validation,Ghostscript,Pdfbox,Icc,Pdfa,我面临着一个与本文讨论的非常类似的问题。使用GhostScript 9.14,我试图从Postscript文件创建有效的PDF/a。我正在调用以下命令: "gswin64.exe" -dPDFA=1 -dBATCH -dNOPAUSE -dNOOUTERSAVE -sColorConversionStrategy=/RGB -sOutputICCProfile=AdobeRGB1998.icc -sDEVICE=pdfwrite -sOutputFile=output.pdf -dPDFACo

我面临着一个与本文讨论的非常类似的问题。使用GhostScript 9.14,我试图从Postscript文件创建有效的PDF/a。我正在调用以下命令:

"gswin64.exe" -dPDFA=1 -dBATCH -dNOPAUSE -dNOOUTERSAVE
-sColorConversionStrategy=/RGB -sOutputICCProfile=AdobeRGB1998.icc -sDEVICE=pdfwrite 
-sOutputFile=output.pdf -dPDFACompatibilityPolicy=2  "PDFA_defRGB.ps" input.ps
完成后,我通过Apache的PDFBox进行验证,并通过www.pdf-tools.com进行在线验证。PDF工具告诉我:

Validating file "output.pdf" for conformance level pdfa-1b
A device-specific color space (DeviceCMYK) without an appropriate output intent is used.
The document does not conform to the requested standard.
The document contains device-specific color spaces.
如果我使用
-sColorConversionStrategy=/CMYK
和适当的CMYK-.icc.file和PDFA\u def,验证也会失败。给你:

Validating file "output.pdf" for conformance level pdfa-1b
The value of the key N is 3 but must be 4.
A device-specific color space (DeviceCMYK) without an appropriate output intent is used.
The document does not conform to the requested standard.
The document doesn't conform to the PDF reference (missing required entries, wrong value    
types, etc.).
The document contains device-specific color spaces.
JavaPDFBox验证返回true(PDF/A有效)

如果我使用
-sColorConversionStrategy=/UseDeviceIndependentColor
而不是/CMYK,则在线验证将失败,结果如上所述。PDFBox再次返回有效文件。 如果我使用顶部显示的RGB设置使用
-scoolorConversionStrategy=/UseDeviceIndependentColor
,则在线验证失败,与第一条错误消息相同:

Validating file "output.pdf" for conformance level pdfa-1b
A device-specific color space (DeviceCMYK) without an appropriate output intent is used.
The document does not conform to the requested standard.
The document contains device-specific color spaces.
PDFBox验证也失败

当使用
-sProcessColorModel=DeviceCMYK
而不是
-sColorConversionStrategy
时,在线验证和PDFBox都检测到有效的PDF/a

output.pdf validated successfully.
Status Information
output.pdf (pdfa-1b)
那么,有什么问题?据我所知,GhostScript命令,-sColorConversionStrategy应该确保将输入PS的颜色空间转换为输出PDF的所需颜色空间,而不知道输入文件的颜色空间。显然这是不可能的,因为我还测试了一个带有明显颜色空间CMYK的ps文件,结果与上面发布的相同

我需要从Java代码中调用GhostScript,获取未知的ps文件作为输入,将它们转换为有效的PDF/A文件。那么,在只保证输入文件格式为Postscript的情况下,是否有可能使用GhostScript来实现这一点

谢谢你的帮助


Christopher

验证不是PDFBox的问题。正如我在GhostScript的bug网站上所讨论的(参见),我在第一篇文章中描述的问题应该用GhostScript的最新代码来解决(顺便说一句,不是9.15版本)

我用一个脏兮兮的GS参数-DUSECICOLOR解决了这个问题。所以我这样调用GS:

"gswin64.exe" -dPDFA=1 -dBATCH -dNOPAUSE -dNOOUTERSAVE 
-sColorConversionStrategy=/RGB -dUseCIEColor -sDEVICE=pdfwrite 
-sOutputFile=output.pdf -dPDFACompatibilityPolicy=2  "PDFA_defRGB.ps" input.ps

虽然Ken Sharp不鼓励使用该参数,但我今后将使用它。我无法为我的公司编译最新版本的GS,只允许使用现成版本。使用-dUseCIEColor调用GS会生成有效的PDFA(Java PDFBox和www.pdf-tools.com)。

要确保这不是PDFBox问题:1)尝试最新版本的preflight 2)使用其他软件进行验证,例如。