2012-09-24 7 views
5

का उपयोग कर खोज कर रही है, यह पता लगाने के लिए कि कौन सा पेज एक विशिष्ट "खोज स्ट्रिंग" स्थित है, यह जानने के लिए मैं किस पायथन पैकेज का उपयोग कर सकता हूं?किस पेज पर एक खोज स्ट्रिंग एक पीडीएफ दस्तावेज़ में पाइथन

मैंने कई पायथन पीडीएफ पैकेजों को देखा लेकिन मुझे पता नहीं लगा कि मुझे किस का उपयोग करना चाहिए। PyPDF में यह कार्यक्षमता प्रतीत नहीं होती है और PDFMiner ऐसे साधारण कार्य के लिए एक ओवरकिल प्रतीत होता है। कोई सलाह?

अधिक सटीक: मेरे पास कई पीडीएफ दस्तावेज हैं और मैं उन पृष्ठों को निकालना चाहता हूं जो स्ट्रिंग "स्टार्ट" और स्ट्रिंग "एंड" के बीच हैं।

उत्तर

11

मुझे अंत में पता चला कि पीईपीडीएफ मदद कर सकता है। अगर मैं किसी और की मदद कर सकता हूं तो मैं इसे पोस्ट कर रहा हूं।

(1) स्ट्रिंग

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) ब्याज के पन्नों को निकालने के लिए एक समारोह

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

मुझे आशा है कि यह किसी के लिए उपयोगी हो जाएगा अन्य

+0

धन्यवाद, यह सहायक था! –

+0

हैलो विशेषज्ञ, मुझे पता है कि यह एक लंबा समय रहा है, लेकिन मैं इस कोड को पीडीएफ पेजों को निकालने के लिए कैसे संशोधित कर सकता हूं जिसमें एक निश्चित स्ट्रिंग शामिल है और उनमें से एक नया दस्तावेज़ बना रहा है? – ASPiRE

संबंधित मुद्दे