鱼C论坛

 找回密码
 立即注册
查看: 3343|回复: 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


  1. # coding: utf-8

  2. import sys

  3. from PyQt5.QtCore import *
  4. from PyQt5.QtGui import *
  5. from PyQt5.QtWebEngineWidgets import *
  6. from PyQt5.QtWidgets import *

  7. # class MainWindow(QMainWindow):
  8. #     def __init__(self):
  9. #         super().__init__()
  10. #         self.centerw = QWidget()
  11. #         self.wpage = QWebEngineView()
  12. #         self.wpage.load(QUrl("https://fishc.com.cn/forum-173-1.html"))
  13. #         self.btn = QPushButton("保存")
  14. #         self.lay = QVBoxLayout()
  15. #         self.lay.addWidget(self.wpage, 1)
  16. #         self.lay.addWidget(self.btn, 0)
  17. #         self.btn.clicked.connect(self.save_pdf)
  18. #         self.centerw.setLayout(self.lay)
  19. #         self.setCentralWidget(self.centerw)
  20. #         self.show()

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


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

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


  36. if __name__ == "__main__":
  37.     app = QApplication(sys.argv)
  38.     win = MainWindow()
  39.     sys.exit(app.exec_())
复制代码




小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-12-4 18:18:05 | 显示全部楼层
请问大神们,有什么办法吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

等待加载完成再保存 PDF

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


  1. # coding: utf-8

  2. import sys

  3. from PyQt5.QtCore import *
  4. from PyQt5.QtGui import *
  5. from PyQt5.QtWebEngineWidgets import *
  6. from PyQt5.QtWidgets import *

  7. # class MainWindow(QMainWindow):
  8. #     def __init__(self):
  9. #         super().__init__()
  10. #         self.centerw = QWidget()
  11. #         self.wpage = QWebEngineView()
  12. #         self.wpage.load(QUrl("https://fishc.com.cn/forum-173-1.html"))
  13. #         self.btn = QPushButton("保存")
  14. #         self.lay = QVBoxLayout()
  15. #         self.lay.addWidget(self.wpage, 1)
  16. #         self.lay.addWidget(self.btn, 0)
  17. #         self.btn.clicked.connect(self.save_pdf)
  18. #         self.centerw.setLayout(self.lay)
  19. #         self.setCentralWidget(self.centerw)
  20. #         self.show()

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


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

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


  36. if __name__ == "__main__":
  37.     app = QApplication(sys.argv)
  38.     win = MainWindow()
  39.     sys.exit(app.exec_())
复制代码




小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-25 21:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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