Para tomar y convertir una captura de pantalla a PDF, primero se puede usar PyAutoGUI , que es una biblioteca de automatización en Python que puede controlar el mouse, el teclado y puede manejar muchas tareas de control de GUI. En segundo lugar, para la conversión se puede utilizar PIL (Python Imaging Library) de python, que proporciona una función de procesamiento de imágenes y admite muchos formatos de archivo y su conversión. La segunda biblioteca que se puede utilizar para la conversión es img2pdf que proporciona, como su nombre indica, la conversión de imágenes a pdf más rápida y sin pérdidas.
Instalación
Para la instalación de la biblioteca utilice los siguientes comandos:
- PyAutoGUI:
pip install PyAutoGUI
- PIL (biblioteca de imágenes de Python):
pip install Pillow
- img2pdf
pip install img2pdf
Enfoque #1
En este enfoque, estamos utilizando la biblioteca PIL de python. Primero, la captura de pantalla se toma usando la función de captura de pantalla() de la biblioteca PyAutoGUI de python. Después de eso, se guarda la salida de la captura de pantalla. El método open() de la biblioteca PIL se usa para abrir la imagen y luego el método convert() para convertir la imagen a RGB, que luego se guarda con la extensión .pdf en la ruta dada. Alternativamente, también puede proporcionar la captura de pantalla/imagen proporcionando la ruta dentro del método open().
Nota: La r’ se usa para que la string se trate como una string sin formato.
Implementación:
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)
Producción:
Enfoque #2
En este enfoque, la biblioteca img2pdf se utiliza para la conversión. En primer lugar, la captura de pantalla se toma utilizando el método de captura de pantalla() de la biblioteca PyAutoGUI de python. Después de abrir la captura de pantalla usando el método open() y se pasa «rb» como parámetro para abrir el archivo en formato binario. Después de eso, el archivo de salida que es pdf se abre usando el método open() bt pasando el parámetro «wb» (usado para escribir en binario). Se llama a la función write() y se pasa el método convert() de img2pdf con el objeto de captura de pantalla. Por último, ambos objetos se cierran para eliminar cualquier información no escrita.
La principal ventaja del método es que es rápido en comparación con PIL y también es una conversión sin pérdidas con un tamaño pequeño. Alternativamente, también puede proporcionar la captura de pantalla/imagen proporcionando la ruta dentro del método open().
Nota: La captura de pantalla/imagen no contiene un canal alfa ya que no hay ningún método disponible que convierta RGBA a RGB en img2pdf.
Implementación:
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()
Producción:
Publicación traducida automáticamente
Artículo escrito por PranjalGoyal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA