Pandoc
是一个强大的命令行工具,它能够将文档从一种格式转换为另一种格式。以下是 Pandoc
支持的部分流行格式:
视频演示:https://www.bilibili.com/video/BV1sppvesE9y/
Markdown
(markdown) - 广泛用于Web
写作,易于阅读和编写。HTML
(html) -Web
标准,几乎所有的网页都使用HTML
。JSON
(json) - 数据交换的标准格式,广泛用于 APIs 和配置文件。plain
(plain) - 纯文本格式GitHub Flavored Markdown
(gfm
) -GitHub
使用的Markdown
变体。LaTeX
(latex) - 科学出版领域的标准。Docx
(docx) -Microsoft Word
文档格式,广泛使用。EPUB
(epub) - 电子书格式,广泛用于电子阅读器。odt
(odt) - 一种开放标准的文档格式,主要用于自由和开源软件。如LibreOffice
和OpenOffice
。rtf
- 一种跨平台的文件格式,可以保留一些基本的格式设置。IPYNB
(ipynb
) -Jupyter
笔记本格式,常用于科学计算和数据分析。
除了上边列出的常见文档格式,Pandoc
还支持许多格式,稍后我们可以通过命令进行查看。
Pandoc 安装
本文中的安装及运行示例均在 Windows 11
系统下进行
下载 Pandoc
安装包
我们这里选用二进制方式安装,需要下载 pandoc-3.3-windows-x86_64.zip
这个包 (包下载地址在文档尾部)。解压缩后将目录 path
配置到系统环境变量中。
配置环境变量
在 PATH
环境变量中添加 Pandoc
安装目录的路径。
测试 Pandoc 命令
pandoc -v
支持的文档格式列表
输入格式
可以使用 --list-input-formats
选项查看支持的所有输入格式
pandoc --list-input-formats
输出格式
可以使用 --list-output-formats
选项查看支持的所有输出格式
pandoc --list-output-formats
这些格式覆盖了从简单的纯文本到复杂的排版文档的各种需求。通过使用 Pandoc
,可以轻松地在不同的文档格式之间进行转换,这对于需要在多种平台和应用程序中共享内容的场合特别有用。
Pandoc
转换示例
基本转换
pandoc input.md -o output.pdf
转为 pdf
格式
pandoc --pdf-engine=xelatex --highlight-style=tango -V CJKmainfont="Microsoft YaHei" -V mainfont="Consolas" -V colorlinks -V urlcolor=NavyBlue --template=eisvogel --listings D:\0docs\Articles\zh-Hans\CSharp\4-Behind-The-Scenes-Of-Collection-Expressions-Part-4-The-Spread-Element.md -o D:\0docs\Articles\zh-Hans\CSharp\4-Behind-The-Scenes-Of-Collection-Expressions-Part-4-The-Spread-Element.pdf
注意
PDF
格式是一种广泛应用的文档格式。需要注意的是,Pandoc
只能将 PDF
作为输出目标格式,而不能从 PDF
转换为其他格式。如果需要将 PDF
转换成其他格式,需要使用其他的工具或服务。如果您有转换 PDF
格式的需求,还需要安装一个 TeX
引擎。请参阅 《使用 Pandoc 将文档转换为 PDF 格式》 这篇文章以获取更多信息。
通过 URL
获取 HTML
文档并转换为 Markdown
格式
pandoc -f html -t gfm --extract-media="media/" https://devblogs.microsoft.com/dotnet/announcing-the-dotnet-community-toolkit-830/ -o microsoft.md --verbose
同时下载图片到 media/
目录下
# --verbose 表示显示调试信息
# --extract-media 表示图片等资源的输出目录
# -t gfm 是一种兼容标准 Markdown 的格式
pandoc -f html -t gfm --request-header User-Agent:"Mozilla/5.0" --extract-media="D:\0docs\5-ImageMagick\images\basics\" https://usage.imagemagick.org/basics/ -o Usage/Basics.md --verbose
批量转换
gci -r -i *.md | foreach { $html = $_.DirectoryName + "\" + $_.BaseName + ".html"; pandoc $_.FullName -o $html }
这个 PowerShell 命令用于递归地查找所有 .txt
文件,并将每个找到的 .txt
文件使用 Pandoc 转换为 .rtf
格式。下面是命令的逐部分解析:
gci -r -i *.txt
:gci
是Get-ChildItem
命令的别名,用于获取指定路径下的子项。-r
表示递归地搜索子目录。-i *.txt
表示只查找扩展名为.txt
的文件。
| foreach
:|
是管道符号,用于将前一个命令的输出传递给下一个命令。foreach
是ForEach-Object
命令的别名,用于对管道中的每个对象执行一个脚本块。
{ ... }
:{ ... }
是一个脚本块,定义了 foreach 循环中对每个对象执行的操作。
$rtf = $_.DirectoryName + "\" + $_.BaseName + ".rtf";
:$rtf
是一个变量,用于存储输出的.rtf
文件的完整路径。$_
是一个特殊变量,代表管道中当前的对象(即当前处理的.txt
文件)。$.DirectoryName
获取当前文件所在的目录。$.BaseName
获取当前文件的基本名称(不包含扩展名)。".rtf"
添加.rtf
扩展名。
pandoc -f markdown -s $_.FullName -o $rtf
:pandoc
是 Pandoc 文档转换工具的命令。-f markdown
指定输入格式为 Markdown。-s
表示单独的文档(独立模式),这通常会产生一个完整的文档而不是片段。$.FullName
获取当前文件的完整路径(包括文件名和扩展名)。-o $rtf
指定输出文件的路径和名称。
总结
Pandoc
是一个功能强大的文档转换工具,它可以将不同格式的文档相互转换。通过使用 Pandoc
,您可以轻松地将文档从一种格式转换为另一种格式,从而满足不同的需求。
安装包下载地址:
参考资料:
不若风吹尘
10/14/2024 4:07:39 PM文中增加了视频演示的链接,可以参考一下