extraer texto de un PDF con PDFsharp en realidad puede ser muy fácil, dependiendo del tipo de documento y lo que va a hacer con él. Si el texto está en el documento como texto, y no como una imagen, y no le importa la posición o el formato, entonces es bastante simple. Este código obtiene todo el texto de la primera página de los archivos PDF con los que trabajo:
var doc = PdfReader.Open(docPath);
string pageText = doc.Pages[0].Contents.Elements.GetDictionary(0).Stream.ToString();
doc.Pages.Count
le da el número total de páginas, y acceder a cada uno a través de la matriz doc.Pages
con el índice. No recomiendo usar foreach
y Linq aquí, ya que las interfaces no se implementan bien. El índice pasado a GetDictionary
es para el elemento de documento PDF; esto puede variar en función de cómo se producen los documentos. Si no obtiene el texto que está buscando, intente recorrer todos los elementos.
El texto que esto produce estará lleno de varios códigos de formato PDF. Si todo lo que necesita hacer es extraer cadenas, puede encontrar las que desee utilizando Regex o cualquier otro código de búsqueda de cadenas apropiado. Si necesita hacer algo con el formateo o el posicionamiento, entonces buena suerte, por lo que puedo decir, lo necesitará.
He visto ese ejemplo, pero no estoy seguro de si tiene todas las piezas que necesito. Busca "imágenes" en el documento. También necesito preservar la representación del texto en forma de imagen, simplemente no quiero tener el texto detrás de la imagen.En otras palabras, quiero que la salida se vea exactamente como la entrada, pero quiero desactivar la capacidad de guardar el texto de la salida. –
Entonces, según entiendo ahora, ¿quiere leer el texto de imágenes y texto sin formato desde el pdf? Y ponerlos juntos como qué? – Mariusz
El PDF de entrada puede ser solo imagen o imagen + texto detrás de la imagen. Entonces, necesito tomar la entrada y hacer un PDF de solo imagen. En otras palabras, quiero exportar todos los componentes que no son de texto del PDF de entrada al PDF de salida y no exportar los componentes de texto. –