Buscando una biblioteca .net gratuita para uso comercial o de código abierto para la conversión de pdf a docx

Tengo un proyecto que consiste en leer archivos pdf y está resultando más difícil de lo que había previsto. ¿Hay alguna biblioteca que pueda usar para convertir el pdf a docx para poder usar el SDK de OpenXml para analizarlo?

openoffice|libreoffice tiene un comando/modo de conversión de formato sin cabeza. ¿Puede simplemente hacer exec()algo más?
Lo que había planeado hacer era convertir un documento pdf en un archivo temporal de Word, luego leer ese archivo con openxml y luego eliminar el archivo temporal. Estoy en Windows por cierto, así que libreoffice no funcionará. No estoy familiarizado con openoffice.

Respuestas (2)

AbleWord (para Windows ):

AbleWord es una aplicación de procesamiento de texto muy capaz que puede leer y escribir los formatos de documentos más populares, incluidos los PDF. Tiene todas las funciones, admite formato de imagen, tablas, encabezados y pies de página e incluye funciones de revisión ortográfica y vista previa de impresión. Lo mejor de todo es que es totalmente gratuito incluso para uso comercial.

Las instrucciones para convertir PDF a Word (incluido docx ) se pueden encontrar aquí .

Estoy buscando bibliotecas de códigos con las que pueda hacer esto, no una aplicación. Quiero que el programa lo haga automáticamente, no requiera otro paso para que el usuario lo siga antes de analizar los datos.
@ emsimpson92 Puede ejecutarlo desde su programa y recuperar el resultado.

Parece que podría lograr su requisito analizando el contenido de PDF usando C#. Si eso es cierto, y lo que necesita es principalmente texto, el siguiente artículo analiza algunas opciones gratuitas (y no tan gratuitas) para obtener texto de PDF: https://www.codeproject.com/Articles/12445/Converting-PDF-to -Texto-en-C

Si no solo necesita texto, sino que requiere diferentes contenidos de PDF como texto, imágenes y anotaciones, es posible que deba usar un SDK profesional como LEADTOOLS. (Descargo de responsabilidad: soy un empleado del proveedor de esta biblioteca). El código para extraer texto es este:

StringBuilder sb;
sb = new StringBuilder();
PDFDocument document = new PDFDocument("filename.pdf");
PDFParsePagesOptions options = PDFParsePagesOptions.Objects;
document.ParsePages(options, 1, -1);
foreach (PDFDocumentPage page in document.Pages)
{
   Console.WriteLine("Page #" + page.PageNumber.ToString() + " Started");
   foreach (PDFObject obj in page.Objects)
   {
      if (obj.ObjectType == PDFObjectType.Text)
      {
         if (obj.TextProperties.IsEndOfLine)
            sb.AppendLine(obj.Code.ToString());
         else
            sb.Append(obj.Code);
      }
   }
   Console.WriteLine("Page #" + page.PageNumber.ToString() + " finished");   
}
this.Text = "Finished";
textBox1.Text = sb.ToString();

Se puede usar un código similar (pero usando banderas diferentes) para obtener imágenes y otros tipos de objetos.

Si no desea analizar el PDF sino solo convertirlo a DOCX, LEADTOOLS también tiene una clase DocumentConverter que puede hacerlo.

El kit de herramientas tiene una edición de evaluación gratuita que puede probar antes de decidir si comprar o no.