我正在尝试编写一个 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