Seite 1 von 1

img2pdf: Fehler

Verfasst: Sonntag 2. Februar 2020, 11:26
von drnicolas
Ich versuche mit folgendem Code alle .PNG-Dateien in einem Verzeichnis zu einem PDF umzuwandeln.

Code: Alles auswählen

with open(targetPDF, 'wb') ad f:
	f.write(img2pdf.convert([i for i in os.listdir(jobdir)]))
f.close
Dabei bekomme ich einen Fehler.
Der Fehler lautet: <class 'TypeError'>, TypeError("a bytes-like object is required, not str")

Der Code stammt aus dem Netz und auch mit anderen Varianten bekomme ich denselben Fehler.

Gruss Nico

Re: img2pdf: Fehler

Verfasst: Sonntag 2. Februar 2020, 11:38
von Sirius3
Du solltest hier den Code ins Forum kopieren, den Du auch tatsächlich verwendest und nicht irgendwie abschreiben.
Statt den Fehler irgendwie abzuschreiben, solltest Du den kompletten Traceback kopieren, sonst kann man Dir nicht helfen.

Variablen schreibt man klein_mit_unterstrich und `i` ist ein ganz schlechter Name für einen Dateinamen. f.close ist gleich in zweierlei Hinsicht unsinnig.
os.listdir ist falsch, da es nur den Dateinamen, nicht den Pfad liefert. Benutze pathlib.Path.iterdir.

Re: img2pdf: Fehler

Verfasst: Sonntag 2. Februar 2020, 11:46
von __blackjack__
Ergänzend zu Sirius3 wäre vielleicht auch `Path.glob()` einen Blick Wert wenn man das leicht auf Dateipfade einschränken möchte die dem Muster "*.png" entsprechen.

Re: img2pdf: Fehler

Verfasst: Montag 3. Februar 2020, 16:26
von drnicolas
Danke für die Hinweise.
Die Änderung bringt aber nichts. Der Fehler ist weiterhin derselbe.

Sorry, aber ich habe diesen Code in mehreren Varianten als Lösung für den Umgang mit img2pdf gefunden und gehe natürlich davon aus, daß das funktioniert.

Es geht dsrum, alle in einem Verzeichnis befindlichen Einzel-PNG zu einem mehrseitigen PDF zusammenzubauen.

Das habe ich bisher mit "convert" gemacht. img2pdf soll aber effizienter und besser von der Qualität sein.
Für mich bezieht sich die Fehlermeldung auch nicht unbedingt auf nicht erreichbare Dateien.

Re: img2pdf: Fehler

Verfasst: Montag 3. Februar 2020, 16:42
von Sirius3
Nochmal: wo ist der exakte Code, den Du ausgeführt hast und wie sieht der komplette Traceback aus?
Ohne diese Angaben kann man Dir nicht helfen.