好了,我可以打印PDF做:Linux的管道(转换 - > pdf2ps - > LP)
pdf2ps file.pdf - | lp -s
但现在我想用convert
合并多个PDF文件,我可以这样做:
convert file1.pdf file2.pdf merged.pdf
其合并file1.pdf和file2.pdf成merged.pdf,目标可以替换为 ' - '。
问题
我管怎么能转换成pdf2ps
然后进入lp
关系吗?
好了,我可以打印PDF做:Linux的管道(转换 - > pdf2ps - > LP)
pdf2ps file.pdf - | lp -s
但现在我想用convert
合并多个PDF文件,我可以这样做:
convert file1.pdf file2.pdf merged.pdf
其合并file1.pdf和file2.pdf成merged.pdf,目标可以替换为 ' - '。
问题
我管怎么能转换成pdf2ps
然后进入lp
关系吗?
convert file1.pdf file2.pdf - | pdf2ps - - | lp -s
应该做的工作。
您将convert命令的输出发送到psf2ps,psf2ps将其输出反馈给lp。
convert file1.pdf file2.pdf merged.pdf
pdf2ps merged.pdf - | lp -s
您可以使用/ dev /标准输出,就像一个文件:
convert file1.pdf file2.pdf /dev/stdout | ...
我用GS用于合并PDF文件,如:
gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=/dev/stdout -f ...
由于隐藏你的pdf2ps
命令后面有一个Ghostscript的命令运行(完成PDF - > PS转换),您也可以直接运行Ghostscript来生成PostScript:
gs -o output.ps \
-sDEVICE=ps2write \
file1.pdf \
file2.pdf \
file3.pdf ...
请注意,较早的GS版本不包括ps2write
设备(它生成PostScript Level 2),但只包含pswrite
(它会生成更大的PostScript Level 1)。因此,如果需要,请相应地更改上述参数。
较老的Ghostscript版本可能还需要用更详细的-dNOPAUSE -dBATCH -sOutputFile=/dev/stdout
来替换-o -
的现代缩写。只有更新的GS版本(全部在2006年4月以后)了解-o
参数。
现在,直接管PostScript输出到lp
命令,你就必须做到这一点:
gs -o - \
-sDEVICE=ps2write \
file1.pdf \
file2.pdf \
file3.pdf ... \
| lp -s <other-lp-options>
这可能是比跑步pdftk
第一相当快(但是这也取决于你的输入文件) 。
确实有效。但是,我只是发现转换不正确合并我的PDF文件。哎呀。内容是空的。所以,发布我的下一个问题,我猜:> – alcohol 2010-03-24 12:49:57
最终解决方案: 'pdftk file1.pdf file2.pdf cat输出 - pdf2ps - - | lp -s'(安装完pdftk后) – alcohol 2010-03-24 13:10:03
@tonio:你似乎并不知道'convert'和'pdf2ps'都在后台使用Ghostscript。因此,不要在管道中围绕同一个Ghostscript运行两个不同的包装器,这会使输入数据必须经过两次Ghostscript(如果它可以运行***全部***),则最好运行一个Ghostscript命令将多个PDF文件转换为一个PostScript文件或数据流.... – 2016-03-30 13:38:16