Leer un archivo PDF

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...
Responder
Sailacos
Mensajes: 4
Registrado: Vie May 11, 2018 8:53 am

Leer un archivo PDF

Mensaje por Sailacos »

Muy buenas ¡¡¡

¿Existe algún módulo que tenga la función de leer un archivo PDF?
Algo parecido a:

Código: Seleccionar todo

from PyPDF2 import PdfFileReader
Necesito capturar los nombres de las páginas y los marcadores de los archivos PDF

Saludos
OpenOffice 4.1.5 en Windows 7
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Leer un archivo PDF

Mensaje por mauricio »

Ya te respondiste, usa Python para eso...
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Sailacos
Mensajes: 4
Registrado: Vie May 11, 2018 8:53 am

Re: Leer un archivo PDF

Mensaje por Sailacos »

El problema es que al importar de PyPDF2 en el siguiente código me devuelve un error
Si elimino la linea 1 funciona correctamente, así que no puedo seguir con la función que lee el pdf con PdfFileReader

Código: Seleccionar todo

from PyPDF2 import PdfFileReader
from collections import defaultdict
import os, string, uno
oDoc = XSCRIPTCONTEXT.getDocument()

# Función que coloca el nombre de los archivos PDF en una columna
def main(a):
	num = 1
	oSheet = oDoc.CurrentController.ActiveSheet
	
	for i in archivos():
		oCell = oSheet.getCellRangeByName("A" + str(num))
		oCell.setString(i)
		num += 1

	return None

# Función que devuelve los archivos .PDF de la carpeta del path
def archivos():
	path = "C:/Python" 
	lstFiles = []
	lstDir = os.walk(path)

	for root, dirs, files in lstDir:
		for fichero in files:
			(nombreFichero, extension) = os.path.splitext(fichero)
			if(extension == ".pdf"):
				lstFiles.append(nombreFichero+extension)

	return lstFiles
Adjuntos
ERROR.JPG
ERROR.JPG (73.68 KiB) Visto 3585 veces
OpenOffice 4.1.5 en Windows 7
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Leer un archivo PDF

Mensaje por mauricio »

Claro, en Windows no tienes acceso al core de Python del sistema, por eso te da ese error... si la librería que quieres usar es "pure Python", solo hay que copiarla al pythonpath dentro de los scripts de OpenOffice, si no, un posible camino; desde "fuera" de OpenOffice, genera un script de Python que haga todo el trabajo, deja el resultado en un archivo CSV, al final, importa este archivo, ahora si, desde dentro de OpenOffice...

Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Leer un archivo PDF

Mensaje por mauricio »

Encontré dos proyectos que dicen ser "pure Python" para leer PDF:

https://github.com/pmaupin/pdfrw
https://github.com/mstamy2/PyPDF2

El primero dice tener soporte para Python desde 2.6, solo es cuestión de probarlos.

Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Sailacos
Mensajes: 4
Registrado: Vie May 11, 2018 8:53 am

Re: Leer un archivo PDF

Mensaje por Sailacos »

Copié PyPDF2 al pythonpath y funcionó sin problema, muchas gracias ¡¡¡
Ahora bien, el archivo lo tengo en red y se abre desde muchos puestos. Al estar instalado el PyPDF2 en local, no funcionará si abrimos el archivo desde otro equipo, ¿cierto?
¿No hay manera de que quede todo insertado en el archivo, para que, de este modo, sea portable?
OpenOffice 4.1.5 en Windows 7
Responder