The flag -dUseCIEColor is now deprecated, as it invokes the old engine which introduces color errors. The new engine requires a PDF/A file header with hardcoded location of a ICC profile to use, now included in the project. Portable iterations should generate a PDFA_def.ps based on the target system; for now OS X with homebrew is presumed. I have selected sRGB since scanners tend to capture RGB and printing is not a major consideration for PDF/A. Also note all file paths given to gs must be absolute. May its creators be forever haunted for their failure to document this unexpected quirk.
41 lines
1.3 KiB
PostScript
41 lines
1.3 KiB
PostScript
%!
|
|
% This is a sample prefix file for creating a PDF/A document.
|
|
% Feel free to modify entries marked with "Customize".
|
|
% This assumes an ICC profile to reside in the file (ISO Coated sb.icc),
|
|
% unless the user modifies the corresponding line below.
|
|
|
|
% Define entries in the document Info dictionary :
|
|
/ICCProfile (/usr/local/share/ghostscript/iccprofiles/srgb.icc) % Customise
|
|
def
|
|
|
|
[ /Title (PDF) % Customise
|
|
/DOCINFO pdfmark
|
|
|
|
% Define an ICC profile :
|
|
|
|
[/_objdef {icc_PDFA} /type /stream /OBJ pdfmark
|
|
[{icc_PDFA}
|
|
<<
|
|
/N currentpagedevice /ProcessColorModel known {
|
|
currentpagedevice /ProcessColorModel get dup /DeviceGray eq
|
|
{pop 1} {
|
|
/DeviceRGB eq
|
|
{3}{4} ifelse
|
|
} ifelse
|
|
} {
|
|
(ERROR, unable to determine ProcessColorModel) == flush
|
|
} ifelse
|
|
>> /PUT pdfmark
|
|
[{icc_PDFA} ICCProfile (r) file /PUT pdfmark
|
|
|
|
% Define the output intent dictionary :
|
|
|
|
[/_objdef {OutputIntent_PDFA} /type /dict /OBJ pdfmark
|
|
[{OutputIntent_PDFA} <<
|
|
/Type /OutputIntent % Must be so (the standard requires).
|
|
/S /GTS_PDFA1 % Must be so (the standard requires).
|
|
/DestOutputProfile {icc_PDFA} % Must be so (see above).
|
|
/OutputConditionIdentifier (sRGB) % Customize
|
|
>> /PUT pdfmark
|
|
[{Catalog} <</OutputIntents [ {OutputIntent_PDFA} ]>> /PUT pdfmark
|