无需付费开会员,一个Python程序实现PDF转高清图片

今天需要将一个PDF导出为图片,但是一般的在线转换网站导出的图片清晰度都不高,分辨率只有1241*1754,这就导致输出的图片放大后字体是有点模糊的,所以就想到了使用Python中的PyPDF2库来处理PDF文件,以及Pillow库来处理图像

首先,确保你已安装所需的库。你可以使用以下命令来安装它们:

pip install PyPDF2 Pillow

接下来,可以使用以下Python程序来执行PDF到图片的转换:

import fitz
from PIL import Image# 读取PDF文件
pdf_file = "your_pdf_file.pdf"# 打开PDF文件
pdf_document = fitz.open(pdf_file)# 自定义输出图片的清晰度(dpi)
dpi = 300# 逐页将PDF转换为图像
for page_num in range(pdf_document.page_count):page = pdf_document.load_page(page_num)# 将PDF页面转换为PIL图像image = page.get_pixmap(matrix=fitz.Matrix(dpi/72, dpi/72))# 创建PIL图像对象pil_image = Image.frombytes("RGB", [image.width, image.height], image.samples)# 保存图像为文件image_file = f"output_page_{page_num+1}.png"pil_image.save(image_file, dpi=(dpi, dpi))print(f"{pdf_document.page_count} 页PDF已转换为图像。")

将上述代码中的your_pdf_file.pdf替换为你要处理的PDF文件的路径。程序将为每一页生成一个单独的PNG图像文件,你可以自定义dpi变量来控制输出图像的清晰度(每英寸点数)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/103169.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Unity 表面凝结水珠效果(无需编码案例分享)

文章目录 前言正文1、准备工作2、瓶子的表面会先慢慢变白3、身周围的物体的反射会慢慢变得模糊4、周围的反射又会慢慢的变回清晰5、出现一个个不跪着的小水珠 结语 前言 今天跟大家分享一一个非常简单的使用Unity制作出在物体便面凝结小水珠的过程动画,老规矩先上图…

JMeter三种常用的逻辑控制器

一. 如果(if)控制器 1.1 使用js语法来判断: ## 1.2 使用jexl3函数来判断性能好: 二. 循环控制器 三. ForEach控制器 ForEach控制器一般和用户自定义变量或者正则表达式提取器一起使用,其在用户自定义变量或者从正…

c++视觉处理---均值滤波

均值滤波 cv::blur()函数是OpenCV中用于应用均值滤波的函数。均值滤波是一种简单的平滑技术,它计算每个像素周围像素的平均值,并用该平均值替代原始像素值。这有助于降低图像中的噪声,并可以模糊图像的细节。 以下是cv::blur()函数的基本用…

如何在手机上设置节日提醒和倒计时天数?

在平淡的生活和工作中,时不时有各种各样节日的点缀,为我们的日常增添了一些仪式感,例如春节、元宵节、情人节、端午节、七夕节等。此外还有一些特殊的日子也值得纪念,例如恋爱纪念日、结婚纪念日、亲朋好友生日等。面对这些节日&a…

web前端面试-- js 如何快速交换2个变量的值

本人是一个web前端开发工程师,主要是vue框架,整理了一些面试题,今后也会一直更新,有好题目的同学欢迎评论区分享 ;-) web面试题专栏:点击此处 面试题:js 如何快速交换2个变量的值 在JavaScrip…

【数据结构】算法的空间复杂度

🦄个人主页:修修修也 🎏所属专栏:数据结构 ⚙️操作环境:Visual Studio 2022 算法空间复杂度的定义 算法的时间复杂度和空间复杂度是度量算法好坏的两个重要量度,在实际写代码的过程中,我们完全可以用空间来换时间,比如说,我们要判断某某年是不是闰年,大…

Vue、React和小程序中的组件通信:父传子和子传父

在前端开发中,组件化是一种常见的开发模式,它可以将复杂的用户界面拆分成多个可重用的组件。在Vue、React和小程序中,组件之间的数据和事件传递是非常关键的,其中父传子和子传父是常见的通信方式。本文将介绍在Vue、React和小程序…

css实现一行N个元素动态布局(以4个为例)

昨日同事问了我一个前端问题,前端开发的尺寸都不按照UI图上面还原的吗? 我了解了其中原由,告知UI图并不会考虑到所有的场景,只能给个案例,画图是死的,代码写出来的得是活的。就像他遇到的案例,请…

5. Full-View Non-Equal Quality (Viewport-Dependent)

Full-View Non-Equal Quality (Viewport-Dependent) 全视图质量不相等(取决于视口) Full-View Non-Equal Quality, a technique that falls under the category of Viewport-Dependent streaming for 360-degree videos, is an approach that aims to p…

GTX312L比TSM12更具优势的智能门锁触摸芯片方案

韩国GreenChip(绿芯)GTX312L是一款高灵敏、超强抗干扰能力具有自动灵敏度校准的12通道电容传感器,电源电压范围为1.8V~5.0V,支持单键/多点触控;采用I2C通信协议;内部控制寄存器可以使用I2C读写接…

华为云云耀云服务器L实例评测使用 | 云耀云服务器L实例Docker可视化Portainer容器管理

一、使用背景 之前一直在用阿里云或者腾讯云的服务器,现在接触了一下华为云的服务器实例,点开产品列表发现有弹性云服务器ECS、云耀云服务器HECS等,本文主要使用云耀云服务器,看到官方简介: 华为云耀云服务器&#x…

uniapp小程序中给web-view页面添加授权弹窗(使用cover-view组件覆盖实现该功能)

效果图: web-view是承载网页的容器。会自动铺满整个小程序页面,个人类型的小程序暂不支持使用。 再看下面一个提示: 每个页面只能有一个 web-view,web-view 会自动铺满整个页面,并覆盖其他组件。 也就是说,…

STM32-C语言结构体地址

定义2个结构体 typedef struct _demo_node_{ //结构体本身的地址struct _demo_node_* pprenode; //实际地址开始的位置,最下面的输出结果可以看出struct _demo_node_* pnextnode;unsigned long member_num;unsigned short age;char addr[0]; …

Android Studio版本升级后的问题 gradle降级、jdk升级

Cannot use TaskAction annotation on method IncrementalTask.taskAction$gradle_core() because interface org.gradle.api.tasks.incremental.IncrementalTaskInputs is not a valid parameter to an action method. 修改下面两处地方分别为7.0.3、7.3.3Android Gradle plu…

配置CA证书

前置条件 配置Java环境变量。 具体操作 windows环境 以管理员方式执行CMD窗口,输入命令; cd /d %JAVA_HOME%\jre\lib\securitycurl -kv https://xxx/artifactory/CMC-Release/certificates/xxxRootCA.cer -o xxxRootCA.cercurl -kv https://xxx/art…

前端-Vue-开发指南

VueJS 开源文档 拉入vscode安装node.js安装vue脚手架components : 组件router:路由创建新组建 :assets: 系统图片存放地址main.js: vue脚手架对象存放地 (新的包要放在里面)属性 computedslot 插槽error St…

Hadoop-2.5.2平台环境搭建遇到的问题

文章目录 一、集群环境二、MySQL2.1 MySQL初始化失败2.2 MySQL启动报错2.3 启动时报不能打开日志错2.4 mysql启动时pid报错 二、Hive2.1 Hive修改core-site.xml文件后刷新权限2.2 Hive启动元数据时报错2.3 Hive初始化MySQL报错2.3.1 报错信息2.3.2 错误原因2.3.3 参考文档 2.4 …

发明专利申请的5个阶段

1、专利受理阶段,专利局收到专利申请后进行审查,如果符合受理条件,专利局会将确定申请日,并给予申请号,而且核实文件清单后,发出受理通知书,通知申请人; 2、初步审查阶段&#xff0…

Tornado 可以使用 nginx 提供负载均衡

Tornado和nginx都是网络服务器的重要组成部分,但它们在职能和使用场景上存在显著的差异。 Tornado可以独立运行,而不需要依赖nginx等其他Web服务器。这是因为Tornado本身就是一个完整的Web服务器,可以独立处理HTTP请求并返回响应数据。 ngi…

Qt 框架 6.6版本添加响应式布局,并兼容AArch64 架构

近日有消息称,Qt 框架 6.6版本已经正式发布,并且还引入“ Qt Graphs”,为 Qt Quick 添加“响应式布局”,顺便还改善了文字转语音(Text to Speech)模块。 而在Qt Graphs 模块方面,作为 Qt Data Visualization模块的替代…