http://pastebin.com/JuQVrGzC
But I just found two problem:
1. table is double if width < 100mm (line 55)
2. this program dies with following message if fontName is not set (line 51)
Traceback (most recent call last):
File "table.py", line 63, in <module>
p.wrap(width-padding*2, height-padding*2)
File "/usr/local/lib/python2.7/dist-packages/reportlab-3.2.9-py2.7-linux-x86_64.egg/reportlab/platypus/paragraph.py",
line 1111, in wrap
blPara = self.breakLines(self._wrapWidths)
File "/usr/local/lib/python2.7/dist-packages/reportlab-3.2.9-py2.7-linux-x86_64.egg/reportlab/platypus/paragraph.py",
line 1430, in breakLines
spaceWidth = stringWidth(' ',fontName, fontSize)
File "/usr/local/lib/python2.7/dist-packages/reportlab-3.2.9-py2.7-linux-x86_64.egg/reportlab/pdfbase/pdfmetrics.py",
line 720, in stringWidth
return getFont(fontName).stringWidth(text, fontSize, encoding=encoding)
File "/usr/local/lib/python2.7/dist-packages/reportlab-3.2.9-py2.7-linux-x86_64.egg/reportlab/pdfbase/pdfmetrics.py",
line 686, in getFont
return findFontAndRegister(fontName)
File "/usr/local/lib/python2.7/dist-packages/reportlab-3.2.9-py2.7-linux-x86_64.egg/reportlab/pdfbase/pdfmetrics.py",
line 668, in findFontAndRegister
face = getTypeFace(fontName)
File "/usr/local/lib/python2.7/dist-packages/reportlab-3.2.9-py2.7-linux-x86_64.egg/reportlab/pdfbase/pdfmetrics.py",
line 625, in getTypeFace
return _typefaces[faceName]
KeyError: 'helvetica'