AI编程生活评测

Linux下使用pdf2htmlEX将pdf转换成html格式

编程笔记 / 2019-07-17 / 2 min
项目上遇到需求:将 pdf 文件转换成 html 格式文件,供另外的服务做 html 解析从而获取文件内容信息,这里我采用的是 pdf2htmlEX 作为转换工具,效果不错。 推荐使用最便捷的方法,直接运行 docker 容器内的程序转换,避免部署工具所需要的环境等,节约很多时间。 先安装 docker 并配置 docker 服务自启动,参考文章:CentOS7安装Docker配置服务端和容器自启动
  1. 直接运行docker进行转换
docker run -ti --rm -v `pwd`:/pdf bwits/pdf2htmlex pdf2htmlEX --zoom 1.3 test.pdf
  1. 或者为docker命令添加别名
alias pdf2htmlEX='docker run -ti --rm -v `pwd`:/pdf bwits/pdf2htmlex pdf2htmlEX'
测试一下
pdf2htmlEX --zoom 1 test.pdf
效果跟前面的一样,转换效果不错,感谢插件作者。
  1. 指定输出位置转换:
pdf2htmlEX --zoom 1 --dest-dir ./out test.pdf
参数:
    --zoom 缩放比例
    --dest-dir 输出目录
    test.pdf 待转换的文件
更多用法参考官方文档

扩展一下

结合我之前的文章:CentOS下使用LibreOffice实现文档格式的转换,不难想到,对于 doc/docx 文档,我们可以先将其转换成 pdf 然后再继续转换成 htmldoc/docx转pdf
soffice --headless --convert-to pdf ./1003437-1560257355.docx --outdir ./
pdf转html
docker run -it --rm -v `pwd`:/pdf --privileged=true bwits/pdf2htmlex pdf2htmlEX --zoom 1 1003437-1560257355.pdf
html解析为json
python /tools/parser/htmlParser.py 1003437-1560257355.html
这样我们就使用同一套解析程序兼容解析了 doc/docx/pdf ,在程序中使用运行docker命令时将-it去掉,将要转换的目录正确挂在到docker中并保证运行docker命令的用户对目录和文件有读写权限。
  1. 心灵博客 2019-07-19 · 10:35

    转换后还原度有90%么?

    1. 行星带 2019-07-19 · 11:33

      可能有少量样式错位啥的,对于程序来说没啥影响,程序只关心提取内容,不太关心样式。