Форум сайта python.su
Всем привет,
Подскажите как можно добавить barcode, charts на canvas?
from reportlab.graphics import barcode, charts
from reportlab.pdfgen import canvas
from reportlab.pdfbase import pdfmetrics, ttfonts
from reportlab.lib.pagesizes import A4 as page_size
from reportlab.lib.units import cm, mm, pica
c = canvas.Canvas('/example.pdf')
c.drawString(100, 100, 'this is example barcode and charts')
#как сюда вставить barcode или charts
c.showPage()
c.save()
Офлайн
Нашел пример использования http://python.net/~gherman/presentations/rlgsvg-epc2002.pdf
На странице 9 приведено как создавать объект класса VerticalBarChart, но непонятно как добавить этот объект в pdf файл?
P.S. pdf файл не требуется сохранить на диск, он передается в django как request
Отредактировано (Ноя. 26, 2008 12:13:02)
Офлайн
что то эта ссылка не открывается у меня… 404..
Офлайн
Исправил адрес - убрал точку, которая по ошибки попадала в состав адреса. Теперь файл открывается.
P.S. Теперь предложение не заканчивается точкой :(
Офлайн
Вот пример barcode
import os
from reportlab.pdfgen import canvas
from reportlab.lib.units import mm
pdf=canvas.Canvas('out.pdf')
from reportlab.graphics.barcode import code39
bar=code39.Standard39("1234567890",xdim=100*mm)
bar.drawOn(pdf,50*mm,250*mm)
pdf.save()
os.startfile('out.pdf')
Отредактировано (Ноя. 26, 2008 13:59:06)
Офлайн
Всем привет,
есть еще вопрос по теме repotlab&barcode.
Под штрихкодом часто замечали, напечатан прямым текстом код, который заштрихкодирован.
Хочу получить такой же штрих код, чтобы ниже штрихов был код, читаемый без сканера штрих кода.
по ссылке
http://two.pairlist.net/pipermail/reportlab-users/2008-November/007685.html
нашел:
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import A4
from reportlab.lib.units import mm
from reportlab.graphics.barcode import code39
TEXT = "TEST01L4"
c=canvas.Canvas("barcode.pdf",pagesize=A4)
barcode=code39.Standard39(TEXT, barWidth=0.423*mm, barHeight=10*mm,
ratio=2.75, humanReadable=True)
barcode.drawOn(c,50*mm,50*mm)
c.showPage()
c.save()
Traceback (most recent call last):
File "E:\reportlab-barcode\1.py", line 11, in <module>
barcode.drawOn(c,50*mm,50*mm)
File "C:\Python25\lib\site-packages\reportlab\platypus\flowables.py", line 102
, in drawOn
self._drawOn(canvas)
File "C:\Python25\lib\site-packages\reportlab\platypus\flowables.py", line 86,
in _drawOn
self.draw()#this is the bit you overload
File "C:\Python25\lib\site-packages\reportlab\graphics\barcode\common.py", lin
e 146, in draw
self.drawHumanReadable()
File "C:\Python25\lib\site-packages\reportlab\graphics\barcode\common.py", lin
e 164, in drawHumanReadable
self.annotate(x+width/2.,-y,s,fontName,fontSize)
File "C:\Python25\lib\site-packages\reportlab\graphics\barcode\common.py", lin
e 176, in annotate
getattr(canv,func)(text,x,y)
File "C:\Python25\lib\site-packages\reportlab\pdfgen\canvas.py", line 1217, in
drawCentredString
width = self.stringWidth(text, self._fontname, self._fontsize)
File "C:\Python25\lib\site-packages\reportlab\pdfgen\canvas.py", line 1320, in
stringWidth
(fontSize,self._fontsize)[fontSize is None])
File "C:\work\reportlab-2.2\src\rl_addons\rl_accel\_rl_accel.c", line 1104, in
stringWidthU
File "C:\work\reportlab-2.2\src\rl_addons\rl_accel\_rl_accel.c", line 1147, in
_instanceStringWidthU
AttributeError: decode
Офлайн
Всем привет,
Тема зашла в тупик.
Кто нибудь может объяснить почему и как возникает ошибка “AttributeError: decode”
в файле который отсутствует на диске “ File ”C:\work\reportlab-2.2\src\rl_addons\rl_accel\_rl_accel.c“, line 1147, in _instanceStringWidthU”!
текст ошибки
bar.drawOn(self.c, 0*mm, -45*mm)
File "C:\Python25\Lib\site-packages\reportlab\platypus\flowables.py", line 102, in drawOn
self._drawOn(canvas)
File "C:\Python25\Lib\site-packages\reportlab\platypus\flowables.py", line 86, in _drawOn
self.draw()#this is the bit you overload
File "C:\Python25\Lib\site-packages\reportlab\graphics\barcode\common.py", line 146, in draw
self.drawHumanReadable()
File "C:\Python25\Lib\site-packages\reportlab\graphics\barcode\common.py", line 164, in drawHumanReadable
self.annotate(x+width/2.,-y,s,fontName,fontSize)
File "C:\Python25\Lib\site-packages\reportlab\graphics\barcode\common.py", line 176, in annotate
getattr(canv,func)(text,x,y)
File "C:\Python25\Lib\site-packages\reportlab\pdfgen\canvas.py", line 1217, in drawCentredString
width = self.stringWidth(text, self._fontname, self._fontsize)
File "C:\Python25\Lib\site-packages\reportlab\pdfgen\canvas.py", line 1320, in stringWidth
(fontSize,self._fontsize)[fontSize is None])
File "C:\work\reportlab-2.2\src\rl_addons\rl_accel\_rl_accel.c", line 1104, in stringWidthU
File "C:\work\reportlab-2.2\src\rl_addons\rl_accel\_rl_accel.c", line 1147, in _instanceStringWidthU
AttributeError: decode
Отредактировано (Дек. 26, 2008 11:06:32)
Офлайн