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()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值