鱼C论坛

 找回密码
 立即注册
查看: 2907|回复: 2

[已解决]pyqt5 printToPdf 生成PDF 动态生成的内容无法生成在PDF中

[复制链接]
发表于 2022-12-4 13:04:07 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 haiyingbs 于 2022-12-4 13:06 编辑

我想把html另存为pdf

self.page = QtWebEngineWidgets.QWebEnginePage()
self.page.load(QUrl(html))
self.page.printToPdf("pppppp.pdf")

成功生成pdf   但html中动态js生成的内容无法没有生成在pdf中。
研究了好几天,在网上也没有找到相关的函数。
请问大神们,有什么办法吗?


最佳答案
2022-12-4 19:53:07
本帖最后由 hrpzcf 于 2022-12-4 19:57 编辑

发问题请带上能复现问题的最小代码,越难的问题越需要。

等待加载完成再保存 PDF

屏幕截图 2022-12-04 194643.png

# coding: utf-8

import sys

from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWebEngineWidgets import *
from PyQt5.QtWidgets import *

# class MainWindow(QMainWindow):
#     def __init__(self):
#         super().__init__()
#         self.centerw = QWidget()
#         self.wpage = QWebEngineView()
#         self.wpage.load(QUrl("https://fishc.com.cn/forum-173-1.html"))
#         self.btn = QPushButton("保存")
#         self.lay = QVBoxLayout()
#         self.lay.addWidget(self.wpage, 1)
#         self.lay.addWidget(self.btn, 0)
#         self.btn.clicked.connect(self.save_pdf)
#         self.centerw.setLayout(self.lay)
#         self.setCentralWidget(self.centerw)
#         self.show()

#     def save_pdf(self):
#         self.wpage.page().printToPdf("pppppp.pdf")
#         print("已保存, 耐心等待 pdf 文件出现...")


class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.page = QWebEnginePage()
        self.page.load(QUrl("https://fishc.com.cn/forum-173-1.html"))
        self.btn = QPushButton("保存", self)
        self.btn.clicked.connect(self.save_pdf)
        self.btn.setGeometry(10, 10, 75, 28)
        self.show()

    def save_pdf(self):
        self.page.printToPdf("pppppp.pdf")
        print("已保存, 耐心等待 pdf 文件出现...")


if __name__ == "__main__":
    app = QApplication(sys.argv)
    win = MainWindow()
    sys.exit(app.exec_())



想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-12-4 18:18:05 | 显示全部楼层
请问大神们,有什么办法吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-4 19:53:07 | 显示全部楼层    本楼为最佳答案   
本帖最后由 hrpzcf 于 2022-12-4 19:57 编辑

发问题请带上能复现问题的最小代码,越难的问题越需要。

等待加载完成再保存 PDF

屏幕截图 2022-12-04 194643.png

# coding: utf-8

import sys

from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWebEngineWidgets import *
from PyQt5.QtWidgets import *

# class MainWindow(QMainWindow):
#     def __init__(self):
#         super().__init__()
#         self.centerw = QWidget()
#         self.wpage = QWebEngineView()
#         self.wpage.load(QUrl("https://fishc.com.cn/forum-173-1.html"))
#         self.btn = QPushButton("保存")
#         self.lay = QVBoxLayout()
#         self.lay.addWidget(self.wpage, 1)
#         self.lay.addWidget(self.btn, 0)
#         self.btn.clicked.connect(self.save_pdf)
#         self.centerw.setLayout(self.lay)
#         self.setCentralWidget(self.centerw)
#         self.show()

#     def save_pdf(self):
#         self.wpage.page().printToPdf("pppppp.pdf")
#         print("已保存, 耐心等待 pdf 文件出现...")


class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.page = QWebEnginePage()
        self.page.load(QUrl("https://fishc.com.cn/forum-173-1.html"))
        self.btn = QPushButton("保存", self)
        self.btn.clicked.connect(self.save_pdf)
        self.btn.setGeometry(10, 10, 75, 28)
        self.show()

    def save_pdf(self):
        self.page.printToPdf("pppppp.pdf")
        print("已保存, 耐心等待 pdf 文件出现...")


if __name__ == "__main__":
    app = QApplication(sys.argv)
    win = MainWindow()
    sys.exit(app.exec_())



想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-15 18:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表