So konvertieren Sie ein Bild mit Python in ein PDF

Nachricht

HeimHeim / Nachricht / So konvertieren Sie ein Bild mit Python in ein PDF

Aug 14, 2023

So konvertieren Sie ein Bild mit Python in ein PDF

Organisieren Sie Ihre Bilder in PDFs und erfahren Sie, wie Sie mit Tkinter dieses praktische Dienstprogramm erstellen. Von Geschäftsberichten bis hin zu Fotoportfolios werden Sie häufig auf die Notwendigkeit stoßen, Bilder in PDFs zu verwenden. Ein

Organisieren Sie Ihre Bilder in PDFs und erfahren Sie, wie Sie mit Tkinter dieses praktische Dienstprogramm erstellen.

Von Geschäftsberichten bis hin zu Fotoportfolios werden Sie häufig auf die Notwendigkeit stoßen, Bilder in PDFs zu verwenden. Ein Bild-zu-PDF-Konverter kann dabei helfen, den Prozess zu rationalisieren. Obwohl online viele kostenlose Tools verfügbar sind, kann die Notwendigkeit, dass Sie Bilder hochladen, ein Datenschutz- oder Sicherheitsrisiko darstellen.

Stattdessen können Sie mit Python einen Offline-Bild-zu-PDF-Konverter erstellen. Wählen Sie mehrere Bilder im JPG- oder PNG-Format aus, erhalten Sie eine Vorschau und konvertieren Sie sie in ein PDF unter Beibehaltung der ursprünglichen Bildgröße.

Tkinter ist die Standard-GUI-Bibliothek für Python. Es bietet eine Vielzahl von Widgets wie Schaltflächen, Beschriftungen und Textfelder, die die Entwicklung von Apps wie einem Musikplayer oder einem Gewichtsumrechnungstool erleichtern. Um Tkinter auf Ihrem System zu installieren, öffnen Sie ein Terminal und geben Sie Folgendes ein:

Das Pillow-Modul ist eine leistungsstarke Python-Bildgebungsbibliothek, die es einfach macht, Vorgänge an Bildern wie Größenänderung, Zuschneiden und Filtern durchzuführen. Durch die Integration mit der OpenAI-API und DALL·E 2 können Sie Bilder mithilfe einer Textaufforderung generieren.

Um Pillow zu installieren, führen Sie diesen Befehl aus:

ReportLab ist eine Open-Source-Python-Bibliothek zum Generieren von PDFs und Grafiken. Es verfügt über verschiedene Tools, mit denen Sie Dokumente mit Bildern, Text und Tabellen erstellen können, was es nützlich macht, Berichte per Programmierung zu erstellen. Damit können Sie Geschäftsberichte, Rechnungen und Zertifikate erstellen und gleichzeitig ein Textwasserzeichen hinzufügen. So installieren Sie ReportLab:

Den gesamten Quellcode zum Erstellen des Bild-zu-PDF-Konverters mit Python finden Sie in diesem GitHub-Repository.

Importieren Sie die erforderlichen Module und erstellen Sie eine Klasse mit dem NamenImageToPDFConverter . Definieren Sie eine Konstruktormethode, die die Klasse initialisiert und das Root-Fensterobjekt von Tkinter als Argument verwendet. Initialisieren Sie eine leere Liste, um die Pfade der vom Benutzer ausgewählten Bilder zu speichern. Legen Sie den Titel und die Abmessungen der Anwendung fest. Erstellen Sie zwei Schaltflächen mit dem NamenWählen Sie Bilder ausUndIn PDF konvertieren.

Übergeben Sie das Fenster, in dem Sie die Schaltfläche platzieren möchten, den Text, den sie anzeigen sollen, den Befehl, den sie beim Klicken ausführen sollen, und das Schriftformat, das sie anwenden sollen. Organisieren Sie die Schaltflächen mithilfe derPack()Methode und geben Sie ihnen eine Polsterung von 10 in vertikaler Richtung.

Definieren Sie eine Beschriftung, indem Sie ihr das übergeordnete Fenster, in dem sie platziert werden soll, den anzuzeigenden Text, das zu verwendende Schriftformat und einen vertikalen Abstand von 10 (Pixeln) übergeben.

Definieren Sie auf ähnliche Weise einen Rahmen, um eine Vorschau des ausgewählten Bildes anzuzeigen, und legen Sie dessen übergeordnetes Fenster, Breite und Höhe fest. Organisieren Sie es mit einer Polsterung von 10.

Definieren Sie eine Methode,select_images() . Verwenden Sie TkinterDateidialogKlasse, um ein Dialogfeld zu öffnen, in dem Sie mehrere Bilder auswählen und in der speichern könnenimages_path Liste. Übergeben Sie das anfängliche Verzeichnis, das das Dialogfeld öffnen soll, den Titel, den es anzeigen soll, und die Dateitypen, die zur Auswahl zugelassen sind.

Definieren Sie eine Schleife, die alle Pfade der vom Benutzer ausgewählten Bilder durchläuft. Verwenden Sie Kissenoffen() -Methode, um die Bilddatei zu öffnen und die maximale Größe, die sie haben sollte, an die Resize-Methode zu übergeben. Konvertieren Sie dieses PIL-Bild inFotoBild das mit Tkinter kompatibel ist. Erstellen Sie eine Beschriftung, die sich in dem zuvor erstellten Vorschaurahmen befindet, und zeigen Sie das Bild an. Benutzen Sie dieNetzManager, um die Bilder in einem Rasterlayout mit drei Spalten zu organisieren.

Definieren Sie eine Methode,Bildgröße anpassen() Dadurch wird die Größe des Bildes unter Berücksichtigung der Bildgröße und der zuvor definierten maximalen Größe geändert. Berechnen Sie das Seitenverhältnis und legen Sie damit die neue Breite und Höhe fest. Verwenden Sie die Größenänderungsmethode von PIL, um die Größe des Bildes zu ändern und dabei das Seitenverhältnis beizubehalten. Verwenden Sie bilineare Interpolation als Resampling, um ein glatteres Ergebnis zu erzielen.

Definieren Sie eine Funktion,konvertieren_in_pdf() . Verwenden Sie den Dateidialog, um nach dem Zielpfad für das PDF zu fragen. Legen Sie die Standarderweiterung und den Dateityp fest als.pdf . Verwenden Sie das Canvas-Modul von ReportLab, um eine Seite im Querformat zu zeichnen. Durchlaufen Sie den Pfad der Bilder, öffnen Sie sie, stellen Sie die Abmessungen der PDF-Seite auf die gleichen wie die des Bildes ein und zeichnen Sie das Bild von der oberen linken Ecke mit den angegebenen Abmessungen.

DershowPage() Mit der Methode kann das PDF zur nächsten Seite verschoben werden. Sobald das Programm diesen Vorgang abgeschlossen hat, speichern Sie die PDF-Datei und zeigen Sie ein Meldungsfeld mit dem Pfad an.

Erstellen Sie das Tkinter-Root-Fenster und übergeben Sie es an die Klasseninstanz. DerHauptschleife()Die Funktion weist Python an, die Tkinter-Ereignisschleife auszuführen und auf Ereignisse zu warten, bis Sie das Fenster schließen.

Fügen Sie den gesamten Code zusammen und der Bild-zu-PDF-Konverter ist einsatzbereit.

Wenn Sie die App ausführen, wird ein Fenster mit zwei Schaltflächen und einer Leerstelle angezeigt, in dem Sie aufgefordert werden, die Bilder auszuwählen.

Beim Klicken aufWählen Sie Bilder aus Klicken Sie auf die Schaltfläche. Es erscheint ein Fenster, in dem Sie aufgefordert werden, die Bilder auszuwählen. Sie können beliebig viele Bilder in beliebiger Kombination auswählen.

Sobald Sie Ihre gewünschten Bilder ausgewählt haben, sehen Sie eine Vorschau davon:

Wenn Sie auf die Schaltfläche „In PDF konvertieren“ klicken, können Sie den Namen und den Pfad auswählen, in dem Sie die PDF-Datei speichern möchten. Sobald das Programm die Konvertierung abgeschlossen hat, zeigt es eine Meldung an, dass die PDF-Datei gespeichert wurde, gefolgt vom Pfadnamen. Beim Öffnen der PDF-Datei werden Sie feststellen, dass das Programm die Bilder konvertiert hat, ohne ihre Abmessungen zu ändern.

Sie können eine vollwertige PDF-Anwendung erstellen, die Vorgänge wie das Zusammenführen, Komprimieren, Schützen und Entsperren von PDFs ausführt. Sie können eine Funktion erstellen, um die PDF-Datei in mehrere Seiten aufzuteilen, sie zu drehen, bestimmte Seiten zu entfernen, sie zu sortieren und Seitenzahlen hinzuzufügen.

Sie können auch mit anderen Dateiformaten experimentieren, um ein Dokument oder eine Präsentation in PDF zu konvertieren. Mehrere Module wie PyPDF2, PDFMiner, fpdf und pdfrw können Ihnen dabei helfen, diese Ziele bequemer zu erreichen.

Sai Ashish ist ein hochqualifizierter Softwareentwickler mit Branchenerfahrung in den Bereichen Codierung, Design, Bereitstellung und Debugging von Entwicklungsprojekten. Er ist ehemaliger Leiter des Google Developer Students Club und hatte während seines Studiums an der angesehenen University of Mumbai auch die Position des technischen Leiters inne. Indien. Er ist in C++, Java und Python zertifiziert. Seit 2018 gibt er sein technisches Wissen durch seine Leidenschaft für das Schreiben, Vorträge bei Sitzungen und Online-Tutorials weiter.

ImageToPDFConverterWählen Sie Bilder ausIn PDF konvertierenPack()select_images()Dateidialogimages_pathoffen()FotoBildNetzBildgröße anpassen()konvertieren_in_pdf().pdfshowPage()Hauptschleife()Wählen Sie Bilder aus