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

标签 linux windows ubuntu pdf enscript

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

这是我使用的命令行:

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

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

Error window

谢谢!

最佳答案

enscript 实际上创建了一个 postscript 文件,而不是 PDF 文件。有问题的 Linux 系统上使用的 PDF 查看器很可能也可以显示 postscript 文件,因此没有提示,而 Windows 上使用的 PDF 查看器则不能。要实际创建 PDF,请在 enscript 输出上运行 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 来运行它。

关于linux - 在 Linux 中生成的 PDF 在 Windows 中无法打开 - 使用 enscript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43097924/

相关文章:

linux - 使: no rule to make target

linux - 如何在Linux中重命名列?

linux - 验证字符串并确保它由特定字符组成

c# - 无法注册 COM 对象以在计划任务中使用

c - 在 C 中使用 libdpkg

python - BLAS/LAPACK 未安装 : How to install it?

c++ - Ubuntu 上 Boost program_options 代码中的链接错误

linux screen -r 不起作用

windows - 命令 : '■m' is not recognized as an internal or external command

java - 隐藏正在运行的Java窗口?