1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > html5 保存页面为pdf 如何在PyQt5中将HTML页面保存为PDF

html5 保存页面为pdf 如何在PyQt5中将HTML页面保存为PDF

时间:2022-11-08 13:50:59

相关推荐

html5 保存页面为pdf 如何在PyQt5中将HTML页面保存为PDF

我尝试使用PyQt5将一些简单的html保存到pdf文档中。

网页呈现正确,使用show()命令我可以得到一个窗口,显示有问题的web内容,但是尝试将其打印为pdf只会导致空白pdf。在

这是在Python3.6上,在发布这个问题时,我有当前的PyQt5版本。(Windows 10,64位)

stackoverflow上已经有很多关于这个问题的老问题,但是我发现他们中的大多数使用的函数已经不存在了。在

有问题的代码如下:from PyQt5.QtWebEngineWidgets import QWebEngineView, QWebEngineSettings

from PyQt5 import QtWidgets

from PyQt5.QtPrintSupport import QPrinter

from PyQt5 import QtCore

[...]

app = QtWidgets.QApplication(sys.argv)

QWebEngineSettings.globalSettings().setAttribute(QWebEngineSettings.PluginsEnabled, True)

QWebEngineSettings.globalSettings().setAttribute(QWebEngineSettings.ScreenCaptureEnabled, True)

loader = QWebEngineView()

#loader.setAttribute(QtCore.Qt.WA_DontShowOnScreen, True)

loader.setAttribute(QtCore.Qt.WA_DeleteOnClose, True)

loader.setZoomFactor(1)

loader.setHtml(webpage)

printer = QPrinter()

printer.setPageSize(QPrinter.A4)

printer.setOutputFormat(QPrinter.PdfFormat)

printer.setOutputFileName("test.pdf")

printer.setOrientation(QPrinter.Portrait)

printer.setFullPage(True)

def emit_pdf(finished):

loader.show()

loader.render(printer)

if self.open_on_complete:

import webbrowser

webbrowser.open("test.pdf")

#app.exit()

loader.loadFinished.connect(emit_pdf)

app.exec()

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