Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 26, 2008 10:12:52

qman
От:
Зарегистрирован: 2007-07-02
Сообщения: 444
Репутация: +  0  -
Профиль   Отправить e-mail  

Подскажите как можно добавить barcode, charts на canvas в reportlab?

Всем привет,
Подскажите как можно добавить 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()



Офлайн

#2 Ноя. 26, 2008 10:29:44

qman
От:
Зарегистрирован: 2007-07-02
Сообщения: 444
Репутация: +  0  -
Профиль   Отправить e-mail  

Подскажите как можно добавить barcode, charts на canvas в reportlab?

Нашел пример использования http://python.net/~gherman/presentations/rlgsvg-epc2002.pdf
На странице 9 приведено как создавать объект класса VerticalBarChart, но непонятно как добавить этот объект в pdf файл?
P.S. pdf файл не требуется сохранить на диск, он передается в django как request



Отредактировано (Ноя. 26, 2008 12:13:02)

Офлайн

#3 Ноя. 26, 2008 10:49:27

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

Подскажите как можно добавить barcode, charts на canvas в reportlab?

что то эта ссылка не открывается у меня… 404..



Офлайн

#4 Ноя. 26, 2008 12:14:37

qman
От:
Зарегистрирован: 2007-07-02
Сообщения: 444
Репутация: +  0  -
Профиль   Отправить e-mail  

Подскажите как можно добавить barcode, charts на canvas в reportlab?

Исправил адрес - убрал точку, которая по ошибки попадала в состав адреса. Теперь файл открывается.
P.S. Теперь предложение не заканчивается точкой :(



Офлайн

#5 Ноя. 26, 2008 13:57:22

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

Подскажите как можно добавить barcode, charts на canvas в reportlab?

Вот пример 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)

Офлайн

#6 Дек. 24, 2008 11:14:03

qman
От:
Зарегистрирован: 2007-07-02
Сообщения: 444
Репутация: +  0  -
Профиль   Отправить e-mail  

Подскажите как можно добавить barcode, charts на canvas в reportlab?

Всем привет,
есть еще вопрос по теме 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 с открытым текстом кодированного кода?



Офлайн

#7 Дек. 26, 2008 11:04:16

qman
От:
Зарегистрирован: 2007-07-02
Сообщения: 444
Репутация: +  0  -
Профиль   Отправить e-mail  

Подскажите как можно добавить barcode, charts на canvas в reportlab?

Всем привет,
Тема зашла в тупик.
Кто нибудь может объяснить почему и как возникает ошибка “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 кривая?



Отредактировано (Дек. 26, 2008 11:06:32)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version