2010-03-12 20 views
17

Estoy extrayendo un pdf en imágenes/swf y texto con la ayuda de SWFTools y XPDF. Estoy ejecutando estos en un script PDF.¿Extracto TOC de PDF?

Pero ahora estoy tratando de dar un paso más y tratar de obtener el TOC del PDF ¿es posible extraer esta información?

+2

+1, prefería ver cómo hacer eso también. –

+0

Si desea hacer eso con una aplicación de terceros, entonces puedo recomendar [Debenu PDF Aerialist] (http://www.debenu.com/products/desktop/debenu-pdf-aerialist/) que tiene una función de exportación para el "Tabla de contenido". –

Respuesta

11

Encontré esto con un poco de búsqueda. Parece bastante prometedor.

PDFMiner: http://www.unixuser.org/~euske/python/pdfminer/index.html

Nota: La herramienta se basa en Python, pero debe ser capaz de utilizar la herramienta a través de acceso a una consola. Alternativamente, es posible que pueda obtener información útil del código fuente en sí, ya que el proyecto es de código abierto.

desde el sitio:

dumppdf.py

dumppdf.py vuelca el contenido interno de un archivo PDF en formato pseudo-XML. Este programa es principalmente para fines de depuración, pero también es posible extraer algunos contenidos significativos (como imágenes).

Ejemplos:

$ dumppdf.py -a foo.pdf 
(dump all the headers and contents, except stream objects) 

$ dumppdf.py -T foo.pdf 
(dump the table of contents) 

$ dumppdf.py -r -i6 foo.pdf > pic.jpeg 
(extract a JPEG image) 
+0

¡Tras una investigación más exhaustiva, podría encontrar algunas aplicaciones realmente útiles para esta herramienta, yo mismo! ¡+1 a Yusuke Shinyama y al resto del equipo de PDFMiner! –

+0

Gracias, echaré un vistazo ... pero, ¿genera el TOC dentro del XML también ... culo ahora estoy usando XPDF y PDF2SWF para obtener el contenido :) Pero no hay opción para el TOC – Chris

+0

Supongo que estoy no estoy seguro de lo que estás preguntando La segunda línea de "ejemplo" afirma que se vacia específicamente el TOC a un archivo XML, que se puede analizar de la manera que más le convenga. No he usado la herramienta, parece que lograría lo que quieres hacer. –

0

Creo que mirar PHP's PDFLib sería un muy buen lugar para comenzar. Si se desplaza hacia abajo, verá muchas soluciones publicadas por los usuarios para convertir PDF a HTML o PDF a texto. Después de la conversión, una función de coincidencia relativamente simple podría extraer los elementos TOC etiquetados y ponerlos en una matriz, por ejemplo, que luego puede manipular a su gusto.

This StackOverflow post también tiene algunas soluciones más.

Espero que esto ayude.

+0

Ya estoy usando XPDF pdf2txt ... pero ¿cómo combinaría esto? el ToC se crea normalmente a mano ... y la información debe estar en algún lugar del pdf ... (ya que pueden tener el panel lateral) – Chris

+0

El TOC * solo debe crearse manualmente cuando las personas no tienen el profesional requerido herramientas para hacer eso automáticamente Si se hace de forma automática, los elementos en el TOC se etiquetan como marcadores (y creo que esto es a lo que te refieres como el "panel lateral") y se vinculan a sus páginas y, por lo tanto, son más fáciles de combinar. Si se hacen a mano, entonces no son diferentes de cualquier otro fragmento de texto en cualquier parte de ese PDF y tener un script que los combine con éxito sería casi imposible. –

2

Como alternativa, puede utilizar MuPDF que es un muy ligero, pero completa aplicación PDF C escrito en el subdirectorio apps/ encontrará algunas herramientas que pueden ver, y volcar extraer información de archivos PDF. Preferiría MuPDF sobre xpdf porque se mantiene activamente y tiene mejor compatibilidad con PDF.

De lo contrario, siempre hay Poppler que en realidad se basa en xpdf. Los desarrolladores transfirieron su código a C++. Por lo tanto, tiene un rendimiento peor que su predecesor. Comparado con MuPDF, Poppler parece tener un poco más de características, pero a cambio el código es mucho más complejo.

Para sus propósitos MuPDF debería ser suficiente sin embargo. Podría hackear juntos una aplicación simple del código de ejemplo proporcionado en apps/ que extrae toda la información que necesita sin depender de aplicaciones externas.

+0

Gracias, voy a probar esto también ^^ – Chris

4

Intenté dump.pdf -T, pero no funcionó en algunos archivos PDF.

Hay otra herramienta de MuPDF llamada mutool, que acabo de encontrar. No sé si esto es mejor que dump.pdf pero funcionó en un archivo PDF dump.pdf arroja un error.

Así es como para extraer TOC con mutool

mutool show {your-pdf-file} outline

MuPDF