如何从Vim打印到pdf?


11

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

我尝试了以下方法:

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

这不是一个答案,但是您可以ps2pdf随后使用命令行工具,并以poscript文件作为输入。
kebs 2015年

Answers:


21

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

要从以下位置打印到PS文件Vim

:hardcopy > myfile.ps

您还可以转换pspdf使用ps2pdf

ps2pdf myfile.ps

1
第一个建议意味着只更改文件扩展名...第二个建议可能在映射中工作,或者类似的工作,我将不得不做更多的研究才能完成该工作...到目前为止,谢谢...
caligula

1
这就像更改扩展名一样容易;)
Ron 2015年

1
这很棒,绝对不知道这是一件事情!您可以将多个文件合并到一个文档中吗?
本库什吉安

2
(cygwin用户):ha > file.pdf未创建有效的pdf文件。将其与已ps2dpf完成的工作结合使用,但会给我白色背景。我最高兴的是:TOhtml file.html,然后将此HTML文件打印为pdf
lucidbrot

我今天用这个命令的变化:1,50硬拷贝,也没有创建一个文件,1至50从线刚刚打印
贝乔博士

8

建立在别人已经说过的话上...

您可以使用以下单行vim命令来创建.pdf文件:

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

注意:

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

另外,要更改渲染字体,请执行硬拷贝命令之前设置printfont 。例如,要选择“信使8”:

:set printfont=Courier:h8

将所有内容放在一起,我选择将以下内容放在.vimrc文件中,以便我可以简单地执行:HardcopyPdf命令。此命令还可以对文件中的选定范围进行操作:

set printfont=Courier:h8 "select the font to use when printing
command! -range=% HardcopyPdf <line1>,<line2> hardcopy > %.ps | !ps2pdf %.ps && rm %.ps && echo 'Created: %.pdf'
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.