using ghostscript in server mode to convert pdfs to pngs

Posted by emh on Stack Overflow See other posts from Stack Overflow or by emh
Published on 2010-03-11T20:08:41Z Indexed on 2010/03/11 20:14 UTC
Read the original article Hit count: 540

Filed under:

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.

© Stack Overflow or respective owner

Related posts about ghostscript