星期四, 十月 24, 2019

VIM学习笔记 打印到PDF (Print to PDF)

在Linux下打印PDF

在Linux和Mac下,Vim会产生一个PostScript文件。该文件能够直接发送到PostScript打印机上,或者通过类似ghostscript的程序进行处理。

为了使用PostScript功能,请使用:version命令,确认Vim已经包含“+postscript”特性:

version-postscript.png

首先使用以下命令,将文件打印至postscript文件:

:hardcopy > test.ps

此打印方式所生成的postscript文件,无法正常显示包括中文在内的UTF-8编码格式。推荐使用paps,来生成包含中文的文件:

:!paps < % > test.ps

然后调用ps2pdf命令,将postscript文件转换为PDF文件:

:!ps2pdf test.ps test.pdf

通过在vimrc配置文件中增加以下自定义命令,可以组合paps和ps2pdf命令,来直接生成PDF文件:

command Paps !paps % | ps2pdf - %:r.pdf

之后在Vim中执行以下命令,即可生成以当前文件名命名的PDF文件:

:Paps

我们也可以利用CUPS PDF打印机,来生成PDF文件。首先使用包管理命令(以Fedora为例),安装cups-pdf

$ dnf install cups-pdf

使用以下网址,可以查看打印机是否安装成功,并将其设置为默认打印机:

http://localhost:631/printers/

Cups-PDF-Set Default

vimrc配置文件中,增加以下键盘映射

nmap PpP :%w !lpr -o lpi=8 -o cpi=14<CR><CR>

此后使用PpP快捷键,即可生成PDF文件(默认保存在桌面)。你可以通过修改 /etc/cups/cups-pdf.conf 配置文件,来指定文件输出位置。

在Mac下打印PDF

MacVim中,使用:set printexpr?命令,可以发现Mac使用预览程序来生成PDF文件,同样也无法正常显示中文:

system('open -a Preview '.v:fname_in) + v:shell_error

通过在vimrc配置文件中增加以下自定义命令,可以使用cupsfilter命令,来直接生成PDF文件:

command Print2PDF !cupsfilter % > %:r.pdf 2> /dev/null

在Windows下打印PDF

在Windows下的GVim中,使用:hardcopy命令将打开打印对话框;在其中选择PDF虚拟打印机(例如Foxit PDF Printer, PDFCreator等),即可生成PDF文件:

hardcopy_printer_win_pdf

请使用:help printing命令,查看关于打印的帮助信息。

Ver: 2.0 | YYQ<上一篇 | 目录 下一篇>

没有评论:

发表评论