2011-02-04 26 views
5

Ho bisogno di leggere un file pdf e cercare un testo. Devo visualizzare in quale pagina esiste quel testo e il numero di occorrenze. Posso leggere il pdf in testo ma ho bisogno di sapere il numero di pagina.Ricerca testo in PDF C#

Grazie

risposta

4

È possibile utilizzare Docotic.Pdf per questo (lavoro per Bit Miracle).

Ecco un esempio di come per la ricerca di testo in PDF:

PdfDocument doc = new PdfDocument("file.pdf"); 
string textToSearch = "some text"; 
for (int i = 0; i < doc.Pages.Count; i++) 
{ 
    string pageText = doc.Pages[i].GetText(); 
    int count = 0; 
    int lastStartIndex = pageText.IndexOf(textToSearch, 0, StringComparison.CurrentCultureIgnoreCase); 
    while (lastStartIndex != -1) 
    { 
     count++; 
     lastStartIndex = pageText.IndexOf(textToSearch, lastStartIndex + 1, StringComparison.CurrentCultureIgnoreCase); 
    } 

    if (count != 0) 
     Console.WriteLine("Page {0}: '{1}' found {2} times", i, textToSearch, count); 
} 

È possibile rimuovere terzo argomento per IndexOf metodo se si desidera eseguire la ricerca tra maiuscole e minuscole.

+0

Grazie Bobrovsky Proverò questo .. – dps123

+1

Come una FYI per i futuri lettori, Docotic. Pdf non è più gratuito. http://bitmiracle.com/pdf-library/free-pdf-library.aspx Suggerisco di provare Apache PDFBox (è completamente gratuito e lo è stato dalla sua uscita) – Keplah

+0

Ho aggiornato la mia risposta. – Bobrovsky

3

Avete controllato itextsharp out? http://itextsharp.sourceforge.net/

EDIT: di elaborare, nel sommario, ho visto una sezione su: 15.3.3: il testo Estrazione con PdfReaderContentParser e PdfTextExtractor

E sotto PdfReaderContentParser: http://api.itextpdf.com/com/itextpdf/text/pdf/parser/PdfReaderContentParser.html c'è un'opzione per elaborare il contenuto in pdf per pagina.

Quindi sembra essere un modo approssimativo, ma è possibile scorrere attraverso ciascuna pagina, cercando il contenuto per la parola che si desidera e quindi restituire la pagina in cui è stato trovato.

+0

Non vedo l'opzione di ricerca documentazione itextsharp. – Shoban

+0

@Shoban ha modificato la risposta per essere più informativo. Non l'ho provato da solo, solo un suggerimento per far partire l'OP. – Joe

+0

Grazie Joe ... :) +1 – Shoban