2011-08-02 20 views
5

Duplicar posible:
How do I Index PDF files and search for keywords?crear un índice de los archivos pdf

crear un índice de un archivo PDF.

+1

¿Qué tienes hasta ahora ?. Si usa Python, mire en el módulo 'collections'. – TyrantWave

+0

Oh, mira. Muchas, muchas personas han hecho la misma pregunta: http://stackoverflow.com/search?q=python+index+pdf. Usted también puede usar el cuadro "Buscar" en la parte superior de la página y ver qué han pedido otros que podrían ayudarlo. –

+0

"Lo que no está cerca de lo que estoy buscando". No es útil en absoluto. Por favor, defina cuidadosamente y completamente cómo sus requisitos son realmente diferentes. No tenemos idea de lo que es único o diferente de lo que estás haciendo. Parece idéntico a nosotros. –

Respuesta

1

Creo que se puede utilizar la biblioteca de Python para este pyPdf (http://pybrary.net/pyPdf/). Este código muestran los números de las páginas que incluyen la palabra deseada:

from pyPdf import PdfFileReader 

input = PdfFileReader(file("YourPDFFile.pdf", "rb")) 

numberOfPages = input.getNumPages() 

i = 1 
while i < numberOfPages: 
    oPage = input.getPage(i) 
    text = oPage.extractText() 
    text.encode('utf8', 'ignore') 
    if text.find('What are you looking for') != -1: 
     print i 
    i += 1 

Lo mismo pero trabajando con Python 3

from pyPdf import PdfFileReader 

input = PdfFileReader(open("YourPDFFile.pdf", "rb")) 

numberOfPages = input.getNumPages() 

i = 1 
while i < numberOfPages: 
    oPage = input.getPage(i) 
    text = oPage.extractText() 
    text.encode('utf8', 'ignore') 
    if text.find('What are you looking for') != -1: 
     print(i) 
    i += 1 
+0

Creo que el problema principal era que utilicé Python 2.7 en este guión y construcción 'print' difiere en diferentes Versiones de Python [http://diveintopython3.org/porting-code-to-python-3-with-2to3.html](http://diveintopython3.org/porting-code-to-python-3-with-2to3. html) –

+0

Así como una nota, que sería un poco más recta hacia adelante para que sea un bucle, 'for i in range (1, NumberOfPages):' ya sólo prueba 'si 'palabra' en Text' –

+0

I no ha usado PyPdf pero mirando a través de la documentación, no parece que pueda. No sé mucho sobre el estándar PDF, pero es posible que el documento en sí esté definido en términos de páginas. –