2014-04-28 14 views
5

Próbuję przekonwertować plik SVG do PDF z następującego kodu, ale masz błądkonwersji z svg do pdf

src:

from svglib.svglib import svg2rlg 
from reportlab.graphics import renderPDF 
drawing = svg2rlg("test.svg") 
renderPDF.drawToFile(drawing, "test.pdf") 

błąd:

pydev debugger: starting 
Traceback (most recent call last): 
    File "C:\Users\Stone\.eclipse\org.eclipse.platform_4.3.0_1709980481_win32_win32_x86\plugins\org.python.pydev_2.8.2.2013090511\pysrc\pydevd.py", line 1446, in <module> 
    debugger.run(setup['file'], None, None) 
    File "C:\Users\Stone\.eclipse\org.eclipse.platform_4.3.0_1709980481_win32_win32_x86\plugins\org.python.pydev_2.8.2.2013090511\pysrc\pydevd.py", line 1092, in run 
    pydev_imports.execfile(file, globals, locals) #execute the script 
    File "C:\Users\Stone\Documents\FastDose\src\Beagle\Prove e test\test_renderpdf.py", line 9, in <module> 
    drawing = svglib.svg2rlg("test.svg") 
    File "C:\Python27\lib\site-packages\svglib\svglib.py", line 1178, in svg2rlg 
    svgRenderer.render(svg) 
    File "C:\Python27\lib\site-packages\svglib\svglib.py", line 511, in render 
    self.render(child, self.mainGroup) 
    File "C:\Python27\lib\site-packages\svglib\svglib.py", line 534, in render 
    item = self.renderG(n) 
    File "C:\Python27\lib\site-packages\svglib\svglib.py", line 626, in renderG 
    item = self.render(child, parent=gr) 
    File "C:\Python27\lib\site-packages\svglib\svglib.py", line 534, in render 
    item = self.renderG(n) 
    File "C:\Python27\lib\site-packages\svglib\svglib.py", line 626, in renderG 
    item = self.render(child, parent=gr) 
    File "C:\Python27\lib\site-packages\svglib\svglib.py", line 534, in render 
    item = self.renderG(n) 
    File "C:\Python27\lib\site-packages\svglib\svglib.py", line 626, in renderG 
    item = self.render(child, parent=gr) 
    File "C:\Python27\lib\site-packages\svglib\svglib.py", line 554, in render 
    shape = getattr(self.shapeConverter, methodName)(n) 
    File "C:\Python27\lib\site-packages\svglib\svglib.py", line 875, in convertPath 
    normPath = normaliseSvgPath(d) 
    File "C:\Python27\lib\site-packages\svglib\svglib.py", line 146, in normaliseSvgPath 
    a = string.replace(a, 'e-', 'ee') 
NameError: global name 'string' is not defined 

Co więcej chciałbym uniknąć twardego pliku i użyć StringIO do utworzenia tymczasowego pliku svg/pdf, ale myślę, że svg2rlg akceptuje tylko ścieżkę jako dane wejściowe.

+0

Gdzie jest reszta błąd? – jonrsharpe

+0

Przepraszam cię i wklej błąd ... – gerod

+0

Wygląda na to, że brakuje jakiegoś "ciągu importu" gdzieś na – jonrsharpe

Odpowiedz

6

Dla mnie aby uzyskać jego pracy było edytować ręka:

/Users/<MY_USER>/.virtualenvs/<MY_VENV>/lib/python2.7/site-packages/svglib/svglib.py 

i dodając ten brakujący

import string

+2

tak. ta biblioteka jest po prostu stara –

Powiązane problemy