[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