如何在 Linux 中使用 Pandoc 转换文件格式
创始人
2024-03-02 11:38:17
0

在之前的一篇文章中,我介绍了使用 pandoc 将少量 Markdown 文件 批量转换 为 HTML 的过程。在那篇文章中,我创建了多个 HTML 文件,但 Pandoc 可以做的更多。它被称为文档转换的“瑞士军刀” —— 这是有充分理由的。很少有它做不到的事情。

Pandoc 可以将 .docx、.odt、.html、.epub、LaTeX、DocBook 等格式互相转换,或者转换为其他格式,例如 JATS、TEI Simple、AsciiDoc 等。

是的,这意味着 Pandoc 可以将 .docx 文件转换为 .pdf 和 .html 文件,但你可能会想:“Word 也可以将文件导出为 .pdf 和 .html。为什么我需要 Pandoc 呢?”

嗯,本来呢,你这个说法也没错,但考虑到 Pandoc 可以转换这么多格式,它很可能成为你所有转换任务的首选工具。例如,我们中的许多人都知道 Markdown 编辑器 可以将其 Markdown 文件导出为 .html。而使用 Pandoc 文件也可以转换为许多其他格式。

我很少将 Markdown 导出为 HTML。我通常让 Pandoc 来做这件事。

使用 Pandoc 转换文件格式

本文中,我会将 Markdown 文件转换成几种不同的格式。我几乎所有的写作都使用 Markdown 语法,但我经常需要转换为另一种格式:学校作业通常需要的 .docx 格式;我创建的网页通常需要的 .html 格式;工作需要的 .epub 格式;传单和讲义需要的 .pdf 格式;甚至包括一个大学数字人文项目偶尔需要的 TEI Simple 格式。Pandoc 可以轻松处理所有这些格式,甚至更多。

首先,你需要 安装 pandoc。此外,要创建 .pdf 文件,还需要 LaTeX。我最喜欢的套件是 TeX Live

注意:如果你想在安装前试用 pandoc,这里有一个在线试用页面:http://pandoc.org/try/

安装 pandoc 和 texlive

Ubuntu 和其他 Debian 发行版的用户可以在终端中输入以下命令:

sudo apt-get update
sudo apt-get install pandoc texlive

请注意第二行,你将一次性安装 pandoctexliveapt-get 命令 支持你这样做。不过,我建议你先去喝杯咖啡,因为这可能需要几分钟的时间。

开始转换

安装完成 pandoctexlive 后,你就可以尝试用它们来完成一些工作了!

该项目的示例文档将是一篇文章,该文章于 1894 年 12 月首次发表在《北美评论》上,标题为“如何击退火车劫匪”。我将使用的 Markdown 文件是前一段时间创建的,该文章的一个恢复项目的一部分(LCTT 译注:这是篇一百多年前发表的文章,这是一个数字化“恢复”项目)。

我把这篇文章保存为 how_to_repel_train_robbers.md,它位于我的 Documents 目录下,名为 samples 的子目录中。它在 Ghostwriter 中看起来是这样的:

在 Ghostwriter 中查看原始的 Markdown 文件

我想创建此文件的 .docx、.pdf 和 .html 版本。

第一次转换

首先,我将制作一个 .pdf 副本,因为我在安装 LaTeX 包时遇到了些麻烦。

~/Documents/samples/ 目录中,我输入以下,以创建一个 .pdf 文件:

pandoc -o htrtr.pdf how_to_repel_train_robbers.md

上述命令将基于 how_to_repel_train_robbers.md 文件,创建一个名为 htrtr.pdf 的文件。我使用 htrtr 作为名称的原因是:嗯,它比 how_to_repel_train_robbers 短。htrtr 其实是长标题中的单词首字母排列。

这是 .pdf 文件制作完成后的一个截图:

在 Ocular 中查看的转换后的 PDF 文件

第二次转换

接下来,我想创建一个 .docx 文件。该命令与我用来创建 .pdf 的命令几乎相同,它是:

pandoc -o htrtr.docx how_to_repel_train_robbers.md

很快,一个 .docx 文件就创建好了。这是它在 Libre Writer 中的样子:

在 Libre Writer 中查看转换后的 DOCX 文件

第三次转换

我可能会想在网上发布这个,所以再多一个支持网页的格式也不错。我将使用以下命令创建一个 .html 文件:

pandoc -o htrtr.html how_to_repel_train_robbers.md

同样,创建它的命令与前两次转换非常相似。这是该 .html 文件在浏览器中的样子:

在 Firefox 中查看的转换后的 HTML 文件

注意到什么了吗?

让我们再看看之前的命令。它们是:

pandoc -o htrtr.pdf how_to_repel_train_robbers.md
pandoc -o htrtr.docx how_to_repel_train_robbers.md
pandoc -o htrtr.html how_to_repel_train_robbers.md

这三个命令唯一不同的是 htrtr 后的扩展名。这提示你 pandoc 会依赖于你提供的输出文件扩展名(来决定目标转换格式)。

总结

Pandoc 可以做的远不止这里完成的三个小转换。如果你选择使用一个首选格式编写文件,但时不时又需要将文件转换为另一种格式,pandoc 很大概率都能为你完成。

现在,既然你已经学会了,你会用它做什么呢?你会把它自动化吗?如果你有一个网站,想供读者下载文章怎么办?你可以修改这些小命令,把它们编写成一个脚本,你的读者可以决定他们想要哪种格式。你可以提供 .docx、.pdf、.odt、.epub 或更多格式。你的读者只需要选择一种格式,然后对应的转换脚本就会执行,最后,你的读者下载他们想要的文件。这是完全可以做到的。


via: https://itsfoss.com/pandoc-convert-file/

作者:Bill Dyer 选题:lujun9972 译者:lkxed 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

避免在PanDoc doc...
要避免在Pandoc将docx转换为markdown时产生不必要的...
2024-12-17 10:01:39
标准R Markdown的...
要在标准R Markdown的pandoc PDF输出中使用双栏模...
2024-12-11 13:31:23
编织:错误:pandoc文...
错误代码61表示在使用pandoc进行文档转换时出现了错误。这可能...
2024-12-09 10:00:17
编译文档和从fonts.g...
Pandoc错误10通常是由于网络连接问题引起的。解决此问题的一种...
2024-12-09 06:00:11
如何在 Linux 中使用...
在之前的一篇文章中,我介绍了使用 pandoc 将少量 Markd...
2024-03-02 11:38:17
在 Linux 中把多个 ...
很多时候我与 Markdown 打交道的方式是,先写完一个文件,然...
2024-03-02 07:07:41

热门资讯

使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
2024 开年,LLUG 和你... Hi,Linuxer,2024 新年伊始,不知道你是否已经准备好迎接新的一年~ 2024 年,Lin...
Bazzite:专为 Stea... 为 Linux 桌面或者 Steam Deck 做好游戏准备,听起来都很刺激!对于一个专为 Linu...
Motrix:一个漂亮的跨平台... 一个开源的下载管理器,提供了一个简洁的用户界面,同时提供了跨平台操作的所有基本功能。在这里了解关于它...
Bash 脚本中如何使用 he... here 文档 here document (LCTT 译注:here 文档又称作 heredoc ...
使用 dialog 和 jq ... 为何选择文字用户界面(TUI)?许多人每日都在使用终端,因此, 文字用户界面 Text User I...