Wie verwende ich reportlab ist mit der Methode drawImage ein Bild url?

Wenn ich versuche die folgende:

from reportlab.lib.pagesizes import letter
from reportlab.pdfgen.canvas import Canvas
import urllib
import StringIO
import PIL.Image

image_file = urllib.urlopen('https://www.google.com/images/srpr/logo11w.png')
image_string = StringIO.StringIO(image_file.read())
logo = PIL.Image.open(image_string)

canvas = Canvas('output.pdf', pagesize=letter)
canvas.drawImage(logo, 10, 10)
canvas.showPage()
canvas.save()

Bekomme ich diesen Fehler:

Traceback (most recent call last):
  File "imagefromurl.py", line 12, in <module>
    canvas.drawImage(logo, 10, 10)
  File "/usr/lib/python2.7/dist-packages/reportlab/pdfgen/canvas.py", line 857, in drawImage
    imgObj = pdfdoc.PDFImageXObject(name, image, mask=mask)
  File "/usr/lib/python2.7/dist-packages/reportlab/pdfbase/pdfdoc.py", line 2090, in __init__
    ext = string.lower(os.path.splitext(source)[1])
  File "/usr/lib/python2.7/posixpath.py", line 96, in splitext
    return genericpath._splitext(p, sep, altsep, extsep)
  File "/usr/lib/python2.7/genericpath.py", line 91, in _splitext
    sepIndex = p.rfind(sep)
  File "/usr/lib/python2.7/dist-packages/PIL/Image.py", line 515, in __getattr__
    raise AttributeError(name)

Reportlab ist die version 2.5.

  • Ich denke, Sie sind fehlt den rest Ihres traceback...
  • auch, reportlab ist bis zu der version 3.1.8 und ist verteilt als ein Rad, so lange, wie Sie ein up-to-date pip Sie sollten in der Lage sein zu aktualisieren, ganz einfach.
  • danke, behoben
  • bedeutet das, dass Sie versucht, es in 3.1.8 und es funktionierte?
  • Nein, ich arbeite war es, als ich rief für eine Weile Weg. Ich habe nur vorgeschlagen das upgrade, weil ich mag glänzende neue Dinge, und auch, weil ich dachte, dass es in Fall war es ein Fehler mit reportlab, es könnte korrigiert wurden. Ach, ich hab im Grunde den gleichen Fehler, den Sie haben...
InformationsquelleAutor ysth | 2014-09-30
Schreibe einen Kommentar