首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux管道(转换-> pdf2ps -> lp)

Linux管道(转换-> pdf2ps -> lp)
EN

Stack Overflow用户
提问于 2010-03-24 12:33:54
回答 4查看 9.1K关注 0票数 5

好的,我可以打印PDF做:

代码语言:javascript
复制
pdf2ps file.pdf - | lp -s

但是现在我想使用convert合并几个PDF文件,我可以用以下方法完成:

代码语言:javascript
复制
convert file1.pdf file2.pdf merged.pdf

将file1.pdf和file2.pdf合并到merged.pdf中,可以将目标替换为“-”。

问题

但是,我如何将管道转换为pdf2ps,然后转换为lp呢?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-03-24 12:40:51

convert file1.pdf file2.pdf - | pdf2ps - - | lp -s应该做好这项工作。

您将转换命令的输出发送给psf2ps,而后者又将其输出提供给lp。

票数 7
EN

Stack Overflow用户

发布于 2010-03-24 12:52:13

您可以像文件一样使用/dev/stdout:

代码语言:javascript
复制
convert file1.pdf file2.pdf /dev/stdout | ...

我使用gs合并pdfs,例如:

代码语言:javascript
复制
gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=/dev/stdout -f ...
票数 0
EN

Stack Overflow用户

发布于 2016-03-30 13:33:46

由于隐藏在pdf2ps命令后面有一个Ghostscript命令正在运行(它完成-> PS转换),您还可以直接运行Ghostscript来生成PostScript:

代码语言:javascript
复制
gs -o output.ps      \
   -sDEVICE=ps2write \
    file1.pdf        \
    file2.pdf        \
    file3.pdf ...

请注意,较早的GS版本不包括ps2write设备(它生成PostScript级别2),而只包括pswrite (生成更大的PostScript级别1)。因此,如果需要,相应地更改上述参数。

旧的Ghostscript版本可能还需要用更冗长的-o -取代现代的-dNOPAUSE -dBATCH -sOutputFile=/dev/stdout缩写。只有较新的GS版本(都是在2006年4月之后)才知道-o参数。

现在,要将PostScript输出直接输送到lp命令,您必须这样做:

代码语言:javascript
复制
gs -o -              \
   -sDEVICE=ps2write \
    file1.pdf        \
    file2.pdf        \
    file3.pdf ...    \
| lp -s <other-lp-options>

这可能比首先运行pdftk快得多(但这也取决于您的输入文件)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2507596

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档