好的,所以我可以打印PDF:
pdf2ps file.pdf - | lp -s
但现在我想使用convert
合并多个PDF文件,我可以这样做:
convert file1.pdf file2.pdf merged.pdf
将 file1.pdf 和 file2.pdf 合并到 merged.pdf 中,目标可以替换为“ - ”。
问题
我怎么能管道转换为pdf2ps
然后转换为lp
?
答案 0 :(得分:6)
convert file1.pdf file2.pdf - | pdf2ps - - | lp -s
应该做的。
您将convert命令的输出发送到psf2ps,然后psf2ps将其输出提供给lp。
答案 1 :(得分:0)
您可以像文件一样使用/ dev / stdout:
convert file1.pdf file2.pdf /dev/stdout | ...
我使用gs合并pdfs,如:
gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=/dev/stdout -f ...
答案 2 :(得分:0)
由于隐藏在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
快得多(但这也取决于您的输入文件)。
答案 3 :(得分:-1)
convert file1.pdf file2.pdf merged.pdf
pdf2ps merged.pdf - | lp -s