当前位置: 首页 > news >正文

Python制作简易PDF查看工具——PDFViewerV1.0

PDFViewer PDF浏览工具,是使用Python语言(使用PyQt5开发界面,PDF解析使用PyMuPDF开源模块)开发的PDF查看工具,已经实现基本翻页浏览、OCR文字识别(基于开源主流文字识别模型实现)、内容查找高亮显示、文件截取、文件合并、转成图片、图片生成PDF等功能,其它功能在进一步开发完善当中,如果有想一起开发的朋友,可以留言。本软件完全免费,自由使用。

工具介绍

软件界面简洁,有菜单栏、工具栏和状态栏,目前实现的功能较为简单,可以打开加载PDF文件,或者在左侧目录树中单击PDF文件,在右侧浏览区中将显示PDF文件的内容,如果下图所示:

工具左侧显示目录树,由于这是一款专门的PDF阅读工具,因此方便快速定位PDF文件,目录树中过滤只显示PDF文件,其他文件不会显示在目录树中,右侧为阅览区,打开的文件加载到该区域阅读。目前本软件只实现了简单的上、下翻页功能,其他更多功能后续会逐步完善。

软件实现

Python语言开发,采用PyQt5开发图形界面,界面使用QtDesigner设计,所有图标资源均由Pyisntaller打包在一个可扫行文件当中。感兴趣的朋友可以交流。

放大缩小功能

补充放大、缩小功能,完善翻页功能,效果如下图所示:

查找功能

增加查找功能,实现对查找结果高亮显示,如下图所示:

点击“查找”工具按钮,输入要查找的文字内容,点击OK,查找结果如下图:

制作查找工具栏,可以设置显示或者隐藏查找工具栏,默认只显示查找按钮,隐藏工具栏。工具栏使用方法,在搜索框内输入查找内容,直接回车或者点击查找按钮,返回查找结果并高亮显示。

搜索结果显示在打开文件下方,显示查找到匹配文本所在的页、行以及当前行的上、下文。

图片导出

增加导出图片功能,可以设置导出图片的质量(1级-5级),效果如下:

导出图片存储于当前文件夹的pics文件夹中,如下图所示:

增加将当前页面导出图片功能,可以将当前页面导出图片存放在当前目录的pics文件夹中。

图片生成PDF文件

对应将pdf导出图片,有时候也需要将图片生成一个pdf,因此增加一个将多张图片生成pdf文件的功能,可以将选中的图片合并生成一个PDF文档。

提取页面

文件页面提取,生成新的PDF文件,提取页面可以选择连续或者以逗号分隔的不连续页面,如下图所示:

提取后在当前文件夹下生成 extracted_pages.pdf,如下图所示:

修改:切换文件关闭查找搜索结果显示。

合并PDF文档

对应从PDF中提取部分页面生成新的PDF文档,本功能实现了将多个PDF文档合并成一个新的PDF文件。如下图所示:

单击合并文件按钮,在弹出的对话框中选择要合并的文档,如下所示:

单击“打开”后,弹出对话框提示保存合并后输出文件的路径,如图:

单击“保存”后,在指定文件夹下生成合并后的文件,如下图所示:

页面跳转

对于较大的pdf文件,几十甚至几百页的大文件,上下翻页跳转很不方便,增加跳转工具,可在跳转框中转入想要跳转的页码,单击页面跳转按钮(或者直接回车)实现直接跳到指定页面浏览。如下图所示:

OCR文字识别

打开PDF文件后,单击工具栏中OCR文字识别按钮,即可实现当前页面的文字识别,识别结果显示在弹出的对话框中。如下图所示:

单击工具栏中OCR文字识别全文识别按钮,即可实现所有页面的文字识别,识别结果显示在弹出的对话框中。如下图所示:

页面旋转

发现经常存在有的PDF文件或者图片转换生成的PDF页面方向是横着的,这样影响阅读效果,因此补充了旋转页面的功能,还可以对旋转后页面的文件进行保存,这样以后再打开文件的时候方向就正确了。效果如下:

打开一个文件:

点击工具栏“逆时针旋转”按钮,页面向左逆时针转动90度,如下图:

单击工具栏保存按钮,可以将旋转后的文档另存到本地文件。

关于

在文件菜单中点击“关于”或者按"Ctrl+A"组合键,可以弹出关于对话框,在里面点击确定可以查看使用说明。

欢迎大家使用,有好的功能建议可留言。

感谢支持

本工具将不定期持续更新,请大家多多支持,大家的支持是更新的源动力。目前本工具已初步成为一个功能简单实用的PDF查看工具,更多功能后续会持续改进完善。欢迎大家留言,提出宝贵意见。同时,有想体验的朋友也可以留言。

本工具下载文件已更新,下载地址:https://download.csdn.net/download/urhero/90279429

http://www.jsqmd.com/news/541163/

相关文章:

  • USB-Disk-Ejector:智能管理USB设备提升工作效率的技术实现与应用指南
  • 基于springboot运动场馆服务平台设计与开发(源码+精品论文+答辩PPT等资料)
  • 2026年Q1深度解析:五家顶尖DeepSeek关键词优化服务商,谁才是你的增长引擎? - 2026年企业推荐榜
  • ABB机器人SMB板更换避坑指南:新旧板处理差异及外部轴注意事项
  • Arduino-Relay库:继电器状态持久化与位级EEPROM设计
  • 基于springboot志愿服务预约与管理平台设计与开发(源码+精品论文+答辩PPT等资料)
  • asp毕业设计下载(全套源码+配套论文)——基于asp+access的班级学生管理系统设计与实现
  • 2026贵阳中古风衣帽间服务商深度评测:如何选择你的美学收纳伙伴? - 2026年企业推荐榜
  • 用Python重写PTA数据结构经典算法:顺序栈/循环队列/二叉树遍历全实现
  • Path of Building:离线构筑计算器的全面使用指南
  • 三相桥式逆变器(SVPWM )基于下垂控制下的离网控制探究
  • # 爬虫技术的实现
  • 基于springboot大数据爬虫+Hadoop的分析的兼职聚合与个性化推荐平台设计与开发(源码+精品论文+答辩PPT等资料)
  • 2026年河北防火堵料厂商深度测评与选购指南:聚焦专业与可靠 - 2026年企业推荐榜
  • ESP32-S3项目实战:用LVGL 9.2.2在ILI9488屏上做一个简易中文聊天界面
  • 基于Matlab - GUI的3D拓扑程序设计之旅
  • 基于springboot大数据爬虫+Hadoop的技术的抖音女装推荐系统设计与开发(源码+精品论文+答辩PPT等资料)
  • HunyuanVideo-Foley模型微调(Fine-tuning)入门:定制专属音效风格
  • League-Toolkit智能辅助全解析:从青铜到钻石的效率提升实战指南
  • 终极指南:如何为x-ray网页抓取器选择最佳驱动方案
  • 2026年超声波治疗仪应用白皮书医疗机构采购指南:经颅磁理疗仪/经颅磁理疗器/经颅磁电疗仪/经颅磁疗仪/选择指南 - 优质品牌商家
  • KindEditor完整指南:如何快速集成轻量级HTML编辑器到你的网站
  • BepInEx终极指南:快速上手Unity游戏插件框架的完整教程
  • 2026家用康复理疗仪核心性能深度评测报告:便携超声波治疗仪/便携预适应训练仪/全自动缺血预适应训练仪/选择指南 - 优质品牌商家
  • PyTorch实战:傅里叶变换在图像处理中的核心应用与代码解析
  • LabelMe图像分辨率适配:不同尺寸图像的标注技巧
  • 如何安装oh my opencode
  • X File Storage 技术文档
  • Uvicorn与Prometheus Exporter:打造Python ASGI应用的终极性能监控方案
  • 高并发场景下如何避免UID冲突?详解雪花算法与Redis方案