700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 使用pymupdf开发pdf查看编辑器

使用pymupdf开发pdf查看编辑器

时间:2019-01-07 17:40:45

相关推荐

使用pymupdf开发pdf查看编辑器

第三方库PyMuPDF在 python 环境下对 PDF 文件的操作,特别是图片和pdf之间相互转换比较方便,并且能较方便的执行一些如追加删除之类的功能。开发文档见:https://pymupdf.readthedocs.io/en/latest/。

我写的一个demo已上传到我的资源中,实现的功能为:查看 pdf文件、追加pdf文档、删除pdf页面、将当前页面放到剪贴板等功能。界面左边栏为页面导航,点击缩略图后显示页面,按ctrl+鼠标滚轮后可缩放页面 ,使用了pyqt5框架。CSDN资源下载:/detail/zhoury/11222542,github上的连接为:/tzous/pdfedit.git。欢迎下载参考。

1、建议使用pip安装

pipinstall[--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_RGB888qtimg = 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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。