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
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
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.
¿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.
Gracias Bobrovsky voy a probar este .. – dps123
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
He actualizado mi respuesta. – Bobrovsky