Los PDF son una forma común de compartir texto. PDF significa Portable Document Format y utiliza la extensión de archivo .pdf. Fue creado a principios de la década de 1990 por Adobe Systems.

La lectura de documentos PDF mediante python puede ayudarte a automatizar una gran variedad de tareas.

En este tutorial aprenderemos a extraer texto de un archivo PDF en Python.

Comencemos.

Lectura y extracción de texto de un archivo PDF en Python

Para el propósito de este tutorial vamos a crear un PDF de ejemplo con 2 páginas. Puedes hacerlo usando cualquier procesador de textos como Microsoft Word o Google Docs y guardar el archivo como PDF.

Texto en la página 1:

Hello World. This is a sample PDF with 2 pages. This is the first page. 

Texto en la página 2:

This is the text on Page 2. 

Usando PyPDF2 para extraer texto de un PDF

Puedes usar PyPDF2 para extraer texto de un PDF. Veamos cómo funciona.

1. Instala el paquete

Para instalar PyPDF2 en tu sistema introduce el siguiente comando en tu terminal. Puedes leer más sobre el gestor de paquetes pip.

pip install pypdf2
Pypdf
Pypdf

2. Importar PyPDF2

Abre un nuevo cuaderno de python y comienza con la importación de PyPDF2.

import PyPDF2

3. Abrir el PDF en modo de lectura binaria

Empezar con la apertura del PDF en modo de lectura binaria utilizando la siguiente línea de código:

pdf = open('sample_pdf.pdf', 'rb')

Esto creará un objeto PdfFileReader para nuestro PDF y lo almacenará en la variable ‘pdf’.

4. Usar PyPDF2.PdfDF2. Usar PyPDF2.PdfFileReader() para leer el texto

Ahora puedes usar el método PdfFileReader() de PyPDF2 para leer el archivo.

pdfReader = PyPDF2.PdfFileReader(pdf)

Para obtener el texto de la primera página del PDF, utiliza las siguientes líneas de código:

page_one = pdfReader.getPage(0)print(page_one.extractText())

Obtenemos la salida como:

Hello World. !This is a sample PDF with 2 pages. !This is the first page. !Process finished with exit code 0

Aquí utilizamos el método getPage para almacenar la página como un objeto. Luego usamos el método extractText() para obtener el texto del objeto página.

El texto que obtenemos es de tipo String.

De igual forma para obtener la segunda página del PDF usamos:

page_one = pdfReader.getPage(1)print(page_one.extractText())

Obtenemos la salida como :

This is the text on Page 2. 

Código completo para leer el texto del PDF usando PyPDF2

El código completo de esta sección se da a continuación:

import PyPDF2pdf = open('sample_pdf.pdf', 'rb')pdfReader = PyPDF2.PdfFileReader(pdf)page_one = pdfReader.getPage(0)print(page_one.extractText())

Si te das cuenta, el formato de la primera página está un poco apagado en la salida anterior. Esto se debe a que PyPDF2 no es muy eficiente en la lectura de PDFs.

Por suerte, Python tiene una mejor alternativa a PyPDF2. Vamos a verlo a continuación.

Uso de PDFplumber para extraer texto

PDFplumber es otra herramienta que puede extraer texto de un PDF. Es más potente en comparación con PyPDF2.

1. Instalar el paquete

Vamos a empezar con la instalación de PDFplumber.

pip install pdfplumber
Pdfplumber
Pdfplumber

2. Importar pdfplumber

Comienza con la importación de PDFplumber utilizando la siguiente línea de código :

import pdfplumber

3. Usar PDFplumber para leer pdfs

Podemos empezar a leer PDFs usando PDFplumber con la siguiente pieza de código:

with pdfplumber.open("sample_pdf.pdf") as pdf: first_page = pdf.pages print(first_page.extract_text())

Esto obtendrá el texto de la primera página de nuestro PDF. La salida viene como:

Hello World. This is a sample PDF with 2 pages. This is the first page. Process finished with exit code 0

Puedes comparar esto con la salida de PyPDF2 y ver cómo PDFplumber es mejor cuando se trata de formato.

PDFplumber también proporciona opciones para obtener otra información del PDF.

Por ejemplo, puede utilizar .page_number para obtener el número de página.

print(first_page.page_number)

Salida :

Deja una respuesta

Tu dirección de correo electrónico no será publicada.