Linux 中生成的 PDF 无法在 Windows 中打开 - 使用 enscript

PDF generated in Linux does not open in Windows - using enscript

我和我的教授都使用 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 时出现此错误:

谢谢!

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

enscript

enscript(至少the GNU version)不输出PDF而是选择其他格式:

GNU Enscript converts ASCII files to PostScript, HTML, or RTF and stores generated output to a file or sends it directly to the printer.

根据its man page,使用-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 系统上的一个常用工具是 ps2pdf,您可以使用它从 enscript postscript 输出生成 PDF:

ps2pdf - Convert PostScript to PDF using ghostscript

ps2pdf12 - Convert PostScript to PDF 1.2 (Acrobat 3-and-later compatible) using ghostscript

ps2pdf13 - Convert PostScript to PDF 1.3 (Acrobat 4-and-later compatible) using ghostscript

根据 its man page 可以在命令行上仅使用源后记和目标 PDF 文件名来调用它:

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

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