PDF 文件如何转成 markdown 格式

百度上根据 pdf 转 makrdown 为关键字进行搜索,结果大多数是反过来的转换,即 markdown 文本转 PDF 格式。

但是 PDF 转 markdown 的解决方案很少。
正好我工作上有这个需求,所以自己实现了一个解决方案。
下图是一个用 PDF XChange Editor 打开的 PDF 文件,我想将其内容通过 markdown 格式导出。

(1) 首先将该 PDF 导出成 word 格式,后缀.docx


(2) 使用 typora 获得该 word 文档的 markdown 源代码:

此时任务只完成了一半,因为 typora 这个工具转换成的 markdown 格式,如果原始的 word 文档里包含图片,这些图片以本地图片的形式存在于 markdown 里,那我如果直接将包含了这些本地图片的标签的 markdown 发布到简书,CSDN,开源中国,腾讯云,阿里云这些支持 markdown 的社区时,这些本地图片将无法显示。

因此我们必须找到一个高效的方法,将 word 里包含的本地图片先上传到网络上,再用生成的包含了图片网络 url 的 markdown 标签替换本地图片标签。(3) 把 word 文件的后缀从.docx 改成.zip, 解压后,在文件夹 word 的子文件夹 media 里能找到所有的本地文件。

把这些本地文件全部上传到网站,生成下面这些 url:

我写了一个工具,可以把仅包含了本地图片标签的 markdown 源代码和包含了上述在线图片 url 标签的源代码做一个合并,后并后,本地图片标签会被在线图片标签取代:

这个工具可以从我 github 上获得:https://github.com/i042416/KnowlegeRepository/blob/master/practice/255_markdown_tool.html
下图就是我的原始 PDF 转换成 markdown 格式后发布在某社区上的效果,和原始 PDF 外观完全一致:

版权声明: 本文为 InfoQ 作者【Jerry Wang】的原创文章。
原文链接:【http://xie.infoq.cn/article/055ce897f590a03d860a138f1】。文章转载请联系作者。
评论