2012-09-24 15 views
5

¿Qué paquetes de python puedo usar para averiguar en qué página se encuentra una "cadena de búsqueda" específica?buscando en qué página se encuentra una cadena de búsqueda en un documento pdf usando python

Miré en varios paquetes de python pdf pero no pude determinar cuál debería usar. PyPDF no parece tener esta funcionalidad y PDFMiner parece ser una exageración para una tarea tan simple. ¿Algún consejo?

Más preciso: Tengo varios documentos PDF y me gustaría extraer las páginas que están entre una cadena "Begin" y una cadena "End".

Respuesta

11

Finalmente descubrí que pyPDF puede ayudar. Lo estoy publicando en caso de que pueda ayudar a alguien más.

(1) una función para localizar la cadena

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) una función para extraer las páginas de interés

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

espero que esto sea útil a alguien else

+0

Gracias, esto fue útil! –

+0

Hola expertos, sé que ha pasado mucho tiempo pero, ¿cómo podría modificar este código para extraer páginas PDF que contienen una determinada cadena y crear un nuevo documento de ellas? – ASPiRE

Cuestiones relacionadas