我使用Python3.6和当前的reportlab和svg2rlg库(截至发帖时)尝试了这个方法,但在标题中出现了错误:
from reportlab.graphics import renderPDF
from svglib.svglib import svg2rlg
c = Canvas(path+'To Print.pdf')
img27 = svg2rlg(path_to_.svg')
wd27 = img27.width/inch
ht27 = img27.height/inch
renderPDF.draw(img27, c, x=x27, y=y27)
它通常工作正常,我不知道如何解决它。 我试过搜索这个错误,但在任何地方都找不到。你知道吗
以下是完整的回溯:
File "/anaconda3/lib/python3.6/site-packages/spyder/utils/site/sitecustomize.py", line 705, in runfile
execfile(filename, namespace)
File "/anaconda3/lib/python3.6/site-packages/spyder/utils/site/sitecustomize.py", line 102, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)
File "/Users/Drive/Scripts/PDF.py", line 604, in <module>
renderPDF.draw(img27, c, x=x27, y=y27)
File "/anaconda3/lib/python3.6/site-packages/reportlab/graphics/renderPDF.py", line 29, in draw
R.draw(renderScaledDrawing(drawing), canvas, x, y, showBoundary=showBoundary)
File "/anaconda3/lib/python3.6/site-packages/reportlab/graphics/renderbase.py", line 201, in draw
self.drawNode(drawing)
File "/anaconda3/lib/python3.6/site-packages/reportlab/graphics/renderPDF.py", line 54, in drawNode
self.drawNodeDispatcher(node)
File "/anaconda3/lib/python3.6/site-packages/reportlab/graphics/renderbase.py", line 282, in drawNodeDispatcher
self.drawGroup(node)
File "/anaconda3/lib/python3.6/site-packages/reportlab/graphics/renderbase.py", line 311, in drawGroup
self.drawNode(node)
File "/anaconda3/lib/python3.6/site-packages/reportlab/graphics/renderPDF.py", line 54, in drawNode
self.drawNodeDispatcher(node)
File "/anaconda3/lib/python3.6/site-packages/reportlab/graphics/renderbase.py", line 282, in drawNodeDispatcher
self.drawGroup(node)
File "/anaconda3/lib/python3.6/site-packages/reportlab/graphics/renderbase.py", line 311, in drawGroup
self.drawNode(node)
File "/anaconda3/lib/python3.6/site-packages/reportlab/graphics/renderPDF.py", line 54, in drawNode
self.drawNodeDispatcher(node)
File "/anaconda3/lib/python3.6/site-packages/reportlab/graphics/renderbase.py", line 282, in drawNodeDispatcher
self.drawGroup(node)
File "/anaconda3/lib/python3.6/site-packages/reportlab/graphics/renderbase.py", line 311, in drawGroup
self.drawNode(node)
File "/anaconda3/lib/python3.6/site-packages/reportlab/graphics/renderPDF.py", line 54, in drawNode
self.drawNodeDispatcher(node)
File "/anaconda3/lib/python3.6/site-packages/reportlab/graphics/renderbase.py", line 282, in drawNodeDispatcher
self.drawGroup(node)
File "/anaconda3/lib/python3.6/site-packages/reportlab/graphics/renderbase.py", line 311, in drawGroup
self.drawNode(node)
File "/anaconda3/lib/python3.6/site-packages/reportlab/graphics/renderPDF.py", line 54, in drawNode
self.drawNodeDispatcher(node)
File "/anaconda3/lib/python3.6/site-packages/reportlab/graphics/renderbase.py", line 282, in drawNodeDispatcher
self.drawGroup(node)
File "/anaconda3/lib/python3.6/site-packages/reportlab/graphics/renderbase.py", line 311, in drawGroup
self.drawNode(node)
File "/anaconda3/lib/python3.6/site-packages/reportlab/graphics/renderPDF.py", line 54, in drawNode
self.drawNodeDispatcher(node)
File "/anaconda3/lib/python3.6/site-packages/reportlab/graphics/renderbase.py", line 282, in drawNodeDispatcher
self.drawGroup(node)
File "/anaconda3/lib/python3.6/site-packages/reportlab/graphics/renderbase.py", line 311, in drawGroup
self.drawNode(node)
File "/anaconda3/lib/python3.6/site-packages/reportlab/graphics/renderPDF.py", line 54, in drawNode
self.drawNodeDispatcher(node)
File "/anaconda3/lib/python3.6/site-packages/reportlab/graphics/renderbase.py", line 278, in drawNodeDispatcher
self.drawPath(node)
File "/anaconda3/lib/python3.6/site-packages/reportlab/graphics/renderPDF.py", line 183, in drawPath
isClosed = _renderPath(path, drawFuncs, forceClose=fill and autoclose=='pdf')
File "/anaconda3/lib/python3.6/site-packages/svglib/svglib.py", line 1075, in patchedRenderPath
return original_renderPath(path, drawFuncs, **kwargs)
File "/anaconda3/lib/python3.6/site-packages/reportlab/graphics/shapes.py", line 996, in _renderPath
drawFuncs[op](*points[i:j])
File "/anaconda3/lib/python3.6/site-packages/reportlab/pdfgen/pathobject.py", line 127, in close
self._code_append('h')
File "/anaconda3/lib/python3.6/site-packages/reportlab/pdfgen/pathobject.py", line 36, in _init_code_append
assert c.endswith(' m') or c.endswith(' re'), 'path must start with a moveto or rect'
AssertionError: path must start with a moveto or rect
最后的断言似乎过于热心了。你知道吗
这个位置的
c
的实际值是“h”(由堆栈跟踪中上面的调用填充)。如果你把断言注释掉就行了。你知道吗也请让ReportLab的好人知道,以便他们将来可以修复。你知道吗
相关问题 更多 >
编程相关推荐