Linux管道(转换
好的,我可以打印一份PDF,
pdf2ps file.pdf - | lp -s
  但现在我想用convert来合并几个PDF文件,我可以这样做: 
convert file1.pdf file2.pdf merged.pdf
它将file1.pdf和file2.pdf合并到merged.pdf中,target可以用' - '替换。
题
  我怎么可以管道转换成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快得多(但这也取决于您的输入文件)。 
