admin管理员组文章数量:1592311
第三方库 PyMuPDF 在 python 环境下对 PDF 文件的操作,特别是图片和pdf之间相互转换比较方便,并且能较方便的执行一些如追加删除之类的功能。开发文档见:https://pymupdf.readthedocs.io/en/latest/。
我写的一个demo已上传到我的资源中,实现的功能为:查看 pdf文件、追加pdf文档、删除pdf页面、将当前页面放到剪贴板等功能。界面左边栏为页面导航,点击缩略图后显示页面,按ctrl+鼠标滚轮后可缩放页面 ,使用了pyqt5框架。CSDN资源下载:https://download.csdn/detail/zhoury/11222542,github上的连接为:https://github/tzous/pdfedit.git。欢迎下载参考。
1、建议使用pip安装
pip install [--upgrade] PyMuPDF
然后在py文件中import:
import fitz
2、打开文档
doc = fitz.open(filename)
3、pdf页面转换为图片
# 得到当前页,并转换为图片
page = self.docDoc[self.nCurr]
zoom = int(200)
rotate = int(0)
trans = fitz.Matrix(zoom / 100.0, zoom / 100.0).preRotate(rotate)
pix = page.getPixmap(matrix=trans, alpha=False)
fmt = QImage.Format_RGBA8888 if pix.alpha else QImage.Format_RGB888
qtimg = QImage(pix.samples, pix.width, pix.height, pix.stride, fmt) # 当前页转换为QImage对象
# 准备显示控件
widget = QWidget(self)
vboxLayout = QVBoxLayout()
labelimg = ShowImageWidget(widget) # 使用一个自定义的QLabel控件
labelimg.setpix(QPixmap.fromImage(qtimg).scaled(QSize(pix.width, pix.height)))
labelimg.setAlignment(Qt.AlignTop | Qt.AlignHCenter)
vboxLayout.addWidget(labelimg)
widget.setLayout(vboxLayout)
self.showArea.setWidget(widget) # 添加到showArea
4、其他功能见开发文档及demo
版权声明:本文标题:使用pymupdf开发pdf查看编辑器 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/xitong/1728139512a1147180.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论