2009-04-02 15 views
5

ऐसे कुछ उपकरण हैं जो पीडीएफ फ़ाइल के पूरे पाठ भाग को पीडीएफ पूर्ण पाठ सूचकांक के लिए निकालने की अनुमति देते हैं।पीडीएफ फाइल में प्रोग्राम के लिए प्रोग्रामेटिक रूप से खोज करें और पेज नंबर बताएं?

मुझे कुछ स्ट्रिंग्स की तलाश करने का एक तरीका है और यदि पीडीएफ फ़ाइल में थे, तो पेज नंबर वापस कर दें?

उत्तर

2

यह उदाहरण पुस्तकालय Adobe रीडर के साथ शामिल का उपयोग करता है, और http://www.dotnetspider.com/resources/5040-Get-PDF-Page-Number.aspx से आता है:

using Acrobat; 
using AFORMAUTLib;       
private void pdfRandD(string fPath) 
{ 
    AcroPDDocClass objPages = new AcroPDDocClass(); 
    objPages.Open(fPath); 
    long TotalPDFPages = objPages.GetNumPages();    
    objPages.Close(); 
    AcroAVDocClass avDoc = new AcroAVDocClass(); 
    avDoc.Open(fPath, "Title"); 
    IAFormApp formApp = new AFormAppClass(); 
    IFields myFields = (IFields)formApp.Fields;    
    string searchWord = "Search String"; 
    string k = ""; 
    StreamWriter sw = new 
     StreamWriter(@"D:\KCG_FileChecker_Inputs\MAC\pdf\0230_525490_23_cha17.txt", false); 
    for (int p = 0; p < TotalPDFPages; p++) 
    {     
     int numWords = int.Parse(myFields.ExecuteThisJavascript("event.value=this.getPageNumWords(" + p + ");")); 
     k = ""; 
     for (int i = 0; i < numWords; i++) 
     { 
      string chkWord = myFields.ExecuteThisJavascript("event.value=this.getPageNthWord(" + p + "," + i + ", true);"); 
      k = k + " " + chkWord; 
     }     
     if(k.Trim().Contains(searchWord)) 
     { 
      int pNum = int.Parse(myFields.ExecuteThisJavascript("event.value=this.getPageLabel(" + p + ",true);")); 
      sw.WriteLine("The Word " + searchWord + " is exists in " + pNum);      
     } 

    } 
    sw.Close(); 
    MessageBox.Show("Process completed"); 
} 
+1

कोड के लिए धन्यवाद! हालांकि, इस नमूने को एडोब प्रोफेशनल की स्थापना की जरूरत है। लाइसेंस रॉयल्टी कारणों के लिए मैं ऐसा करने के लिए एक घटक होना चाहता हूं। – splattne

2

आप पीडीएफ फाइलों में पाठ के लिए खोज करने के लिए Docotic.Pdf library उपयोग कर सकते हैं।

नमूना के बाद

से पता चलता एक PDF फ़ाइल में निर्दिष्ट स्ट्रिंग और इसी पृष्ठ संख्या को खोजने के लिए कैसे: यदि आप indexOf पद्धति का तीसरा तर्क को दूर

static void searchForTextStrings() 
{ 
    string path = ""; 
    string[] stringsToFind = new string[] { }; 

    using (PdfDocument pdf = new PdfDocument(path)) 
    { 
     for (int i = 0; i < pdf.Pages.Count; i++) 
     { 
      string pageText = pdf.Pages[i].GetText(); 
      foreach (string s in stringsToFind) 
      { 
       int index = pageText.IndexOf(s, 0, StringComparison.CurrentCultureIgnoreCase); 
       if (index != -1) 
        Console.WriteLine("'{0}' found on page {1}", s, i); 
      } 
     } 
    } 
} 

एक केस-संवेदी खोज का आयोजन किया जा सकता है।

अस्वीकरण: मैं पुस्तकालय के विक्रेता, बिट चमत्कार के लिए काम करता हूं।