TableView到PDF(几页)

时间:2013-02-06 17:24:24

标签: python pyqt

我正试图将一个完整的tableview从我的PyQt应用程序导出为pdf。

我已经能够进行某种类型的pdf导出,但它们总是被当前的整理 观景区。

我正在寻找一个示例来导出完整的tableview,即使只有一些在导出时可见。

我在这个tableview中有一些缩略图,所以我想这会抓住可见的图像。

这是我的sofar代码,它设法导出带有tableview部分的pdf。任何提示都将不胜感激!

def _print(self,  checked = None):
    if checked == None: return
    fileName = QtGui.QFileDialog.getSaveFileName(self, 'Save File', '', 'PDF Files (*.pdf)')
    if fileName == '': return

    #set up the QPrinter
    p = QtGui.QPrinter(QtGui.QPrinter.HighResolution)
    p.setPaperSize(QtGui.QPrinter.A4)
    p.setOutputFormat(QtGui.QPrinter.PdfFormat)
    p.setOrientation(QtGui.QPrinter.Landscape)
    p.setOutputFileName(fileName)

    #set up the painter
    painter = QtGui.QPainter()
    #Activate the painter to paint on p then give visual conformation that it worked or not.
    #If didn't work return out of method.
    if painter.begin(p) == False:
        msgBox = QtGui.QMessageBox()
        msgBox.setText('An Error occoured while creating PDF')
        msgBox.setInformativeText('Could not save PDF')
        msgBox.setIcon(QtGui.QMessageBox.Critical)
        msgBox.exec_()
        return
    #self.ShotTableView.scale(200, 200);
    #painter.begin(printer)
    print self.ShotTableView.width()
    xscale = (self.ShotTableView.width() / 50);
    yscale = (self.ShotTableView.height() / 50);
    #scale = qMin(xscale, yscale);

    painter.scale(xscale, yscale);
    self.ShotTableView.render(painter)
    painter.end()

0 个答案:

没有答案