Python PyQt:QWebView.print(QPrinter())提供空白PDF文件
大家好 在我开发的工具中,我需要一个生成简单PDF文档的功能。没什么特别的。顶部有2张png图片,一点文字和下表。 我发现最简单的方法是创建HTML文件,然后使用PyQt4将其打印为PDF。不幸的是,我的代码中有些地方出了问题 代码中的更多内容Python PyQt:QWebView.print(QPrinter())提供空白PDF文件,python,pdf,pyqt,qwebview,Python,Pdf,Pyqt,Qwebview,大家好 在我开发的工具中,我需要一个生成简单PDF文档的功能。没什么特别的。顶部有2张png图片,一点文字和下表。 我发现最简单的方法是创建HTML文件,然后使用PyQt4将其打印为PDF。不幸的是,我的代码中有些地方出了问题 代码中的更多内容 import sys from PyQt4.QtCore import * from PyQt4.QtGui import * from PyQt4.QtWebKit import * web = QWebView() web.load(QUrl(r'
import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyQt4.QtWebKit import *
web = QWebView()
web.load(QUrl(r'file:///H:/.../table.htm'))
web.show() ### HERE IT WORKS! - IT SHOWS MY HTML FILE CORRECTLY
printer = QPrinter()
printer.setPageSize(QPrinter.A4)
printer.setOutputFormat(QPrinter.PdfFormat)
printer.setOutputFileName(r"H:\...\file.pdf")
web.print_(printer) ### HERE IS THE PROBLEM. PDF FILE IS CREATED INDEED.
### IT SEEMS TO BE A4, BUT COMPLETLY EMPTY. :-/
创建的PDF文件如下所示-
如果有人知道解决办法,我会非常感激的
那好吧
Janek如果您只需要从HTML生成PDF,请查看。你可以在一行中完成,而不需要所有PyQt的东西。我很想使用它,但是你能告诉我如果我只为更大的软件构建一个插件,该怎么做吗。我想使用weasyprint库,但不想强制用户安装它。我是否可以将其复制到插件和导入模块的目录中?应该可以将所有内容打包,但您需要跟踪所有必需的依赖项,记住其中一些依赖项是特定于平台的。如果您不想担心外部依赖性,您的PyQt方法可能会更好。您可能应该使用loadFinished()来确保web视图在呈现给QPrinter之前已经实际加载了内容。看,西蒙,你是对的。我从那个链接复制了解决方案,它成功了。它需要为QWebView创建一个类,但这是可行的。:-)如果您只需要从HTML生成PDF,请查看。你可以在一行中完成,而不需要所有PyQt的东西。我很想使用它,但是你能告诉我如果我只为更大的软件构建一个插件,该怎么做吗。我想使用weasyprint库,但不想强制用户安装它。我是否可以将其复制到插件和导入模块的目录中?应该可以将所有内容打包,但您需要跟踪所有必需的依赖项,记住其中一些依赖项是特定于平台的。如果您不想担心外部依赖性,您的PyQt方法可能会更好。您可能应该使用loadFinished()来确保web视图在呈现给QPrinter之前已经实际加载了内容。看,西蒙,你是对的。我从那个链接复制了解决方案,它成功了。它需要为QWebView创建一个类,但这是可行的。:-)