如何把网页秒变 PDF, 然后慢慢看?
瑞士军刀?
不知道你对各种文件的格式转换需求大不大,对于我来说是挺需要的,比如有时候我在 MarkDown 写的文章或者文档,我需要将它们转化成不同的文件形式来给别人阅读,比如网页,比如 PDF,电子书的 epub 等等的格式,甚至我还想要它们在不同的格式之间能够互相转换。
你想不想,把在线的网页变成 PDF, 然后慢慢看?
今天小帅b想要给你介绍的是一个开源的神器——pandoc。
它自称是一把文件格式转换的「瑞士军刀」,因为几乎你能够想到的用标记语言写的文件,都能通过 pandoc 进行转换。
If you need to convert files from one markup format into another, pandoc is your swiss-army knife.
那么,怎么通过 pandoc 来实现我们需要的文件格式转化呢?
安装一波呗~
根据你使用的操作系统,你可以到 GitHub 上下载相应的版本:
https://github.com/jgm/pandoc/releases/tag/2.11.3.2
你也可以使用命令的方式进行安装:
Mac OS 可以这样安装:
brew install pandoc
如果你是 Windows 用户也可以使用 choco 进行安装:
choco install pandoc
Ubuntu 可以这么安装:
sudo apt-get install pandoc
然后你输入以下命令,可以看到版本号就说明你安装成功了:
pandoc --version
如何使用 pandoc ?
pandoc 的命令是这样使用的:
pandoc [选项] [输入文件] ...
将 markdown 转化为 HTML
比如我想把我现在写的 markdown 是这样的:
想要把它转化成 HTML,就可以这样:
pandoc -s --metadata title='帅b讲pandoc' -o out.html Desktop/pandoc.md
这样就可以把我桌面上的 md 直接转出 html 文件了:
一行命令就搞定了,其中 「 -s --metadata title='帅b讲pandoc' -o out.html 」就是「选项」:
-s 指的是告诉pandoc我要生成有效的 HTML 文件
--metadata title 指的是说明 HTML 的 title
-o 指的是我们要输出的文件
而在最后面的 「Desktop/pandoc.md」就是「输入文件」。
pandoc 选项在哪啊?
可能你要问了,这些「选项」在哪里可以得到,分别都是什么意思?
有两个地方你可以查询得到,一个是在你的终端中使用 man 命令:
man pandoc
往下拉你就可以看到各种选项的意思:
另一个地方你可以通过在线文档查询,地址在这:
https://pandoc.org/MANUAL.html#options
内容都是一样的,不过网页更加方便查阅。
将 HTML 转化为 PDF
我们再来玩一下,将 HTML 文件转化为 PDF,因为 pandoc 在转化为 PDF 文件的时候,需要用到 pdf 引擎,pandoc 默认使用的是 pdflatex,如果你没有安装可以先安装一波。
brew install basictex
pandoc 支持的 pdf 引擎有很多,比如:
pdflatex, lualatex, xelatex, latexmk, tectonic, wkhtmltopdf, weasyprint, prince, context
你可以根据自己的需要,选择对应的引擎,比如我们把刚刚生成的 HTML 文件直接转化为 PDF,就可以这样:
pandoc --pdf-engine=xelatex -o out.pdf out.html -V mainfont=STXihei
这里我们使用的 pdf 引擎是 xelatex,使用的中文字体是细黑,运行得到的 pdf 是这样子的:
是不是很方便,还有很多其他的文件格式,你都可以通过 pandoc 进行转化,你还可以对其指定样式,模板等操作,你都可以在这里找到:https://pandoc.org/MANUAL.html。
Python 使用 Pandoc
如果你想在 Python 中使用 pandoc ,也不是不行,你可以安装 pypandoc 这个库,然后使用也是很简单,像这样:
OK,以上就是今天小帅b给你带来的分享,希望对你有帮助!
最后,一直坚持原创分享不易,如果对你有帮助的话点个赞支持一下呗,这样我才有动力给你一直分享个不停嘛,好了,我们下回见,peace!