将QTextEdit的内容保存为* .pdf?

时间:2014-03-23 14:01:21

标签: python python-2.7 pyqt reportlab qtextedit

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

经过一些初步研究后,我发现我需要使用ReportLab发布pdf文件。但是我找不到办法来做到这一点。

有谁知道如何实现这一目标?

1 个答案:

答案 0 :(得分:8)

文本编辑器的源代码已经有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)