记录PyQt5 开发(二)pdf阅读器

写这篇文章主要是因为网上太多参差不齐的教学,坑害了不少人(包括我)

最近在做一个PyQt5的小项目,要在界面里内嵌pdf阅读器。相信这种需求应该比较常见把,但是网上就没一个靠谱的教学。

在网上找了一个手撸的阅读器,大致思路是把pdf当前页转化为图片,显示到一个Widget里面,然后左右点击翻页。但是体验远远不如浏览器内置的阅读器。

其实Qt从5.13起就在QWebEngineView中内嵌了pdf阅读器

pdfViewerEnabled : bool

Specifies that PDF documents will be opened in the internal PDF viewer instead of being downloaded.

Enabled by default.

This property was introduced in QtWebEngine 1.9.

代码:

from PyQt5 import QtWidgets,QtCore,QtGui

from PyQt5.QtCore import QUrl, QFile, QFileInfo

from PyQt5.QtWidgets import *

from PyQt5.QtGui import *

from PyQt5.QtWebEngineWidgets import *

class pdfReaderQWebView(QWebEngineView):

def __init__(self, parent=None):

super(pdfReaderQWebView, self).__init__(parent)

self.settings().setAttribute(QWebEngineSettings.PluginsEnabled, True)

self.settings().setAttribute(QWebEngineSettings.PdfViewerEnabled, True)

def setFile(self, filename):

Url = QUrl.fromLocalFile(QFileInfo(filename).absoluteFilePath())

self.setUrl(QtCore.QUrl(Url))

if __name__ == '__main__':

app = QApplication(sys.argv)

gui = pdfReaderQWebView()

gui.setFile("demo.pdf")

gui.show()

sys.exit(app.exec_())

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容