96SEO 2026-02-19 19:38 0
PNG图片生成库#xff1…使用PyQt5应用程序制作PDF转换成图片的小工具可以导入PDF文档后一键生成对应的PNG图片。

PyMuPDF1.18.17将需要使用到的python标准库或非标准库全部导入到我们的代码块中进入开发环节。
traceback接下来直接进入正题首先创建名称为PdfToPngUI的python类将UI组件及布局和相关的槽函数都写入到这个类中。
self).__init__()self.init_ui()def
UI.self.setWindowTitle(PDF图片转换工具
集中营)self.setWindowIcon(QIcon(analysis.ico))self.resize(600,
QLineEdit()self.source_pdf_path.setPlaceholderText(PDF文件路径)self.source_pdf_path.setReadOnly(True)self.source_pdf_btn
QPushButton()self.source_pdf_btn.setText(导入)self.source_pdf_btn.clicked.connect(self.source_pdf_btn_click)self.target_png_path
QLineEdit()self.target_png_path.setPlaceholderText(目标图片存储路径)self.target_png_path.setReadOnly(True)self.target_png_btn
QPushButton()self.target_png_btn.setText(路径)self.target_png_btn.clicked.connect(self.target_png_btn_click)self.start_btn
QPushButton()self.start_btn.setText(PDF一键生成PNG图片)self.start_btn.clicked.connect(self.start_btn_click)self.brower
QTextBrowser()self.brower.setReadOnly(True)self.brower.setFont(QFont(宋体,
8))self.brower.setPlaceholderText(日志处理过程区域...)self.brower.ensureCursorVisible()grid
QGridLayout()grid.addWidget(self.source_pdf_path,
2)grid.addWidget(self.source_pdf_btn,
1)grid.addWidget(self.target_png_path,
2)grid.addWidget(self.target_png_btn,
1)grid.addWidget(self.start_btn,
WorkThread(self)self.pdf_thread.message.connect(self.show_message)self.pdf_thread.finished.connect(self.finished)self.setLayout(grid)def
self.brower.textCursor()cursor.movePosition(QTextCursor.End)self.brower.append(text)self.brower.setTextCursor(cursor)self.brower.ensureCursorVisible()def
QFileDialog.getOpenFileName(self,
(*.pdf))self.source_pdf_path.setText(source_pdf_path[0])def
QFileDialog.getExistingDirectory(self,
os.getcwd())self.target_png_path.setText(target_png_path)def
clicked.self.pdf_thread.start()self.start_btn.setEnabled(False)def
True:self.start_btn.setEnabled(True)通过上面的PdfToPngUI类处理这个时候UI组件及布局和槽函数已经开发完成了应用的页面效果如下。
然后我们开始业务逻辑的开发。
这里将业务逻辑使用单独的子线程开发避免和页面的主线程发生阻塞。
创建一个子线程的python类WorkThread并继承自QThread子线程将PDF图片转换的过程写到里面。
self).__init__(parent)self.working
run(self):PDF转换图片的业务函数。
try:source_pdf_path
self.parent.source_pdf_path.text().strip()target_png_path
self.parent.target_png_path.text().strip()if
:self.message.emit(来源文件路径或目标存储路径不能为空)self.finished.emit(True)returnself.message.emit(源文件路径{}.format(source_pdf_path))self.message.emit(目标文件路径{}.format(target_png_path))pdf_
fitz.open(source_pdf_path)self.message.emit(成功打开PDF文件对象)reader
PyPDF2.PdfFileReader(source_pdf_path)self.message.emit(PDF文件流处理完成)page_num
reader.getNumPages()self.message.emit(PDF文件页数读取完成)for
page.get_pixmap()pix_.save(os.path.join(target_png_path,
.png))self.message.emit(图片保存成功{}.format(os.path.join(target_png_path,
.png)))self.message.emit(PNG图片全部转换完成)self.finished.emit(True)except:traceback.print_exc()self.message.emit(程序运行出现错误请检查参数是否设置正确)self.finished.emit(True)经过上述的UI界面组件以及业务线程的开发功能已经实现了下面使用main函数调起整个应用就OK了。
PdfToPngUI()main.show()sys.exit(app.exec_())往期精彩
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback