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

本文标签: 编辑器pymupdfPDF