首页 前端知识 Markdown转Word/PDF/HTML全攻略:一键搞定所有格式转换!

Markdown转Word/PDF/HTML全攻略:一键搞定所有格式转换!

2024-11-02 10:11:22 前端知识 前端哥 667 34 我要收藏

使用 Markdown 后,偶尔会遇到和其他格式相互转换的需求。

Markdown 转为其他格式是非常方便的。但将 PDF、epub 等电子书转为 Markdown 就有点复杂了,本文就介绍一些转换技巧,和几个格式转换工具。

先了解下 Pandoc

Pandoc 是一个开源项目,号称文档格式转换的瑞士军刀。

Pandoc 的历史(了解即可)

Pandoc 是一个基于 GPL 协议开源的免费 命令行软件,由加州大学伯克利分校哲学系教授 John MacFarlane 使用 Haskell 语言开发,目前另一位核心开发者是来自德国的 Albert Krewinkel。截止 2022 年 12 月 10 日,Pandoc 的 GitHub 仓库拥有超过 27,000 个 Star,3,000 次 Fork。

根据 John MacFarlane 教授的 介绍,Pandoc 这个名称是一个组合单词:Pan 是希腊神话里的牧神,指的是一切掌管树林、田地和羊群的神,doc 则是 document 的缩写,意为文档。因此从字面意思来看,可以说 Pandoc 是一个「无所不能的文档转换利器」 (universal markup converter),而它的确也拥有名副其实的功能。

Pandoc 的安装

Pandoc 的官网详细介绍了在各个操作系统上的 安装方法,以 Windows 为例,直接去其 GitHub 的发行页面下载即可:

安装完成之后,在命令行输入 pandoc --version​,如果输出以下或类似的信息,则意味着安装成功:

pandoc.exe 2.13
Compiled with pandoc-types 1.22, texmath 0.12.2, skylighting 0.10.5,
citeproc 0.3.0.9, ipynb 0.1.0.1
User data directory: C:\Users\peterjxl\AppData\Roaming\pandoc
Copyright (C) 2006-2021 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 的基本使用方式

Pandoc 的基本使用方式如下:

pandoc [options] [input-file]

例如,将一个 TXT 文件转换为 HTML 文件:

pandoc -f markdown input.txt -t html -o output.html

同理,将 Markdown 转为其他格式,其他格式转为 Markdown,也是同样的用这样的指令来完成。

Typora 与 Pandoc

在 Typora 的菜单上,可以看到导出选项,支持 PDF、HTML、图片、Word 等等:

其实,Typora 是基于 Pandoc 的功能来完成格式转换的,其原理是调用电脑上的 Pandoc,如果没有安装的话,则导出会失败:

在安装完 Pandoc 后,就可以完成 Markdown 到其他格式的转换啦~

PS:如果安装 Pandoc 后,Typora 仍无法调用 Pandoc,可以考虑重启 Typora 或电脑。

PDF、Word、epub 转 Markdown

原理

Pandoc 除了能将 Markdown 转为其他格式之外,也支持其他格式转为 Markdown。

例如,Typora 也有导入的选项:

转换方式:

  • 如果是 PDF 文件,请先转换为 Word 文档,这个大部分 PDF 编辑器都支持(例如 WPS、 PDF XChange Editor)
  • 如果是 epub、mobi 等电子书格式,也可以用 Calibre 来转换为 Word 文档
  • 如果是 Word 文档,可以直接导入到 Typora

图片问题

Pandoc 只能完成格式的转换,并不能解决图片的问题。如果 Word 里有图片,则导入 Markdown 后图片会失效:

那么,如何去提取这些图片呢?其实这些文件就在 .docx 文件里。我们修改下该文件的后缀名为 zip:

然后解压,就能看到一个 media 文件夹,而里面就有相关的图片:

将该文件夹放到和 Markdown 文件同个目录,即可正常读取到图片。

导入后,由于 Word 文档的问题,图片信息可能会带有很多后缀,例如下图的 {width=......}​:

我们可以通过正则表达式,批量去掉这些无用信息(一般编辑器都自带查找和替换的功能):

\{width.*\}

其他工具

PanWriter:一个基于 Pandoc 的 Markdown 编辑器,能够通过 GUI 的方式实现 Pandoc 的部分文档转换功能。

Marker:一个开源的命令行工具,将 PDF、EPUB、MOBI 文档转成 Markdown 文件,必要时会进行 OCR(文字识别)。

参考

Pandoc 从入门到精通,你也可以学会这一个文本转换利器 - 少数派

《Pandoc 中文文档教程 - 用户帮助手册-指南(WIP)》 - 极客文档

转载请注明出处或者链接地址:https://www.qianduange.cn//article/19725.html
评论
发布的文章

JQuery中的load()、$

2024-05-10 08:05:15

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!