2014-11-17 2 views
1

나는이 thread에서 논의 된 것과 아주 비슷한 문제에 직면 해 있습니다. GhostScript 9.14 사용 Postscript 파일에서 유효한 PDF/A를 만들려고합니다. 다음 명령을 호출합니다.PS 파일을 Ghostscript를 통해 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_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. 

자바 PDFBox 검증 의외로 true를 반환 (PDF/A는 유효하다). 내가 대신 CMYK /의 -sColorConversionStrategy=/UseDeviceIndependentColor을 사용하는 경우

, 온라인 검증은 위의 결과와 함께 실패합니다. PDFBox가 올바른 파일을 다시 반환합니다. 위에 그림과 같이 내가 RGB-설정 -sColorConversionStrategy=/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 검증뿐만 아니라 실패합니다.

-sColorConversionStrategy 대신 -sProcessColorModel=DeviceCMYK을 사용하면 온라인 유효성 검사와 PDFBox가 모두 유효한 PDF/A를 감지합니다.

output.pdf validated successfully. 
Status Information 
output.pdf (pdfa-1b) 

그래서 무엇이 문제입니까? GhostScript 명령을 이해하면 -sColorConversionStrategy는 입력 파일의 색 공간을 알지 못해도 입력 PS의 색 공간을 출력 PDF의 원하는 색 공간으로 변환해야합니다. 분명히 위와 같은 결과를 보이는 명백한 색 공간 CMYK가있는 ps 파일을 테스트 한 결과 가능하지 않습니다.

나는 유효한 PDF/A-파일로 변환 입력으로 알 수없는 PS-파일을 받고 자바 코드에서 고스트 스크립트를 호출해야합니다. 그렇다면 GhostScript를 사용하여 입력 파일 형식을 Postscript로 보장 할 수있는 가능성이 있습니까?

는 유효성 검증 PDFBox의 문제가 아니다, 어떤 도움을

크리스토퍼

+0

이가 PDFBox 문제가 아니라는 것을 확인하기 위해 .0-SNAPSHOT/2)는 다른 소프트웨어로 유효성을 검사합니다. http://www.pdf-tools.com/pdf/validate-pdfa-online.aspx –

답변

2

을 주셔서 감사합니다. GhostScript의 버그 웹 사이트 (http://bugs.ghostscript.com/show_bug.cgi?id=695686#c10 참조)에서 설명한 것처럼 첫 번째 게시물에서 설명한 문제점은 Ghostscript의 최신 코드 (9.15 버전, btw가 아님)로 해결해야합니다.

-dUseCIEColor라는 GS 매개 변수의 더러운 부분으로 문제를 해결했습니다. 그래서 GS 이런 식으로 호출 :

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

비록 켄 샤프는 해당 매개 변수의 사용을 권장하지를, 나는 이제부터 그것을 사용합니다. 내 회사의 최신 버전의 GS를 컴파일 할 수 없으며 바로 사용할 수있는 버전 만 사용할 수 있습니다. -dUseCIEColor를 사용하여 GS를 호출하면 올바른 PDFAs (Java PDFBox 및 www.pdf-tools.com)가 생성됩니다. 1) 프리 플라이트의 최신 버전 https://repository.apache.org/content/groups/snapshots/org/apache/pdfbox/preflight-app/2.0 시도 :

관련 문제