Tome y convierta la captura de pantalla a PDF usando Python

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *