PyMuPDF库(处理PDF)
昨天在公司需要把一份PDF格式认证表转换为图片JPEG格式,所以在网上查询了一些与此相关的python库,最后看网上大多都是使用Wand和PyMuPDF,在安装了Wand库后,导入相应的模块后报错了,好像要安装什么依赖项,最后选择了PyMuPDF,下载库文件就可以直接用。
1、下载PyMuPDF库文件
pip install PyMuPDF
2、源文件贴上
import os
import fitz # 导入的是fitz if __name__ == '__main__':
base_path = input("请输入要转换的文件路径:") # 输入要转换的PDF所在的文件夹
filenames = os.listdir(base_path) # 获取PDF文件列表
for filename in filenames:
full_path = os.path.join(base_path, filename) # 拼接,得到PDF文件的绝对路径
print(full_path)
doc = fitz.open(full_path) # 打开一个PDF文件,doc为Document类型,是一个包含每一页PDF文件的列表
rotate = int(0) # 设置图片的旋转角度
zoom_x = 2.0 # 设置图片相对于PDF文件在X轴上的缩放比例
zoom_y = 2.0 # 设置图片相对于PDF文件在Y轴上的缩放比例
trans = fitz.Matrix(zoom_x, zoom_y).preRotate(rotate)
print("%s开始转换..." % filename)
if doc.pageCount > 1: # 获取PDF的页数
for pg in range(doc.pageCount):
page = doc[pg] # 获得第pg页
pm = page.getPixmap(matrix=trans, alpha=False) # 将其转化为光栅文件(位数)
new_full_name = full_path.split(".")[0] # 保证输出的文件名不变
pm.writeImage("%s%s.jpg" % (new_full_name, pg)) # 将其输入为相应的图片格式,可以为位图,也可以为矢量图
# 我本来想输出为jpg文件,但是在网页中都是png格式(即调用writePNG),再转换成别的图像文件前,最好查一下是否支持
else:
page = doc[0]
pm = page.getPixmap(matrix=trans, alpha=False)
new_full_name = full_path.split(".")[0]
pm.writeImage("%s.jpg" % new_full_name)
print("%s转换完成!" % filename)
3、PyMuPDF文档
https://pymupdf.readthedocs.io/en/latest/
PyMuPDF库(处理PDF)的更多相关文章
- 利用python第三方库提取PDF文件的表格内容
小爬最近接到一个棘手任务:需要提取手机话费电子发票PDF文件中的数据.接到这个任务的第一时间,小爬决定搜集各个地区各个时间段的电子发票文件,看看其中的差异点.粗略统计下来,PDF文件的表格框架是统一的 ...
- 使用iText库创建PDF文件
前言 译文连接:http://howtodoinjava.com/apache-commons/create-pdf-files-in-java-itext-tutorial/ 对于excel文件的读 ...
- 转:在 C# 中使用 P/Invoke 调用 Mupdf 函数库显示 PDF 文档
在 C# 中使用 P/Invoke 调用 Mupdf 函数库显示 PDF 文档 一直以来,我都想为 PDF 补丁丁添加一个 PDF 渲染引擎.可是,目前并没有可以在 .NET 框架上运行的免费 PDF ...
- 在Qt中调用Mupdf库进行pdf显示
2018.5.10 更新内存对齐说明 感谢知乎网友@孤独子狮 指出QImage处需要考虑内存对齐的问题.因为本人缺乏跨平台.图形库开发经验,所以在调试成功后就没有深入探究. 主要修改了QImage的构 ...
- PdfSharp库剪裁Pdf页面边缘空白部分
背景 网上下载下来的Pdf格式电子书放到Kindle后由于页面太大,缩放后字常常小得看不清,因此可以通过剪裁页面边缘的空白以缩小页面,使Kindle上显示的字放大.在GitHub上星最多的C# Pdf ...
- 根据第三方库spire.pdf使用指定打印机打印pdf文件
private void button1_Click(object sender, EventArgs e) { PdfDocument doc = new PdfDocument(); string ...
- pdfplumber库解析pdf格式
参考地址:https://github.com/jsvine/pdfplumber 简单的pdf转换文本: import pdfplumber with pdfplumber.open(path) a ...
- Box2D 一、学习资料(库、pdf)
参考: 在Egret中使用Box2D --- 拉小登 (提供了box2d的ts和dts文件下载,以及egret中第三方库配置教程) Egret中成功集成Box2D --- Egret论坛水友 bo ...
- 使用iTEXT库生成pdf
iTEXT下载地址 https://sourceforge.net/projects/itext/files/ 选择绿色的按钮,下载最新版本,解压后是一些jar包 为了使用方便,将文件夹放到JAVA_ ...
随机推荐
- Opencv笔记(十九)——直方图(一)
直方图概念 图像的构成是有像素点构成的,每个像素点的值代表着该点的颜色(灰度图或者彩色图).所谓直方图就是对图像的中的这些像素点的值进行统计,得到一个统一的整体的灰度概念.一般情况下直方图都是灰度图像 ...
- 使用java获取手机号归属地等信息httpClient实现
java获取手机号归属地 一般想获取手机号归属地等信息个人是无法获取的,但是可以通过调用第三方接口获取,具体百度搜索很多这里例子提供一个淘宝的接口 ,该功能已经发布到网站作为一个在线小工具,拿走不谢: ...
- Part-Selenium-1
1.在浏览器中的console输入:帮助定位 > $x('xpath表达式') > $('css表达式') 2.driver > chrome driver: https://npm ...
- 吴裕雄--天生自然C语言开发: 输入 & 输出
#include <stdio.h> int main() { ; printf("Number = %d", testInteger); ; } #include & ...
- 1088. Rational Arithmetic (20)
1.注意在数字和string转化过程中,需要考虑数字不是只有一位的,如300转为"300",一开始卡在里这里, 测试用例: 24/8 100/10 24/11 300/11 2.该 ...
- Outlook邮件的右键菜单中添加自定义按钮
customUI代码如下: <customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui"> ...
- Redhat6更改yum源 (转)
最近虚拟机中安装了redhat6.3企业版,自带的yum用不起来,软件都找不到. 网上搜了一下说是没付钱...,需要改下yum源.操作步骤如下: 1.切换到yum源存放目录[root@rhel6 ~] ...
- IntelliJ的.iml文件及相关的Class Not Found 问题
.iml 文件是IntelliJ IDEA 自动创建的模块文件,用于Java应用开发,存储一些模块开发相关的信息,比如一个Java组件, 插件组件,Maven组件等等, 还可能会存储一些模块路径信息, ...
- IPC|同族专利|专利法|Soopat|专利之星|derwent innovations index|espacenet|j-piatpat|
信息检索: 同族专利是基于同一优先权文件,在不同国家或地区,以及地区间专利组织多次申请.多次公布或批准的内容相同或基本相同的一组专利文献.同族专利检索用于同一个专利在其他国家的申请情况,查看类似专利的 ...
- 使用Cron表达式创建定时任务
CronTriggerCronTrigger功能非常强大,是基于日历的作业调度,而SimpleTrigger是精准指定间隔,所以相比SimpleTrigger,CroTrigger更加常用.CroTr ...