如何从 Vim 打印到 PDF?

cal*_*ula 12 vim pdf printing

我原以为这很简单,但我没有完成:我使用 gVim 并希望将文本作为 PDF 文件获取。在 Firefox 等其他应用程序中,打印对话框向我显示可用的打印机,我可以选择直接打印到 PDF 文件。但是,在 Vim 中没有这样的对话框,文件只是发送到系统的标准打印机。

我尝试了以下方法:

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

Ron*_*Ron 24

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

从 Vim 打印到 PostScript 文件:

:hardcopy > myfile.ps
Run Code Online (Sandbox Code Playgroud)

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

ps2pdf myfile.ps
Run Code Online (Sandbox Code Playgroud)

  • (cygwin 用户)`:ha > file.pdf` 没有创建有效的 pdf 文件。将它与 `ps2dpf` 结合确实有效,但给了我白色背景。我对`:TOhtml file.html` 最满意,然后将此 html 文件打印为 pdf (2认同)

小智 12

在其他人已经陈述的基础上:

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

:hardcopy > %.ps | !ps2pdf %.ps && rm %.ps
Run Code Online (Sandbox Code Playgroud)

笔记:

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

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

:set printfont=Courier:h8
Run Code Online (Sandbox Code Playgroud)

综合起来,我决定将以下内容添加到我的.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'
Run Code Online (Sandbox Code Playgroud)