【问题标题】:QWebView save to HTML with local imageQWebView 使用本地图像保存到 HTML
【发布时间】:2013-11-14 03:33:10
【问题描述】:

我正在做这样的事情:

        doc = QWebView()
        printer = QPrinter()
        printer.setOutputFormat(QPrinter.PdfFormat)
        printer.setOutputFileName(filename)
        doc.setHtml('''    
...
<img src="star.jpg" />
...
''',QUrl.fromLocalFile("/var/www/icons/")
)
        doc.print_(printer)

我得到了一个印刷精美的 PDF……没有图像。我看到的大多数建议是使用我已经完成的 baseurl 参数,并且我尝试了 src/Qurl 值中的几乎所有 url 组合。

有没有办法让 QWebView 将图像打印到 PDF 中?

【问题讨论】:

  • 您确定这是转换为pdf的问题吗?图像在 QWebView 中可见吗?它是否显示文档是否直接发送到打印机?
  • @AlexVhr ...完全不确定。我必须可视化的唯一方法是通过打印到 PDF……还有其他方法可以查看吗?也许我可以让 QWebView 调出一个窗口或其他东西(尽管我目前正在将它作为 CGI python 脚本运行,使用 Xvfb 进行图形)。
  • 当然有,但为此你需要一个最小的 QApplication 设置。我会详细说明,但不会在 cmets 中。

标签: html qt pyqt pdf-generation


【解决方案1】:

好的,让我们尝试确保图像在 QWebView 中完全可见,并且您确实遇到了 PDF 转换问题。所以你需要运行它,看看它是否有效:

import sys
from PyQt4 import QtGui, QtCore, QtWebKit

class MyWin(QtGui.QWidget):

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.setLayout(QtGui.QVBoxLayout())
        self.view = QtWebKit.QWebView(self)
        self.layout().addWidget(self.view)
        self.view.setHtml('''
...
<img src="star.jpg" />
...
''', QtCore.QUrl.fromLocalFile("/var/www/icons/")
)

if __name__ == '__main__':
    app = QtGui.QApplication(sys.argv)
    win = MyWin()
    win.show()
    sys.exit(app.exec_())

【讨论】:

  • 是的,我对此进行了测试,效果很好,图像会在窗口中弹出。 PDF 导出仍然没有运气......即使使用相同的 html。
猜你喜欢
  • 2022-11-05
  • 2018-07-24
  • 1970-01-01
  • 1970-01-01
  • 2017-10-28
  • 2023-02-06
  • 1970-01-01
  • 2023-04-04
  • 2018-02-12
相关资源
最近更新 更多