-
Notifications
You must be signed in to change notification settings - Fork 27
/
learn-vi-28-Print-PDF.html
50 lines (44 loc) · 5.65 KB
/
learn-vi-28-Print-PDF.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="zh" xml:lang="zh">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="learn-vi.css" />
<title>VIM学习笔记 打印到PDF (Print to PDF)</title>
</head>
<body>
<h1>VIM学习笔记 打印到PDF (Print to PDF)</h1>
<h2 class="article"><a id="print-pdf-win">在Linux下打印PDF</a></h2>
<p>在Linux和Mac下,Vim会产生一个PostScript文件。该文件能够直接发送到PostScript打印机上,或者通过类似ghostscript的程序进行处理。</p>
<p>为了使用PostScript功能,请使用<code class="inset">:version</code>命令,确认Vim已经包含“+postscript”特性:</p>
<p><a href="https://yyq123.github.io/learn-vim/images/version-postscript.png" title="version-postscript.png"><img src="https://yyq123.github.io/learn-vim/images/version-postscript.png" alt="version-postscript.png" width="500" height="259" /></a></p>
<p>首先使用以下命令,将文件打印至postscript文件:</p>
<p style="text-indent:2em"><code class="inset">:hardcopy > test.ps</code></p>
<p>此打印方式所生成的postscript文件,无法正常显示包括中文在内的UTF-8编码格式。推荐使用<a style="font-weight:bold" href="http://paps.sourceforge.net/" title="paps">paps</a>,来生成包含中文的文件:</p>
<p style="text-indent:2em"><code class="inset">:!paps < % > test.ps</code></p>
<p>然后调用<a style="font-weight:bold" href="http://web.mit.edu/ghostscript/www/Ps2pdf.htm" title="ps2pdf">ps2pdf</a>命令,将postscript文件转换为PDF文件:</p>
<p style="text-indent:2em"><code class="inset">:!ps2pdf test.ps test.pdf</code></p>
<p>通过在<a href="http://yyq123.github.io/learn-vim/learn-vi-59-vimrc.html" title="vimrc">vimrc</a>配置文件中增加以下自定义命令,可以组合paps和ps2pdf命令,来直接生成PDF文件:</p>
<p style="text-indent:2em"><code class="inset">command Paps !paps % | ps2pdf - %:r.pdf</code></p>
<p>之后在Vim中执行以下命令,即可生成以当前文件名命名的PDF文件:</p>
<p style="text-indent:2em"><code class="inset">:Paps</code></p>
<p>我们也可以利用CUPS PDF打印机,来生成PDF文件。首先使用包管理命令(以Fedora为例),安装<a style="font-weight:bold" href="https://www.cups.org/" title="cups-pdf">cups-pdf</a>:</p>
<p style="text-indent:2em"><code class="inset">$ dnf install cups-pdf</code></p>
<p>使用以下网址,可以查看打印机是否安装成功,并将其设置为默认打印机:</p>
<p style="text-indent:2em"><code class="inset">http://localhost:631/printers/</code></p>
<p><a href="https://yyq123.github.io/learn-vim/images/Cups-PDF-SetDefault.png" title="Cups-PDF-Set Default"><img src="https://yyq123.github.io/learn-vim/images/Cups-PDF-SetDefault.png" alt="Cups-PDF-Set Default" width="500" height="325" /></a></p>
<p>在<a href="http://yyq123.github.io/learn-vim/learn-vi-59-vimrc.html" title="vimrc">vimrc</a>配置文件中,增加以下<a href="http://yyq123.github.io/learn-vim/learn-vi-51-KeyMapping.html" title="Map">键盘映射</a>:</p>
<p style="text-indent:2em"><code class="inset">nmap PpP :%w !lpr -o lpi=8 -o cpi=14<CR><CR></code></p>
<p>此后使用<kbd>PpP</kbd>快捷键,即可生成PDF文件(默认保存在桌面)。你可以通过修改 /etc/cups/cups-pdf.conf 配置文件,来指定文件输出位置。</p>
<h2 class="article"><a id="print-pdf-mac">在Mac下打印PDF</a></h2>
<p>在<a href="https://macvim-dev.github.io/macvim/" title="MacVim">MacVim</a>中,使用<code class="inset">:set printexpr?</code>命令,可以发现Mac使用预览程序来生成PDF文件,同样也无法正常显示中文:</p>
<p style="text-indent:2em"><code class="msg">system('open -a Preview '.v:fname_in) + v:shell_error</code></p>
<p>通过在<a href="http://yyq123.github.io/learn-vim/learn-vi-59-vimrc.html" title="vimrc">vimrc</a>配置文件中增加以下自定义命令,可以使用<a style="font-weight:bold" href="https://www.cups.org/doc/man-cupsfilter.html" title="cupsfilter">cupsfilter</a>命令,来直接生成PDF文件:</p>
<p style="text-indent:2em"><code class="inset">command Print2PDF !cupsfilter % > %:r.pdf 2> /dev/null</code></p>
<h2 class="article"><a id="print-pdf-linux">在Windows下打印PDF</a></h2>
<p>在Windows下的GVim中,使用<code class="inset">:hardcopy</code>命令将打开打印对话框;在其中选择PDF虚拟打印机(例如<a href="https://www.foxitsoftware.com/pdf-reader/create-pdf/" title="Foxit Reader PDF Printer">Foxit PDF Printer</a>, <a href="https://www.pdfforge.org/pdfcreator" title="PDFCreator">PDFCreator</a>等),即可生成PDF文件:</p>
<p><a href="https://yyq123.github.io/learn-vim/images/hardcopy_printer_win_pdf.png" title="hardcopy_printer_win_pdf"><img src="https://yyq123.github.io/learn-vim/images/hardcopy_printer_win_pdf.png" alt="hardcopy_printer_win_pdf" /></a></p>
<p>请使用<code class="inset">:help printing</code>命令,查看关于打印的帮助信息。</p>
<p style="border-top:1px solid lightgray"><span style="float:right">Ver: 2.0 | <a href="mailto:[email protected]">YYQ</a></span><span><<a title="打印(Print)" href="http://yyq123.github.io/learn-vim/learn-vi-07-Print.html">上一篇</a> |<a title="笔记列表" href="http://yyq123.github.com/learn-vim/learn-vi-00-00-TOC.html"> 目录 </a>| <a title="帮助信息(Help)" href="http://yyq123.github.io/learn-vim/learn-vi-08-help.html">下一篇</a>></span></p>
</body>
</html>