Nach einer weiteren Untersuchung wurde mir klar, dass dieser Fehler nicht bei allen mit SVG-Bildern auftreten sollte . Dies ist der relevante Teil des weasyprint Quellcode:
if mime_type == 'image/svg+xml':
# No fallback for XML-based mimetypes as defined by MIME
# Sniffing Standard, see https://mimesniff.spec.whatwg.org/
image = SVGImage(string, url)
else:
# Try to rely on given mimetype
try:
if mime_type == 'image/png':
try:
surface = cairocffi.ImageSurface.create_from_png(
BytesIO(string))
except Exception as exception:
raise ImageLoadingError.from_exception(exception)
else:
image = RasterImage(surface)
else:
image = None
except ImageLoadingError:
image = None
# Relying on mimetype didn't work, give the image to GDK-Pixbuf
if not image:
if pixbuf is None:
raise ImageLoadingError(
'Could not load GDK-Pixbuf. PNG and SVG are '
'the only image formats available.')
Wie Sie sehen können, wenn es ein png oder svg mit der richtigen MIME-Typ pixbuf überhaupt nicht verwendet. Nachdem ich das gelesen hatte, wurde mir klar, dass es ein Problem mit der SVG sein muss. Der Image-Server, S3 in meinem Fall serviert die Svg mit dem falschen content_type.
Nach der Fehlerbehebung ist der Fehler nicht mehr aufgetreten und ich kann SVGs mit weasyprint drucken.
Diese großen gearbeitet, die Installation benötigten dank ! Ich habe es vereinfacht, weil ich nur gdk-pixbuf brauchte, da ich nicht in der Lage war, JPEGs in meinen generierten Dateien erscheinen zu lassen, und die Dinge funktionieren jetzt perfekt. – capcom
Sie sind herzlich willkommen –