2011-02-04 89 views
5

Tengo la obligación de leer un archivo pdf y buscar un texto. Debería mostrar en qué página existe ese texto y el número de ocurrencias. Puedo leer el pdf a texto pero necesito saber el número de página.PDF Búsqueda de texto C#

Gracias

Respuesta

4

Se puede utilizar para este Docotic.Pdf (Trabajo para Milagro Bit).

Este es un ejemplo de cómo buscar texto en 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); 
} 

Es posible que desee eliminar tercer argumento para IndexOf método si desea realizar la búsqueda entre mayúsculas y minúsculas.

+0

Gracias Bobrovsky voy a probar este .. – dps123

+1

Como un FYI para los futuros lectores, Docotic. Pdf ya no es gratis. http://bitmiracle.com/pdf-library/free-pdf-library.aspx Sugiero dar Apache PDFBox una oportunidad (que es completamente libre y ha sido desde su lanzamiento) – Keplah

+0

He actualizado mi respuesta. – Bobrovsky

3

¿Has visto itextsharp? http://itextsharp.sourceforge.net/

EDIT: Elaborar, en el TOC, vi una sección sobre: ​​ 15.3.3: Texto de extraer con PdfReaderContentParser y PdfTextExtractor

Y bajo PdfReaderContentParser: http://api.itextpdf.com/com/itextpdf/text/pdf/parser/PdfReaderContentParser.html hay una opción para procesar el contenido de PDF por página.

por lo que parece ser una manera indirecta, pero se puede iterar a través de cada página, buscando el contenido de la palabra que desee y luego regresar a la página que les encontraste bajo.

+0

No veo la opción de búsqueda de la documentación de itextsharp. – Shoban

+0

@Shoban editó la respuesta para ser más informativo. No lo he probado solo, solo una sugerencia para comenzar el OP. – Joe

+0

Gracias Joe ... :) 1 – Shoban

Cuestiones relacionadas