百度上根据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外观完全一致:

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

PDF文件如何转成markdown格式的更多相关文章

  1. PDF文件可以转换成txt文档吗

    PDF是一种便携式的文件格式,传送和阅读都非常方便,是Adobe公司开发的跨平台文件格式,它无论在哪种打印机上都可以保证精确的颜色和准确的打印效果.可是有点遗憾的是PDF格式一般不能在手机上打开,或者 ...

  2. 办公室文员必备python神器,将PDF文件表格转换成excel表格!

    [阅读全文] 第三方库说明 # PDF读取第三方库 import pdfplumber # DataFrame 数据结果处理 import pandas as pd 初始化DataFrame数据对象 ...

  3. PDF文件怎么转换成PPT

    在日常办公中大家都会发现PDF文件目前是比较常见的一种文件,有的时候大家会需要将PDF转换成PPT为了去更好的演示,毕竟PPT文件在演示方面具有着较好的特点,那如何将PDF文件转换成PPT文件呢,今天 ...

  4. python 使用csv.reader和csv.writer读写文件并转换成dataframe格式

    import csv import pandas as pd ###csv.reader用法 ''' f=open(r"C:\Users\admin\pycdtest\wanyue\yuee ...

  5. 将ymal文件内容转换成字典格式

    yaml文件内容如图: 转换代码如下: import yaml def init_yaml(): with open(r"..\config.yaml", 'r', encodin ...

  6. mpp文件转换成jpg图片,可以用pdf文件做中转站

    用project软件做了一个表,发现不能转换成图片,先把mpp文件转换成pdf文件,然后用PS打开pdf文件,存储为jpg格式就行了

  7. 15个最好的PDF转word的在线转换器,将PDF文件转换成doc文件

    PDF是一种文件格式,包含文本,图像,数据等,这是独立于操作系统的文件类型.它是一个开放的标准,压缩,另一方面DOC文件和矢量图形是由微软文字处理文件.该文件格式将纯文本格式转换为格式化文档.它支持几 ...

  8. 怎样将PDF文件转换成Excel表格

    PDF文件怎样转换成Excel表格呢?因为很多的数据信息现在都是通过PDF文件进行传输的,所以很多时候,信息的接受者都需要将这些PDF文件所传输的数据信息转换成Excel表格来进行整理,但是我们应该怎 ...

  9. 实现同时将一批.bmp文件转换成.mat格式

    %% 功能:实现同时对一批.bmp文件的转换成.mat格式PicFormat = {'*.bmp','Bitmap image (*.bmp)';... '*.jpg','JPEG image (*. ...

随机推荐

  1. ASP.NET Core 的启动和运行机制

    目录 ASP .NET Core 的运行机制 ASP .NET Core 的启动 ASP .NET Core 的管道和中间件 参考 ASP .NET Core 的运行机制 Web Server: AS ...

  2. 如何在CentOS7上安装桌面环境?

    1.安装 GNOME-Desktop 安装GNOME桌面环境 # yum -y groups install "GNOME Desktop" 完成安装后,使用如下命令启动桌面 # ...

  3. xml布局中include的使用

    参考:http://blog.csdn.net/harvic880925/article/details/17263275 include_button1.xml <?xml version=& ...

  4. laravel数据迁移的时候遇到的字符串长度的问题

    问题截图:   问题解决办法:   use Illuminate\Support\facades\Schema; Schema::defaultStringLength(191);           ...

  5. Cannot find type definition file for '.svn'

    描述: Ionic项目在执行ionic build --prod过程中,出现如下错误: 看来是.svn文件影响了编译. 解决办法:升级TortoiseSVN版本(https://tortoisesvn ...

  6. JQuery语法 JQuery对象与原生对象互转 文档就绪函数与window.onload的区别

    [JQuery语法] 1.jQuery("选择器").action();通过选择器调用事件函数,但是jquery中,jquery可以用$(“选择器”).action();   ① ...

  7. C#构建树形数据结构

    转自:https://www.jb51.net/article/125747.htm 树形结构:最近在做任务管理,任务可以无限派生子任务且没有数量限制,前端采用Easyui的Treegrid树形展示控 ...

  8. SpringBoot 整合swagger

    springBoot 整合swagger 1.pom.xml 配置 <dependency> <groupId>io.springfox</groupId> < ...

  9. hdu 1251 统计难题 字典树第一题。

    统计难题 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131070/65535 K (Java/Others)Total Submi ...

  10. ThreeJS文字作为纹理贴图

    文字作为纹理贴图 From:http://www.linhongxu.com/post/view?id=222 这里可以使用canvas作为纹理贴图,Three为我们提供里CanvasTexture ...