using ghostscript in server mode to convert pdfs to pngs
- by emh
while i am able to convert a specific page of a PDF to a PNG like so:
gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=png16m -dGraphicsAlphaBits=4 -sOutputFile=gymnastics-20.png -dFirstPage=20 -dLastPage=20 gymnastics.pdf
i am wondering if i can somehow use ghostscript's JOBSERVER mode to process several conversions without having to incur the cost of starting up ghostscript each time.
from: http://pages.cs.wisc.edu/~ghost/doc/svn/Use.htm
-dJOBSERVER Define \004 (^D) to start a new encapsulated job used for
compatibility with Adobe PS
Interpreters that ordinarily run under
a job server. The -dNOOUTERSAVE switch
is ignored if -dJOBSERVER is specified
since job servers always execute the
input PostScript under a save level,
although the exitserver operator can
be used to escape from the
encapsulated job and execute as if the
-dNOOUTERSAVE was specified. This also requires that the input be from stdin,
otherwise an error will result (Error:
/invalidrestore in --restore--).
Example usage is:
gs ... -dJOBSERVER - < inputfile.ps
-or-
cat inputfile.ps | gs ... -dJOBSERVER - Note: The ^D does not result in an end-of-file action on
stdin as it may on some PostScript
printers that rely on TBCP (Tagged
Binary Communication Protocol) to
cause an out-of-band ^D to signal EOF
in a stream input data. This means
that direct file actions on stdin such
as flushfile and closefile will affect
processing of data beyond the ^D in
the stream.
the idea is to run ghostscript in-process. the script would receive a request for a particular page of a pdf and would use ghostscript to generate the specified image. i'd rather not start up a new ghostscript process every time.