好的,我可以打印一个PDF文件,
pdf2ps file.pdf - | lp -s
但是现在我想用convert
来合并几个PDF文件,我可以这样做:
convert file1.pdf file2.pdf merged.pdf
它将file1.pdf和file2.pdf合并到merged.pdf中 ,target可以replace为' – '。
题
我怎么可以pipe转换成pdf2ps
,然后再转换为lp
?
convert file1.pdf file2.pdf - | pdf2ps - - | lp -s
convert file1.pdf file2.pdf - | pdf2ps - - | lp -s
应该做这个工作。
您将convert命令的输出发送到psf2ps,psf2ps将其输出反馈给lp。
你可以使用/ dev / stdout像一个文件:
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版本可能还需要用-o -
的更现代的缩写替换为更详细的-dNOPAUSE -dBATCH -sOutputFile=/dev/stdout
。 只有更新的GS版本(2006年4月以后)才知道-o
参数。
现在,要直接将PostScript输出传递给lp
命令,您必须这样做:
gs -o - \ -sDEVICE=ps2write \ file1.pdf \ file2.pdf \ file3.pdf ... \ | lp -s <other-lp-options>
这可能比首先运行pdftk
快得多(但这也取决于您的输入文件)。
convert file1.pdf file2.pdf merged.pdf pdf2ps merged.pdf - | lp -s