2012-09-24 2 views
5

Welche Python-Pakete kann ich verwenden, um herauszufinden, auf welcher Seite sich ein bestimmter "Suchstring" befindet?Finden, auf welcher Seite ein Suchstring in einem PDF-Dokument mit Python gefunden wird

Ich schaute in mehrere Python-PDF-Pakete, aber konnte nicht herausfinden, welche ich verwenden sollte. PyPDF scheint nicht diese Funktionalität zu haben und PDFMiner scheint ein Overkill für solch eine einfache Aufgabe zu sein. Irgendwelche Ratschläge?

Präziser: Ich habe mehrere PDF-Dokumente und ich möchte Seiten extrahieren, die zwischen einer Zeichenfolge "Begin" und einer Zeichenfolge "End" sind.

Antwort

11

Ich habe endlich herausgefunden, dass PyPDF helfen kann. Ich poste es für den Fall, dass es jemand anderem helfen kann.

(1) eine Funktion die Zeichenfolge

def fnPDF_FindText(xFile, xString): 
    # xfile : the PDF file in which to look 
    # xString : the string to look for 
    import pyPdf, re 
    PageFound = -1 
    pdfDoc = pyPdf.PdfFileReader(file(xFile, "rb")) 
    for i in range(0, pdfDoc.getNumPages()): 
     content = "" 
     content += pdfDoc.getPage(i).extractText() + "\n" 
     content1 = content.encode('ascii', 'ignore').lower() 
     ResSearch = re.search(xString, content1) 
     if ResSearch is not None: 
      PageFound = i 
      break 
    return PageFound 

(2), eine Funktion zu finden, die Seiten von Interesse

def fnPDF_ExtractPages(xFileNameOriginal, xFileNameOutput, xPageStart, xPageEnd): 
     from pyPdf import PdfFileReader, PdfFileWriter 
     output = PdfFileWriter() 
     pdfOne = PdfFileReader(file(xFileNameOriginal, "rb")) 
     for i in range(xPageStart, xPageEnd): 
      output.addPage(pdfOne.getPage(i)) 
      outputStream = file(xFileNameOutput, "wb") 
      output.write(outputStream) 
      outputStream.close() 

ich das jemandem nützlich sein wird hoffen, zu extrahieren sonst

+0

Danke, das war hilfreich! –

+0

Hallo Experten, ich weiß, es ist eine lange Zeit, aber, wie könnte ich diesen Code ändern, um PDF-Seiten mit einer bestimmten Zeichenfolge zu extrahieren und ein neues Dokument von ihnen zu erstellen? – ASPiRE

Verwandte Themen