Problema con PdfTextExtractor en el siguiente!

¡Primero discúlpeme por mi mal inglés! Quiero buscar en un documento pdf una palabra como “Hola”. Por eso debo leer cada página en pdf por PdfTextExtractor. Lo hice bien Puedo leer todas las palabras en cada página por separado y guardarlas en el buffer de cadena. pero cuando presiono este código en For loop, (por ejemplo, de la página 1 a la 7 para buscar en él) las palabras de la página anterior permanecerán en el búfer de cadenas. Espero que entiendas mi problema. Tanx todo. este es mi codigo

PdfReader reader2 = new PdfReader(openFileDialog1.FileName); int pagen = reader2.NumberOfPages; reader2.Close(); ITextExtractionStrategy its = new iTextSharp.text.pdf.parser.SimpleTextExtractionStrategy(); for (int i = 1; i < pagen; i++) { textBox1.Text = ""; PdfReader reader = new PdfReader(openFileDialog1.FileName); String s = PdfTextExtractor.GetTextFromPage(reader, i, its); //MessageBox.Show(s.Length.ToString()); //PdfTextArray h = new PdfTextArray(s); // // s = ""; s = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(s))); textBox1.Text = s; reader.Close(); 

}

Desafortunadamente, SimpleTextExtractionStrategy no le permite restablecerlo, por lo que debe mover su “SimpleTextExtractionStrategy ()” dentro del bucle en lugar de reutilizar el mismo objeto.

Hay otro problema potencial en la statement que controla su bucle:

 for (int i = 1; i < pagen; i++) 

Si pagen = 1, el bucle no se ejecuta en absoluto. Debe leer:

 for (int i = 1; i <= pagen; i++) 
 public string ReadPdfFile(object Filename,DataTable ReadLibray) { PdfReader reader2 = new PdfReader((string)Filename); string strText = string.Empty; for (int page = 1; page <= reader2.NumberOfPages; page++) { ITextExtractionStrategy its = new iTextSharp.text.pdf.parser.SimpleTextExtractionStrategy(); PdfReader reader = new PdfReader((string)Filename); String s = PdfTextExtractor.GetTextFromPage(reader, page, its); s = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(s))); strText = strText + s; reader.Close(); } return strText; } 

Este código es muy útil para leer PDF usando itext