Найти - Пользователи
Полная версия: Подскажите как можно добавить barcode, charts на canvas в reportlab?
Начало » Python для новичков » Подскажите как можно добавить barcode, charts на canvas в reportlab?
1
qman
Всем привет,
Подскажите как можно добавить 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()
qman
Нашел пример использования http://python.net/~gherman/presentations/rlgsvg-epc2002.pdf
На странице 9 приведено как создавать объект класса VerticalBarChart, но непонятно как добавить этот объект в pdf файл?
P.S. pdf файл не требуется сохранить на диск, он передается в django как request
igor.kaist
что то эта ссылка не открывается у меня… 404..
qman
Исправил адрес - убрал точку, которая по ошибки попадала в состав адреса. Теперь файл открывается.
P.S. Теперь предложение не заканчивается точкой :(
igor.kaist
Вот пример 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')
qman
Всем привет,
есть еще вопрос по теме 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
Как получить штрих код в repotlab с открытым текстом кодированного кода?
qman
Всем привет,
Тема зашла в тупик.
Кто нибудь может объяснить почему и как возникает ошибка “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
P.S. ну не было у меня никогда такого файла! Или это сборка reportlab кривая?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB