[gs-devel] PDF/A-1b: 8.64: is ICC profile file now required?

Giulio Orsero giulioo at gmail.com
Sun Apr 19 23:33:06 PDT 2009


I'm trying to create PDF/A-1b compliant PDFs; this is because we need to
send PDFs to a government agency, so my only requirement is to pass
validation, getting color settings/profiles perfectly right is beyond the
scope of my tests. I'm running Linux RHEL5.3, no X.

I'd like to understand what's the official and supported way to get PDF/A-1b
with ghostscript, so that changes in future versions won't cause any
surprise.

1)
I started testing with 8.63 (from fedora rpm ghostscript-8.63-4) with this
command line:

gs -sDEVICE=pdfwrite -q -dNOPAUSE -dBATCH \
-dPDFA -dUseCIEColor -sProcessColorModel=DeviceCMYK \
-sOutputFile=$2 $1

and Acrobat Pro 9.0.0 would produce the following 2 errors when doing
PDF/a-1b test in preflight:

XMP property not predefined and no extension schema present
XMP property for a page object not predefined and no extension schema
present

2)
I then upgraded to 8.64 (Fedora ghostscript-8.64-6 rpm), using the very same
input file and command line.

Acrobat would now say:
	Device process color used but no PDF/A OutputIntent

From reading past emails
http://www.ghostscript.com/pipermail/gs-devel/2009-February/008260.html
I understand this error should not show up since I'm using 
	"-dUseCIEColor -sProcessColorModel=DeviceCMYK".

Also, 8.63 would not cause this problem.

3)
So I tried using PDFA_def.ps (didn't use it before since I don't understand
anything about it, it's not clear what I should put into those strings,
ICCProfile, OutputConditionIdentifier,... ).

I had no success since I got various errors I think related to missing
ICCProfile.

4) 
I downloaded PDFCreator 0.9.8, which uses gs-8.64 and unexpectedly it
managed to create PDF/A-1b files which passed validation.

Analyzing the files it installed I can see that:
1) It installed eciRGB_v2.icc into gs8.64\lib, this is not included in
vanilla 8.64.
2) It modified the shipped PDFA_def.gs to use 
/ICCProfile (C:/Program files/PDFCreator/GS8.64/gs8.64/Lib/eciRGB_v2.icc)
def

5)
I then copied eciRGB_v2.icc to my Linux home dir, modified PDFA_def.ps
accordingly, and added -dNOSAFER to allow the use of "out of tree"
eciRGB_v2.icc, and I finally was able to get a validated PDF/A-1b.

6)
So, is this the official way to do it? That is:
a) ICC profile is required, so you need to get an .icc file from somewhere.

b) Edit PDFA_def.ps to point /ICCProfile to this .icc file.

c) Use a command line as
gs -sDEVICE=pdfwrite -q -dNOPAUSE -dBATCH -dNOSAFER \
-dPDFA -dUseCIEColor -sProcessColorModel=DeviceCMYK \
-sOutputFile=$2 PDFA_def.ps $1

?

If so, then
http://pages.cs.wisc.edu/~ghost/doc/cvs/Ps2pdf.htm#PDFA
is wrong when it says that 
"...Info, OutputCondition, OutputConditionIdentifier are not required in the
PDF/A definition file. ..." ?

Is there any way to avoid using files not shipped with ghostscript (.icc
profile file) and still get a proper PDF/A-1b file?


Thanks
-- 
giulioo at pobox.com


More information about the gs-devel mailing list