如何从 Vim 打印为 PDF?

如何从 Vim 打印为 PDF?

我本以为这很简单,但我做不到:我使用 gVim,想将文本作为 PDF 文件获取。在其他应用程序(如 Firefox)中,打印对话框会显示可用的打印机,我可以选择直接打印到 PDF 文件。然而,在 Vim 中没有这样的对话框,文件只是发送到系统的标准打印机。

我尝试了以下操作:

  • 我无法将“打印为 PDF”功能作为通过 Ubuntu 的打印机窗口进行打印的标准方式。
  • :ha > file将我的文件转换为 .ps 文件。这很好,但 .pdf 会更好...

答案1

Vim 不会显示打印对话框。相反,你可以打印到后记文件,在 PostScript 查看器中打开它并从那里打印。

要从 Vim 打印到 PostScript 文件:

:hardcopy > myfile.ps

您还可以使用以下方法将 PostScript 转换为 PDF ps2pdf

ps2pdf myfile.ps

答案2

基于其他人已经陈述的内容:

您可以使用以下单行 Vim 命令来创建 PDF 文件:

:hardcopy > %.ps | !ps2pdf %.ps && rm %.ps

笔记:

  • %当前文件名的简写,因此HelloWorld.C将打印到HelloWorld.C.pdf
  • 如果您还想保留中间 .ps 文件,只需省略&& rm %.ps,即可获得: :hardcopy > %.ps | !ps2pdf %.ps

此外,要更改渲染的字体,请设置printfont 执行hardcopy命令。例如,选择 Courier 8:

:set printfont=Courier:h8

综上所述,我决定将以下内容添加到我的.vimrc文件中,以便我可以简单地执行该:HardcopyPdf命令。此命令还可以对文件中的选定范围进行操作:

" Select the font for the hardcopy
set printfont=Courier:h8
command! -range=% HardcopyPdf <line1>,<line2> hardcopy > %.ps | !ps2pdf %.ps && rm %.ps && echo 'Created: %.pdf'

相关内容