【问题标题】:Save Contents of QTextEdit as *.pdf?将 QTextEdit 的内容保存为 *.pdf?
【发布时间】:2014-03-24 03:42:36
【问题描述】:

我正在尝试将文本编辑器的内容保存为 pdf 文件。文本编辑器是使用 PyQt 制作的(我没有制作文本编辑器),我从 here 获得了文本编辑器的代码。我已经对编辑器进行了一些更改,但这不会有问题。

经过一些初步研究,我发现我需要使用 ReportLab 发布 pdf 文件。但我找不到这样做的方法。

有谁知道如何做到这一点?

【问题讨论】:

  • 我刚刚记得你问了一个very similar question,你接受了一个答案。那么,为什么您现在认为您需要 ReportLab?我在 Linux 和 WinXP 上测试了 Qt pdf writer,结果非常好(尤其是纯文本)。

标签: python python-2.7 pyqt reportlab qtextedit


【解决方案1】:

文本编辑器的源代码已经有一个PDF 方法,但它没有被使用,并且可能无法正常工作。

对应该适用于所有平台的方法进行基本重写,如下所示:

def SavetoPDF(self):
    filename = QtGui.QFileDialog.getSaveFileName(self, 'Save to PDF')
    if filename:
        printer = QtGui.QPrinter(QtGui.QPrinter.HighResolution)
        printer.setPageSize(QtGui.QPrinter.A4)
        printer.setColorMode(QtGui.QPrinter.Color)
        printer.setOutputFormat(QtGui.QPrinter.PdfFormat)
        printer.setOutputFileName(filename)
        self.text.document().print_(printer)

您只需要一个菜单​​项来运行它,所以在Main.initUI 中添加:

    pdfAction = QtGui.QAction("Save to PDF", self)
    pdfAction.setStatusTip("Save to PDF")
    pdfAction.triggered.connect(self.SavetoPDF)
    ...

    file.addAction(pdfAction)

【讨论】:

  • 这很好用,基本上是 Mark Summerfield 在他的 PyQt 书的第 13 章中的内容,如果有人有的话(尽管这里的 ekhumoro 版本在某些方面更有效)。适用于纯文本,除此之外它会有点粗糙。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-07-29
  • 2013-12-20
  • 2018-03-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多