Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 7, 2011 12:52:14

Panter7777
От:
Зарегистрирован: 2011-02-16
Сообщения: 31
Репутация: +  0  -
Профиль   Отправить e-mail  

Подскажите модули генерации PDF из HTML

Добрый день.
Может кто-то работал или сталкивался.
Задача такая: на основе “длинной” странички HTML сгенерировать PDF разбитый на много страниц.
и что б модуль работал с css.

За ранее спасибо.



Офлайн

#2 Сен. 7, 2011 13:46:29

svas
От:
Зарегистрирован: 2010-01-27
Сообщения: 239
Репутация: +  9  -
Профиль   Отправить e-mail  

Подскажите модули генерации PDF из HTML

Офлайн

#3 Сен. 7, 2011 13:51:23

Panter7777
От:
Зарегистрирован: 2011-02-16
Сообщения: 31
Репутация: +  0  -
Профиль   Отправить e-mail  

Подскажите модули генерации PDF из HTML

Да этот пробовал, но что-то не могу нормально с ним подружиться.
Только что попробовал http://pdfcrowd.com/html-to-pdf-api/ - Отлично работает, супер не одной проблемы, но платный.



Офлайн

#4 Сен. 7, 2011 13:59:27

Panter7777
От:
Зарегистрирован: 2011-02-16
Сообщения: 31
Репутация: +  0  -
Профиль   Отправить e-mail  

Подскажите модули генерации PDF из HTML

Вот что pisa пишет:

tail: /svn/twisted/adminka/pisa_error.log: файл усечен
Document error
Traceback (most recent call last):
File "/usr/lib/pymodules/python2.7/sx/pisa3/pisa_document.py", line 161, in pisaDocument
doc.build(c.story)
File "/usr/lib/python2.7/dist-packages/reportlab/platypus/doctemplate.py", line 880, in build
self.handle_flowable(flowables)
File "/usr/lib/python2.7/dist-packages/reportlab/platypus/doctemplate.py", line 763, in handle_flowable
if frame.add(f, canv, trySplit=self.allowSplitting):
File "/usr/lib/python2.7/dist-packages/reportlab/platypus/frames.py", line 159, in _add
w, h = flowable.wrap(aW, h)
File "/usr/lib/pymodules/python2.7/sx/pisa3/pisa_reportlab.py", line 688, in wrap
return Table.wrap(self, availWidth, availHeight)
File "/usr/lib/python2.7/dist-packages/reportlab/platypus/tables.py", line 1113, in wrap
self._calc(availWidth, availHeight)
File "/usr/lib/python2.7/dist-packages/reportlab/platypus/tables.py", line 587, in _calc
self._calc_height(availHeight,availWidth,W=W)
File "/usr/lib/python2.7/dist-packages/reportlab/platypus/tables.py", line 553, in _calc_height
spanFixDim(H0,H,spanCons,lim=hmax)
File "/usr/lib/python2.7/dist-packages/reportlab/platypus/tables.py", line 205, in spanFixDim
t = sum([V[x]+M.get(x,0) for x in xrange(x0,x1)])
TypeError: unsupported operand type(s) for +: 'NoneType' and 'int'
Если кому то это что-то скажет, то вот что на 205 строчке:
def spanFixDim(V0,V,spanCons,lim=None,FUZZ=rl_config._FUZZ):
#assign required space to variable rows equally to existing calculated values
M = {}
if not lim: lim = len(V0) #in longtables the row calcs may be truncated
for (x0,x1),v in spanCons.iteritems():
if x0>=lim: continue
x1 += 1
t = sum([V[x]+M.get(x,0) for x in xrange(x0,x1)])
if t>=v-FUZZ: continue #already good enough
X = [x for x in xrange(x0,x1) if V0[x] is None] #variable candidates
if not X: continue #something wrong here mate
v -= t
v /= float(len(X))
for x in X:
M[x] = M.get(x,0)+v
for x,v in M.iteritems():
V[x] += v



Отредактировано (Сен. 7, 2011 14:28:32)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version