0

我和我的教授都使用 Linux 来运行一些 CFD 代码,但是我们从 enscript 输出的 PDF 都不能在 Windows 上打开(助教用它来纠正我的作业)。然而,pdf 在 Linux 中打开没有问题(我的教授使用本机 Fedora,我在虚拟机上使用 Ubuntu 16.04。

这是我使用的命令行:

enscript --color --pretty-print=cpp Assignment5.cpp --line-numbers -p Assignment5.pdf

尝试在 Windows 中打开 PDF 时出现此错误:

错误窗口

谢谢!

4

1 回答 1

0

enscript实际上会创建一个 postscript 文件,而不是 PDF 文件。很可能在相关 Linux 系统上使用的 PDF 查看器也可以显示 postscript 文件,因此没有抱怨,而在 Windows 上使用的 PDF 查看器则不能。ps2pdfenscript输出上实际创建 PDF 运行。

enscript

enscript(至少是 GNU 版本)不输出 PDF,而是选择其他格式:

GNU Enscript 将 ASCII 文件转换为 PostScript、HTML 或 RTF,并将生成的输出存储到文件或直接发送到打印机。

根据其手册页,使用-W / --language选项选择实际输出格式:

-W [lang], --language[=lang]
               Generate output for the language lang.  The possible values for
               lang are:

               PostScript
                       generate PostScript (default)

               html    generate HTML

               overstrike
                       generate overstrikes (line printers, less)

               rtf     generate RTF (Rich Text Format)

               ansi    generate ANSI terminal control codes

您的enscript通话不包括此选项。因此,默认情况下会生成后记。

如何创建 PDF

Linux 系统上的一个常用工具是您可以使用它从postscript 输出ps2pdf生成 PDF :enscript

ps2pdf - 使用 ghostscript 将 PostScript 转换为 PDF

ps2pdf12 - 使用 ghostscript 将 PostScript 转换为 PDF 1.2(兼容 Acrobat 3 及更高版本)

ps2pdf13 - 使用 ghostscript 将 PostScript 转换为 PDF 1.3(兼容 Acrobat 4 及更高版本)

根据其手册页,可以在命令行上仅使用源 postscript 和目标 PDF 文件名来调用它:

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

您可能还没有安装 ghostscript 来运行它。

于 2017-03-30T08:31:46.957 回答