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