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: