Pandoc:一个超级强大的文档格式转换工具
文章目录
- Pandoc 简介
- 下载安装
- Windows
- macOS
- Linux
- 初步使用
- Pandoc 集成
- 相关资源
- 总结
大家好,我是只谈技术不剪发的 Tony 老师。最近发现了一款免费的文档格式转换工具:Pandoc,堪称该领域的神器,介绍给大家。
Pandoc 简介
Pandoc 是一个由 John MacFarlane 开发的通用文档转换工具,可以支持大量标记语言之间的格式转换,例如 Markdown 、Microsoft Word、PowerPoint、 Jupyter Notebook、HTML、PDF、LaTeX、Wiki、EPUB 格式之间的相互转换。官方称之为该领域中的“瑞士军刀”,并且给出了一个格式转换的示意图。
可以看出,Pandoc 支持非常多的格式;关键它还是一个开源免费的工具,源代码放在了 GitHub 上,使用 Haskell 编程语言实现。具体来说,Pandoc 支持以下格式之间的转换(← 表示可以从该格式转换为其他格式; → 表示可以转换为该格式;↔︎ 表示支持该格式的双向转换):
- 轻量级标记格式
- ↔︎ Markdown(包括 CommonMark 和GitHub-flavored Markdown)
- ↔︎ reStructuredText
- → AsciiDoc
- ↔︎ Emacs Org-Mode
- ↔︎ Emacs Muse
- ↔︎ Textile
- ← txt2tags
- HTML 格式
- ↔︎ (X)HTML 4
- ↔︎ HTML5
- Ebooks
- ↔︎ EPUB 版本 2 或者版本 3
- ↔︎ FictionBook2
- 文档格式
- → GNU TexInfo
- ↔︎ Haddock markup
- Roff 格式
- ↔︎ roff man
- → roff ms
- TeX 格式
- ↔︎ LaTeX
- → ConTeXt
- XML 格式
- ↔︎ DocBook 版本 4 或者版本 5
- ↔︎ JATS
- → TEI Simple
- 大纲格式
- ↔︎ OPML
- 数据格式
- ← CSV 表格
- 文字处理格式
- ↔︎ Microsoft Word docx
- ↔︎ OpenOffice/LibreOffice ODT
- → OpenDocument XML
- → Microsoft PowerPoint
- 交互式笔记格式
- ↔︎ Jupyter notebook (ipynb)
- 页面布局格式
- → InDesign ICML
- Wiki 标记语言格式
- ↔︎ MediaWiki 标记语
- ↔︎ DokuWiki 标记语
- ← TikiWiki 标记语
- ← TWiki 标记语
- ← Vimwiki 标记语
- → XWiki 标记语
- → ZimWiki 标记语
- ↔︎ Jira wiki 标记语
- 幻灯片放映格式
- → LaTeX Beamer
- → Slidy
- → reveal.js
- → Slideous
- → S5
- → DZSlides
- 自定义格式
- → 支持使用 lua 编写自定义转换器
- PDF
- → 通过 pdflatex、lualatex、xelatex、latexmk、tectonic、wkhtmltopdf、weasyprint、prince、context、pdfroff 插件或者工具转为为 PDF
下载安装
Pandoc 提供了一个 Haskell 代码库和命令行程序,支持 Windows、macOS、Linux、Chrome OS、BSD、Docker、GitHub Actions 以及源码编译等方式。最简单的安装方式就是点击下载编译好的安装文件。
Windows
Pandoc 为 Windows 系统提供了编译后的 msi 安装包,可以直接运行安装;或者直接下载免安装的 zip 文件解压即可。还有一种安装方法就是使用 Chocolatey 进行安装:
choco install pandoc
macOS
Pandoc 为 macOS系统提供了编译后的 pkg 安装包,可以直接运行安装;或者直接下载免安装的 zip 文件解压即可。还有一种安装方法就是使用 Homebrew 进行安装:
brew install pandoc
Linux
对于 Debian、Ubuntu、Slackware、Arch、Fedora、NiXOS、openSUSE、gentoo 等主流 Linux 发行版,Pandoc 可以直接使用系统包管理器进行安装。同时 Pandoc 为 amd64 架构提供了二进制安装包。
其他操作系统和安装方式可以参考官方文档。
初步使用
下面我们介绍一下 Pandoc 命令行工具的简单使用。首先进入安装目录,运行 pandoc 或者 pandoc.exe:
d:\Software\pandoc-2.10.1>pandoc.exe --version
pandoc.exe 2.10.1
Compiled with pandoc-types 1.21, texmath 0.12.0.2, skylighting 0.8.5
Default user data directory: C:\Users\dongx\AppData\Roaming\pandoc
Copyright (C) 2006-2020 John MacFarlane
Web: https://pandoc.org
This is free software; see the source for copying conditions.
There is no warranty, not even for merchantability or fitness
for a particular purpose.
以上命令返回了 Pandoc 的版本信息。
接下来我们测试一下文件格式转换,在当前目录中创建一个文本文件 test.md,输入以下内容:
---
title: Test
...# Test!This is a test of *pandoc*.- list one
- list two
然后在命令行输入以下命令:
pandoc.exe test.md -f markdown -t html -s -o test.html
文件名 test.md 是要转换的源文件;-f 设置输入文件的格式;-t 设置输出文件的格式;-s 表示创建一个“独立”文件,将会生成文件
页眉和页脚。默认的转换格式为 markdown 到 HTML,所以上面的命令也可以省略这两个选项。
执行之后在当前目录中生成了一个 test.html,内容如下:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
<head><meta charset="utf-8" /><meta name="generator" content="pandoc" /><meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" /><title>Test</title><style>code{white-space: pre-wrap;}span.smallcaps{font-variant: small-caps;}span.underline{text-decoration: underline;}div.column{display: inline-block; vertical-align: top; width: 50%;}div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}ul.task-list{list-style: none;}.display.math{display: block; text-align: center; margin: 0.5rem auto;}</style><!--[if lt IE 9]><script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script><![endif]-->
</head>
<body>
<header id="title-block-header">
<h1 class="title">Test</h1>
</header>
<h1 id="test">Test!</h1>
<p>This is a test of <em>pandoc</em>.</p>
<ul>
<li>list one</li>
<li>list two</li>
</ul>
</body>
</html>
如果想要将该文件转换为 LaTeX 格式,可以输入以下命令:
pandoc.exe test.md -f markdown -t latex -s -o test.tex
Pandoc 可以根据文件名扩展猜测出输入和输出文件的格式,例如以下命令可以将文件转换为 Word 文档格式:
pandoc.exe test.md -s -o test.docx
如果已经安装了 LaTeX,可以使用以下命令转换为 PDF 文件:
pandoc.exe test.md -f markdown -s -o test.pdf
输入 pandoc --help 命令可以查看工具的选项帮助,详细的使用介绍可以查看用户手册。
另外,Pandoc 还提供了一个在线格式转换工具以及各种格式转换示例。
Pandoc 集成
除了使用命令行方式之外,很多开发工具和软件都集成了 Pandoc,从而实现文件格式的转换。例如 Markdown 编辑器 PanWriter、Typora,文本编辑器 Atom、Sublime Text、Emacs、Vim,R Markdown,PanConvert、Manubot 等等。
更多集成了 Pandoc 的第三方软件列表可以点此查看。
相关资源
- Pandoc 官方网站;
- Pandoc GitHub 源码;
- Pandoc WIKI;
- Pandoc 用户手册;
总结
Pandoc 是一个免费开源的格式转换工具,可以用于各种标记格式文档之间的转换。Pandoc 被广泛用于书写工作和电子书籍出版流程。
如果觉得文章对你有用,欢迎关注❤️、评论
Pandoc:一个超级强大的文档格式转换工具相关推荐
- 推荐一款全能的跨平台文档格式转换工具 Pandoc
公众号关注 「奇妙的 Linux 世界」 设为「星标」,每天带你玩转 Linux ! 如果您需要将文件从一种标记格式转换为另一种标记格式,那么?pandoc就是您的瑞士军刀. OpenSource: ...
- 文档格式转换工具对比
需求 免费.开源.中文字体不乱码.前后排版大致一样 工具对比 工具 缺点 xdocReport(poi) 排版会乱 docx4j 仅支持docx转换 document4j 仅适用在本地安装了offic ...
- java调用print2flash_文档格式转换工具Print2Flash使用教程:使用皮肤更改按钮图像...
Print2Flash是一款强大的文件格式转换及文档发布工具.可以轻松实现可打印文档(如Word.PDF文档.PPT或是Excel电子表格)转换到 Adobe ® Flash ®文件(swf).htm ...
- 如何把文档转成html格式转换,文档格式转换工具Print2Flash使用教程:如何将文档转换为Print2Flash格式件或HTML5文件?...
Print2Flash是一款强大的文件格式转换及文档发布工具.可以轻松实现可打印文档(如Word.PDF文档.PPT或是Excel电子表格)转换到 Adobe ® Flash ®文件(swf).htm ...
- php 批量转换文档编码格式_据说是国内最好的文档格式转换网址~PDF,PPT,EXCEL,WORD互相转换...
作者 雷哥 | 编辑 小西瓜 各位读者朋友,大家好. 平时工作中,经常会遇到PDF转为Word,或者PPT转为Word,或者..... 遇到这种情况,大家有什么好的方法实现呢? 今天雷哥推荐给大家一个 ...
- 如何利用 onlyoffice 实现文档格式转换
目录 前言 正文 启动 onlyoffice 服务 API 接口介绍 转换列表 请求示例 结尾 前言 日常生活和工作中,文档格式转换应该是很常见的需求.面对这样的需求,我们技术男有没有属于自己的好方法 ...
- Aconvert 文档格式转换-PDF转免费转其他文档网址-免费
现在市面上的文件转换软件都已经收费,且转换后文件真的不敢用! 今天分享一个免费的文档转换软件,可将PDF文档免费转换为:Word,Excel,PPT,HTML,TXT,DWG,JPG,PNG,GIF或 ...
- 轻松实现各种文档格式转换,doc转pdf、doc转png图片、pdf转png图片,可以实现Windows、Linux、MacOS平台上部署(附源码和说明)
轻松实现各种文档格式转换,doc转pdf.doc转png图片.pdf转png图片,可以实现Windows.Linux.MacOS平台上部署,可以通过命令行.shell脚本.python等方式调用. 实 ...
- documents4j:Java文档格式转换开发库
为什么80%的码农都做不了架构师?>>> http://hao.jobbole.com/documents4j/ documents4j:Java文档格式转换开发库 docum ...
- [文档格式转换神器]pdf,jpg,xps转doc,xls,ppt等office格式
[文档格式转换神器]pdf,jpg,xps转doc,xls,ppt等office格式 Made By LuckyDog 今天公司财务遇到一个问题,同时也是给我出了一个难题(Because之前没弄过), ...
最新文章
- 大数运算(7)——大数阶乘(求阶乘)
- leetcode234 回文链表
- 容器编排技术 -- Kubernetes 重新配置活动集群中节点的 Kubelet
- ImageFun 使JPG的缩略图跟原图不一样 (刷微博必备)
- 【基于STM32F407IGT6】STemWin5.20d + uCOS-III + FatFS程序下载
- DRF基类APIView的子类GenericAPIView
- 把Ubuntu安装到移动硬盘
- html幻灯片图片切换效果代码,javascript实现图片切换的幻灯片效果源代码
- 5G通信协议(MAC 层简介)
- 网站优化加速经验总结
- 免费国外视频素材网站
- 24V转3.3V稳压芯片,低压降线性稳压器
- 网络营销中词条推广的价值和注意事项
- Date对象在Safari与IOS中的“大坑”
- wannier拟合能带总是拟合不上_科学网—Wannier90输入文件中num_wann, num_bands, 和energy window等参数设置规则 - 李云海的博文...
- cosx的傅里叶变换
- 全志A20 android4.4双屏异显 双屏同显终于可以了
- Git 修改已提交的 commit 信息
- 【测试】工艺路线展开Function
- 唯美PS转手绘之SAI篇_百度经验