#14 Extension to -dPDFSETTINGS

Rod Webster

At present, users can choose between four settings
that affect the way in which the PDF file being
created using -
PDFSETTINGS. /screen, /printer, /prepres, /default).

The PDF Specification includes a /setdistillerparams
function to establish the distiller environment.

-PDFSETTINGS is the method provided by Ghostscript the
environment uses to achieve some control over the
pdfwrite environment. Most users probably have no need
for this switch. However, in a prepress environment, a
number of settings are required to create PDF files
for specific purposes or workflows.

Adobe Acrobat Distiller has a set of three default job
settings and has the ability to add different job
settings by simply dropping a .joboptions file into a
specific folder. Ghostscript does not provide such

If one examines a Distiller .joboptions file in a text
editor, they are simply text files containing a call
to /setdistillerparams and a few lines of postscript
code. Obviously, the .joboptions file is prepended to
the postscript code being interpreted by Acrobat.

It would be useful allow the extension of -
dPDFSETTINGS so that if the parameter given was not
found, the lib path was searched for a file of the
same name (possibly with a specific extension such
as '.set' or '.opt').

eg. If the code -dPDFSETTINGS=/MySettings was used,
then the system would recognise it is not a built in
setting and then search the lib path looking for a
file called MyFile.opt or Myfile.set. Administrators
would appreciate the ability to distribute specific
distillerparam files to users so they could retain
control of the PDF generating environment. I
appreciate that it is possible to do this in other
ways, but it seems to me that the ability to extend
the -dPDFSETTINGS in such a way is simple and clean
method which could be easy to implement and allow
extensibility of the pdfwrite device.

Rod Webster


  • Logged In: YES

    Given that Ghostscript already provides two different ways
    to package up settings and invoke them from the command
    line, I don't think this is worth doing. You can:

    1) Put the settings in a file xyz.ps in the form << /key1
    value1 ... /keyN valueN >> setdistillerparams, and include
    xyz.ps on the command line.

    2) Put the settings in a file xyz.opt in the form
    -dkey1=value1 ... -dkeyN=value (on separate lines or not),
    and include @xyz.opt on the command line.

    Since I'm leaving the project, I won't reject the request,
    but I encourage whoever takes responsibility for it to do