python错误FPDF对象没有属性'y'

时间:2014-01-06 06:04:14

标签: python save qgis

我尝试在插件QGIS Dufour 2.01中将另存为按钮,并希望将其另存为pdf文件 当我尝试保存我的文件(打开文件目的地,然后单击保存)时,我收到一条错误消息

这段代码我写了

def _save(self, simpan):
        import fpdf
        # Portrait, millimeter units, A4 page size     
        pdf=fpdf.FPDF("P", "mm", "A4")
        # Set font: Times, normal, size 10
        pdf.set_font('Times','', 12)
        # Layout cell: 0 x 5 mm, text, no border, Left
        pdf.cell(0,5,'Input 1 : ' +  self.ui.lineInput1.text(),border=0,align="L")
        pdf.cell(0,5,'Input 2 : ' + self.ui.lineInput2.text(), border=0,align="L")
        pdf.cell(0,5,'Recomendation : ' + self.ui.textRec2.toPlainText(), border=0, align="L")
        pdf.cell(0,5,'Data 1 :' +  self.ui.lineCond1.text(), border=0, align="L" )
        pdf.cell(0,5,'Data 2 :' + self.ui.lineCond2.text(), border=0, align="L" )
        pdf.output( simpan+'.pdf','F')

我收到错误消息

File "C:\PROGRA~1\QGISDU~1\apps\Python27\lib\site-packages\fpdf\fpdf.py", line 615, in cell
    if(self.y+h>self.page_break_trigger and not self.in_footer and self.accept_page_break()):
AttributeError: 'FPDF' object has no attribute 'y'
Python version:
2.7.4 (default, Apr  6 2013, 19:54:46) [MSC v.1500 32 bit (Intel)]

我使用fpdf 1.7并使用.msi安装程序

安装它

2 个答案:

答案 0 :(得分:1)

在使用单元格填充之前,您似乎还没有在pdf中添加页面。

尝试在pdf = fpdf.FPDF(“P”,“mm”,“A4”)之后调用pdf.add_page()

答案 1 :(得分:0)

添加页面

def _save(self, simpan):
    import fpdf
    # Portrait, millimeter units, A4 page size     
    pdf=fpdf.FPDF("P", "mm", "A4")
    # add a page 
    pdf.add_page()
    # Set font: Times, normal, size 10
    pdf.set_font('Times','', 12)
    # Layout cell: 0 x 5 mm, text, no border, Left
    pdf.cell(0,5,'Input 1 : ' +  self.ui.lineInput1.text(),border=0,align="L")
    pdf.cell(0,5,'Input 2 : ' + self.ui.lineInput2.text(), border=0,align="L")
    pdf.cell(0,5,'Recomendation : ' + self.ui.textRec2.toPlainText(), border=0, align="L")
    pdf.cell(0,5,'Data 1 :' +  self.ui.lineCond1.text(), border=0, align="L" )
    pdf.cell(0,5,'Data 2 :' + self.ui.lineCond2.text(), border=0, align="L" )
    pdf.output( simpan+'.pdf','F')`