admin管理员组文章数量:1581546
今天遇上一个问题就是需要将几个pdf合并起来,我百度了一下有哪些方法可以做,可以先看下:
第一种:使用“iLovePDF”(在线端)
这是一个国外的免费在线PDF文件处理工具,它提供了PDF合并、PDF拆分、PDF压缩、PDF签名、旋转PDF、PDF转Word、PDF转Excel等服务,无需安装任何软件和插件,直接在线就能完成操作。官网地址在这里,首页截图如下所示:
当然了也可以下载离线包本地安装也是可以的。
第二种:使用“全能PDF转换助手”(PC端)
这是一款多功能的PDF处理工具,它不仅支持Word、Excel、PPT、图片等多种文件格式与PDF格式之间的转换,还支持PDF合并、PDF分割、PDF加解密、PDF压缩、PDF编辑等功能。官网地址在这里,首页截图如下所示:
我下载体验了一下结果发现直接就要收费,果断放弃了。
第三种:使用“PDF Converter”(在线端)
这是一个国外的在线PDF转换处理网站,它支持PDF转Excel、PDF转Word、PDF转PPT、PDF合并等功能,且该网站界面简洁,操作简单。不过它的转换效率比较慢,上传的文件需要等待几分钟才能转换成功。官方地址在这里,首页截图如下所示:
这个我自己也体验了一下,速度奇慢无比,难以接受,放弃。
第四种:万能PDF转换器
跟全能PDF转换助手是类似的形式,这里就不再多介绍了,感兴趣的话可以自行使用,官方地址在这里,首页截图如下所示:
当然了可能还会有第五种第六种。。。,不过我已经不想再使用软件了,这里我选择基于Python来实现我的需求了,简单调研了一下发现的确是可行的。
第五种:基于Python的实现
我有一张图片,我手工操作将其转为了pdf文件,同时还有一个pdf文件,想要把这两个pdf文件进行合并,最开始我觉得我的查询思路错了,我一开始是想着怎么样一步到位将两个pdf文件合并,但是却没有想到,我本身第一个pdf文件就是一个图片,如果我可以将第二个pdf文件转化为图片,这时候两张图片转化为pdf文件岂不是很简单了吗?
想到这里,我的思路就打开了,只需要基于Python实现pdf文件转化提取为图像数据集即可,而Python正好就有这样的模块。就是fitz,可以直接pip安装,如下:
python3 -m pip install fitz
安装过程很顺利,但是import导入的时候报错如下:
No module named ‘frontend‘
查了一下说的是fitz依赖于PyMuPDF模块,于是我又开始安装PyMuPDF模块,结果pip安装一直报奇怪的错误,去查了一下现成的wheel文件也是没有的,很无奈,后来在一篇文章里面看到需要安装的时候指定好版本号,于是我又重新试了一下果然可以了,如下:
python3 -m pip install PyMuPDF==1.16.14
执行上面的安装命令即可安装成功,之后就是基于fitz模块开发转化程序了。
源码实现如下所示:
#!usr/bin/env python
# encoding:utf-8
from __future__ import division
"""
__Author__:沂水寒城
功能: pdf转png
"""
import os
import fitz
def pdf2Png(pdfPath, name, zoom_x, zoom_y, rotation_angle, saveDir):
"""
pdf文件转为png文件
"""
if not os.path.exists(saveDir):
os.makedirs(saveDir)
pdf = fitz.open(pdfPath)
# 逐页读取pdf
for page_num in range(0, pdf.pageCount):
print("Parse And Transfome Page: ", page_num)
page = pdf[page_num]
# 设置缩放和旋转系数
trans = fitz.Matrix(zoom_x, zoom_y).preRotate(rotation_angle)
p2p = page.getPixmap(matrix=trans, alpha=False)
p2p.writePNG(saveDir + name + "_" + str(page_num) + ".png")
pdf.close()
if __name__ == "__main__":
print(
"===================================Loading PDF2PNG==================================="
)
saveDir = "data/"
pdf2Png("雷军刷屏,难掩互联网低谷.pdf", "lbs", 1, 1, 0, saveDir)
上面的pdf2Png函数即可实现我的需求,接下来简单测试验证一下。
我随机打开百度,选择了一篇新闻,链接在这里,首页截图如下所示:
终端执行输出如下所示:
代码运行成功后会自动本地创建data目录,存储所有的图像数据,如下所示:
我给每页pdf转化得到图片命名的前缀是lbs[雷布斯],后面的数字是在原始pdf文件中的页码,我们来简单看下:
lbs_0.png
lbs_1.png
lbs_2.png
lbs_3.png
lbs_4.png
完美转化提取,记录一下,希望可以帮到有需要的人。
版权声明:本文标题:Python实用功能之pdf文件转png图片数据 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1727886265a1135983.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论