虽然我能够将 PDF 的特定页面转换为 PNG,如下所示:
gs \
-dSAFER \
-dBATCH \
-dNOPAUSE \
-sDEVICE=png16m \
-dGraphicsAlphaBits=4 \
-sOutputFile=gymnastics-20.png \
-dFirstPage=20 \
-dLastPage=20 \
gymnastics.pdf
我想知道我是否可以以某种方式使用ghostscript 的JOBSERVER 模式来处理多个转换,而不必每次都产生启动ghostscript 的成本。
来自: http: //pages.cs.wisc.edu/~ghost/doc/svn/Use.htm
-dJOBSERVER
定义
\004 (^D)
以启动一个新的封装作业,用于与通常在作业服务器下运行的 Adobe PS 解释器兼容。如果指定了该-dNOOUTERSAVE
开关,则忽略此开关,-dJOBSERVER
因为作业服务器始终在保存级别下执行输入 PostScript,尽管 exitserver 运算符可用于从封装的作业中转义并像-dNOOUTERSAVE
指定的一样执行。这也要求输入来自标准输入,否则将导致错误
(
Error: /invalidrestore in --restore--
)。示例用法是:
gs ... -dJOBSERVER - < inputfile.ps -or- cat inputfile.ps | gs ... -dJOBSERVER -
注意:这
^D
不会导致 stdin 上的文件结束操作,因为它可能在依赖 TBCP(标记二进制通信协议)的某些 PostScript 打印机上导致带外^D
信号流输入数据中的 EOF。这意味着对标准输入的直接文件操作(例如flushfile
和)closefile
将影响流中数据之外的数据处理^D
。
这个想法是在进程中运行ghostscript。该脚本将接收对 pdf 特定页面的请求,并使用 ghostscript 生成指定的图像。我宁愿不要每次都启动一个新的 ghostscript 进程。