2011-08-02 5 views
5

Possible en double:
How do I Index PDF files and search for keywords?créer un index de pdf

Créer un index d'un PDF.

+1

Qu'avez-vous à ce jour ?. Si vous utilisez Python, regardez dans le module 'collections'. – TyrantWave

+0

Oh regarde. Beaucoup, beaucoup de gens ont posé la même question: http://stackoverflow.com/search?q=python+index+pdf. Vous aussi, vous pouvez utiliser la case "Recherche" en haut de la page et voir ce que les autres ont demandé pour vous aider. –

+0

"Ce qui n'est pas proche de ce que je cherche". Pas utile du tout. S'il vous plaît soigneusement et pleinement définir comment vos exigences sont réellement différentes. Nous n'avons aucune idée de ce qui est unique ou différent de ce que vous faites. Il semble identique à nous. –

Répondre

1

Je pense que vous pouvez utiliser la bibliothèque Python pypdf pour cela (http://pybrary.net/pyPdf/). Ce montre des nombres de codes de pages qui comprennent requis mot:

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 

La même chose, mais travailler avec 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

critique, je pense que le principal problème était que je Python 2.7 dans ce script et la construction 'print' diffère selon les versions Python [http://diveintopython3.org/porting-code-to-python-3-with-2to3.html](http://diveintopython3.org/porting-code-to-python-3-with-2to3. html) –

+0

tout comme une note, ce serait un peu plus direct pour en faire une boucle, 'pour i dans la gamme (1, NumberOfPages):' et 'tester simplement si « mot » dans Text' –

+0

I N'avez pas utilisé PyPdf mais en regardant dans la documentation, il ne semble pas que vous le pouvez. Je ne connais pas grand-chose à la norme PDF, mais il est possible que le document lui-même soit défini en termes de pages. –