2012-09-24 6 views
5

Hangi python paketlerini, hangi sayfada belirli bir "arama dizesi" bulunduğunu öğrenmek için kullanabilir miyim?python kullanarak pdf belgesinde hangi sayfada arama dizisinin bulunduğunu bulma

Birkaç python pdf paketine baktım ama hangisini kullanmam gerektiğini anlayamadım. PyPDF, bu işlevselliğe sahip gibi görünmüyor ve PDFMiner gibi basit bir görev için bir overkill gibi görünüyor. Herhangi bir tavsiye?

Daha kesin: Birkaç PDF belgesine sahibim ve “Begin” dizesi ile “End” dizesi arasındaki sayfaları çıkarmak istiyorum.

cevap

11

Son olarak pyPDF'nin yardımcı olabileceğini anladım. Başka birine yardım edebilmesi için onu gönderiyorum.

(1) bir işlev dize

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 
bulmak için

(2) ilgilenilen sayfalarını ayıklamak için bir işlev Bu Birine yararlı olabileceğini ümit

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() 

else

+0

Teşekkürler, bu yardımcı oldu! –

+0

Merhaba Uzmanlar, Biliyorum uzun bir zaman oldu, ancak bu kodu belirli bir dize içeren PDF Sayfalarını Ayıkla ve yeni bir belge oluşturmak için nasıl değiştirebilirim? – ASPiRE