如何避免将 a2ps 输出传输到 ps2pdf 时出现未定义文件名错误

如何避免将 a2ps 输出传输到 ps2pdf 时出现未定义文件名错误

我正在尝试编写一个 bash 函数,使用 a2ps 和 ps2pdf 的组合将文本文件转换为 PDF。要转换 exc.cpp,我有以下命令:

a2ps -M a4 -B -1 -o - exc.cpp | ps2pdf  -sPAPERSIZE=a4 -o exc.pdf -

但是我收到一个错误,指示未定义文件名以下错误输出:

GPL Ghostscript 9.04 (2011-08-05)
Copyright (C) 2011 Artifex Software, Inc.  All rights reserved.
This software comes with NO WARRANTY: see the file PUBLIC for details.
[exc.cpp (C++): 2 pages on 2 sheets]
[Total: 2 pages on 2 sheets] sent to the standard output
Error: /undefinedfilename in (.setpdfwrite)
Operand stack:

Execution stack:
   %interp_exit   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--   --nostringval--   false   1   %stopped_push
Dictionary stack:
   --dict:1160/1684(ro)(G)--   --dict:0/20(G)--   --dict:77/200(L)--
Current allocation mode is local
Last OS error: 2
GPL Ghostscript 9.04: Unrecoverable error, exit code 1

有没有办法为 ps2pdf 指定文件名的值以避免此错误?或者有没有更简单的方法将文本文件转换为 PDF?

答案1

a2ps并且ps2pdf不共享相同的语法。

根据UNIX 手册页:ps2pdf (1),其基本语法ps2pdf

ps2pdf  [options...] {input.[e]ps|-} [output.pdf|-]

这将起作用:

a2ps -M a4 -B -1 -o - exc.cpp | ps2pdf -sPAPERSIZE=a4 - exc.pdf

相关内容