Machen Sie einen Screenshot und konvertieren Sie ihn mit Python in PDF
Um einen Screenshot zu erstellen und in PDF umzuwandeln, kann zunächst die PyAutoGUI verwendet werden, eine Automatisierungsbibliothek in Python, die Maus und Tastatur steuern und viele GUI-Steuerungsaufgaben bewältigen kann. Zweitens kann für die Konvertierung PIL (Python Imaging Library) von Python verwendet werden, das Bildverarbeitungsfunktionen bietet und viele Dateiformate und deren Konvertierung unterstützt. Die zweite Bibliothek, die für die Konvertierung verwendet werden kann, ist img2pdf , die, wie der Name schon sagt, die verlustfreie und schnellere Konvertierung von Bildern in PDF ermöglicht.
Installation
Verwenden Sie zur Installation der Bibliothek die folgenden Befehle:
- PyAutoGUI:
pip install PyAutoGUI
- PIL (Python-Bildgebungsbibliothek):
pip install Pillow
- img2pdf
pip install img2pdf
Ansatz Nr. 1
Bei diesem Ansatz verwenden wir die PIL-Bibliothek von Python. Zuerst wird der Screenshot mit der Funktion screenshot () der PyAutoGUI- Bibliothek von Python erstellt. Danach wird die Ausgabe des Screenshots gespeichert. Die Methode open() der PIL-Bibliothek wird verwendet, um das Bild zu öffnen, und dann die Methode convert() , um das Bild in RGB zu konvertieren, das dann mit der Erweiterung .pdf im angegebenen Pfad gespeichert wird. Alternativ können Sie den Screenshot/das Bild auch bereitstellen, indem Sie den Pfad innerhalb der Methode open() angeben.
Hinweis: Das r' wird verwendet, damit die Zeichenfolge als Rohzeichenfolge behandelt wird.
Implementierung:
Python3
import pyautogui from PIL import Image # Taking Screenshot takeScreenshot = pyautogui.screenshot() # The path of Screenshot and r' is used for specifying raw string screenshotPath = r'C:\Users\Pranjal\Desktop\gfgarticle\PDF\screenshot.png' # Saving the screenshot in the given Path takeScreenshot.save(screenshotPath) # Opening image open_image = Image.open(screenshotPath) convert_image = open_image.convert('RGB') # Output Pdf Path outputpdfPath = r'C:\Users\Pranjal\Desktop\gfgarticle\PDF\output.pdf' # Saving the pdf open_image.save(outputpdfPath)
Ausgabe:
Ansatz Nr. 2
Bei diesem Ansatz wird die Bibliothek img2pdf für die Konvertierung verwendet. Zunächst wird der Screenshot mit der Methode screenshot() der PyAutoGUI- Bibliothek von Python erstellt. Nachdem der Screenshot mit der open()-Methode geöffnet und „rb“ als Parameter zum Öffnen der Datei im Binärformat übergeben wird. Danach wird die Ausgabedatei im PDF-Format mit der open()-Methode geöffnet, wobei der „wb“-Parameter übergeben wird (der zum Schreiben in Binärdateien verwendet wird). Die Funktion write() wird aufgerufen und die Methode convert() von img2pdf wird mit dem Screenshot-Objekt übergeben. Schließlich werden beide Objekte geschlossen, damit sie alle ungeschriebenen Informationen ausspülen.
Der Hauptvorteil des Verfahrens besteht darin, dass es im Vergleich zu PIL schnell ist und auch eine verlustfreie Konvertierung mit geringer Größe ist. Alternativ können Sie den Screenshot/das Bild auch bereitstellen, indem Sie den Pfad innerhalb der Methode open() angeben.
Hinweis: Der Screenshot/das Bild enthält keinen Alphakanal, da keine Methode verfügbar ist, die RGBA in RGB in img2pdf umwandelt.
Implementierung:
Python3
import pyautogui import img2pdf # Taking Screenshot takeScreenshot = pyautogui.screenshot() # The path of Screenshot and r' is used for specifying raw string screenshotPath = r'C:\Users\Pranjal\Desktop\gfgarticle\PDF\screenshot.png' # Saving the screenshot in the given Path takeScreenshot.save(screenshotPath) # Opening Img file obj ImgFile = open(screenshotPath, "rb") # Opening the Pdf file obj PdfFile = open("output.pdf", "wb") # Converting Image File to PDF PdfFile.write(img2pdf.convert(ImgFile)) # Closing Image File Object ImgFile.close() # Closing PDF File Object PdfFile.close()
Ausgabe: