[英]Why am I seeing “IndexError: string index out of range”
我正在尝试使用reportlab的pdfgen绘制PDF,但是当我尝试保存画布时,出现了一个很大的胡思乱想的错误:
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
/usr/local/bin/ipython-listener in <module>()
----> 1 c = set_canvas(); c.save()
/usr/lib/python2.7/dist-packages/reportlab/pdfgen/canvas.pyc in save(self)
1191 If there is current data a ShowPage is executed automatically.
1192 After this operation the canvas must not be used further."""
-> 1193 if len(self._code): self.showPage()
1194 self._doc.SaveToFile(self._filename, self)
1195
/usr/lib/python2.7/dist-packages/reportlab/pdfgen/canvas.pyc in showPage(self)
582
583 pageWidth = self._pagesize[0]
--> 584 pageHeight = self._pagesize[1]
585 cM = self._cropMarks
586 code = self._code
IndexError: string index out of range
这是相关代码:
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import landscape, letter
from reportlab.lib.units import inch
def set_canvas():
c = canvas.Canvas("bingo.pdf")
c.setPageSize(letter)
c.setPageRotation(90)
c.setFont('Helvetica-Bold', 14)
return c
加载完成后,我运行c = set_canvas()
和c.save()
并获取错误。 如果我注释掉setPageSize
行,它似乎可以工作:
def set_canvas():
c = canvas.Canvas("bingo.pdf")
c.setPageRotation(90)
c.setFont('Helvetica-Bold', 14)
return c
c = set_canvas()
c.drawString(72, 72, "Why is this so hard?")
c.save()
但是,当我添加字体大小时,我才开始遇到这个问题。 我不知道我在这里想念的是什么。
from reportlab.lib.pagesizes import landscape, letter
将letter
作为一个元组(612.0, 792.0)
-但我使用稍后在我的剧本“信”为变量的函数内部,有效地重新定义为一个字符串。 而且字符串没有索引[1]
因此当reportlab尝试使用pageHeight = self._pagesize[1]
设置pageHeight时,它超出了范围。
并非没有,运行pylint
会使我更快地了解问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.