Linuxpipe道(convert – > pdf2ps – > lp)

好的,我可以打印一个PDF文件,

pdf2ps file.pdf - | lp -s 

但是现在我想用convert来合并几个PDF文件,我可以这样做:

 convert file1.pdf file2.pdf merged.pdf 

它将file1.pdffile2.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