Trabajar con PDFs en Python

En este artículo vamos a hablar principalmente de Python, ¿vale? Sobre todo hablaremos sobre cómo trabajar con documento

Views 114 Downloads 0 File size 227KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

En este artículo vamos a hablar principalmente de Python, ¿vale? Sobre todo hablaremos sobre cómo trabajar con documentos PDF en dicho lenguaje de programación. En primer lugar, se puede decir que es muy sencillo, especialmente si has usado Python con archivos de texto (TXT) antes. Sin embargo, no es del todo lo mismo. Los documentos PDF son archivos binarios y más complejos que los sencillos archivos de texto sin formato, ya que contienen distintos tipos de letra, colores, etc.

Eso no quiere decir que sea difícil trabajar con documentos PDF utilizando Python, es bastante simple, y el uso de un módulo externo facilita el problema.

PyPDF2 Como hemos dicho antes, utilizar un módulo externo es la clave. El módulo que vamos a utilizar en este tutorial es PyPDF2. Como se trata de un módulo externo, el primer paso es el habitual, tenemos que instalar el módulo. Para ello, vamos a utilizar PIP, que es (basándonos en la Wikipedia): Es un sistema de gestión de paquetes utilizado para instalar y administrar paquetes de software escritos en Python. Muchos paquetes pueden ser encontrados en el Índice de Paquete de la Python (PyPI) Puedes seguir los pasos mencionados en la Python Packaging User Guide para la instalación de pip, pero si tienes Python 2.7.9 o superior, o Python 3.4 o superior, ya tienes pip Ahora puedes instalar PyPDF2 simplemente escribiendo el siguiente comando en el terminal:

pip install pypdf2

¡Genial! Ya has instalado PyPDF2, y estás listo para empezar a trabajar con documentos PDF.

Leer un documento PDF El archivo de ejemplo con el que trabajaremos en este tutorial es sample.pdf (https://www.dropbox.com/s/4qad66r2361hvmu/sample.pdf?dl=1). Descárgate el archivo para seguir el tutorial, o simplemente usa cualquier archivo PDF que te guste. Proseguimos leyendo el documento PDF. Puesto que vamos a utilizar PyPDF2, necesitamos importar el módulo de la siguiente manera: import pypdf2

Después de importar el módulo, vamos a utilizar la clase PdfFileReader. Por lo tanto, el script para leer el documento PDF sería tal que así: import PyPDF2 pdf_file = open('sample.pdf') read_pdf = PyPDF2.PdfFileReader(pdf_file)

Más operaciones con documentos PDF Después de leer el documento PDF, ahora podemos realizar diferentes operaciones con el documento, como veremos más adelante en esta sección.

Número de páginas Vamos a comprobar el número de páginas en sample.pdf. Para ello, puedes utilizar el método getNumPages(): number_of_pages = read_pdf.getNumPages() print number_of_pages

En este caso, el valor retornado es 1.

Número de página

Ahora vamos a comprobar el número de alguna página en el documento PDF. Podemos utilizar el método getPageNumber(page). Ten en cuenta que le tenemos que pasar un objeto tipo page al método. Para recuperar una página, utilizaremos el método getPage(number), donde number representa el número de página en el documento PDF. El argumento number comienza con el valor 0. Bueno, sé que cuando se utiliza getPage(number) ya se conoce el número de la página, pero esto es simplemente para ilustrar cómo utilizar estos métodos juntos. Lo puedes ver en el siguiente snippet de Python: page = read_pdf.getPage(0) page_number = read_pdf.getPageNumber(page) print page_number

Muy bien, prueba el script. ¿Qué obtienes? Sabemos que en sample.pdf (archivo con el que estamos experimentando), sólo tiene una página (número 0). ¿Y si le pasamos el número 1 como número de página para getPage(number)? En ese obtendrás el siguiente error: Traceback (most recent call last): File "test.py", line 6, in page = read_pdf.getPage(1) File "/usr/local/lib/python2.7/site-packages/PyPDF2/pdf.py", line 1158, in getPage return self.flattenedPages[pageNumber] IndexError: list index out of range

Esto se debe a que la página no está disponible, y estamos utilizando un número de página fuera de rango (no existe).

Modo de página Las páginas PDF vienen con diferentes modos, que son los siguientes: /UseNone: No muestra ni bookmarks, ni miniaturas de paneles /UseOutlines: Muestra el panel de bookmarks /UseThumbs: Muestra miniaturas de paneles /Fullscreen: Vista fullscreen /UseOC: Muestra el panel OCG /UseAttachments: Muestra el panel de adjuntos