Saltar al contenido

Leer una página específica de un archivo PDF en Python

Screenshotfrom20221130150943 Leer una página específica de un archivo PDF en Python

El procesamiento de documentos es uno de los casos de uso más comunes del lenguaje de programación Python. Esto permite que el lenguaje maneje muchos archivos, como archivos de bases de datos, archivos multimedia y archivos cifrados, solo por nombrar algunos. En este artículo, aprenderá cómo leer una página en particular de un archivo PDF (formato de documento portátil) en Python.

Método 1: usar la biblioteca Pymupdf para leer la página en Python

La PIL (Biblioteca de imágenes de Python), junto con la biblioteca PyMuPDF, se utiliza en este artículo para el procesamiento de PDF. Para instalar la biblioteca PyMuPDF, ejecute el siguiente comando en el procesador de comandos del sistema operativo:

pip install pymupdf

Observación: Esta biblioteca PyMuPDF se importa con el siguiente comando.

import fitz

Para leer una página de un archivo PDF, primero debe cargarlo y luego mostrar el contenido de una sola de las páginas. Esto esencialmente hace que una página sea equivalente a una imagen. Por lo tanto, la página se leería del archivo PDF y se mostraría como una imagen.

El siguiente ejemplo ilustra el proceso anterior:

Python3

import fitz

from PIL import Image

 

input_file = r"test.pdf"

 

file_handle = fitz.open(input_file)

 

page = identificador_de_archivo[0]

 

page_img = page.get_pixmap()

 

page_img.save('PDF_page.png')

 

img = Image.open('PDF_page.png')

 

img.show()

Salida:

Screenshotfrom20221130150943 Leer una página específica de un archivo PDF en Python

Explicación:

Primero, se abre el archivo PDF y se guarda el identificador del archivo. Luego, la primera página del PDF (en el índice 0) se carga a través de la indexación de listas. El mapa de píxeles (pixel array) de esta página se obtiene mediante el get_pixmap función y el mapa de píxeles resultante se almacena en una variable. Luego, este mapa de píxeles se guarda como un archivo de imagen png. Luego, este archivo png se abrirá usando el Abierto función presente en el Imagen módulo de PÍLDORA. Finalmente, la imagen es renderizada usando el mostrar función.

Observación: El primero Abierto La función se usa para abrir un archivo pdf, y la última se usa para abrir un archivo de imagen png. Las funciones pertenecen a diferentes bibliotecas y se utilizan para diferentes propósitos.

Método 2: leer una página específica de un PDF con PyPDF2

El segundo ejemplo usaría la biblioteca PyPDF2. Que se puede instalar ejecutando el siguiente comando:

pip install PyPDF2

El mismo objetivo se puede lograr utilizando la biblioteca PyPDF2. La biblioteca permite el procesamiento de archivos PDF y permite varias operaciones como leer, escribir o crear un archivo PDF. Para la tarea en cuestión, haría uso de la función de extraer texto para extraer y mostrar el texto del archivo PDF. El código para esto es el siguiente:

Python3

import PyPDF2

   

input_file = r"test.pdf"

 

page = 4

 

pdfFileObj = open('test.pdf', 'rb')

   

pdfReader = PyPDF2.PdfFileReader(pdfFileObj)

   

pageObj = pdfReader.getPage(page)

   

data = pageObj.extractText()

 

pdfFileObj.close()

 

print(data)

Salida:

He started this Journey with just one 
thought- every geek should have 
access to a never ending range of 
academic resources and with a lot 
of hardwork and determination, 
GeeksforGeeks was born.
Through this platform, he has        
successfully enriched the minds of 
students with knowledge which has 
led to a boost in their careers. But 
most importantly, GeeksforGeeks 
will always help students stay in 
touch with their Geeky side!
EXPERT ADVICE
CEO and Founder of 
GeeksforGeeks
                  I understand that many 
students who come to us are 
either fans of the sciences or 
have been pushed into this 
feild by their parents.
And I just want you to 
know that no matter 
where life takes you, we 
at GeeksforGeeks hope 
to have made this 
journey easier for  
you.Mr. Sandeep Jain
3

Explicación:

Primero, la ruta al PDF de entrada y el número de página se definen en variables separadas. Luego abre el archivo PDF y almacena el objeto de archivo en una variable. Luego, esta variable se pasa como argumento a la función PdfFileReader, que crea un objeto lector de PDF a partir de un objeto de archivo. Luego, los datos almacenados dentro del número de página definido en la variable de página se obtienen y almacenan en una variable. Luego extrae el texto de esa página PDF y cierra el objeto de archivo. Finalmente, se mostrarán los datos de texto extraídos.