Pregunta

¿Cómo puedo cargar el documento de MS Word (.doc y .docx) en la memoria (variable) sin hacer esto ?:

wordApp.Documents.Open

No quiero abrir MS Word, solo quiero ese texto dentro.

Me diste una respuesta para DOCX, pero ¿qué pasa con DOC? Quiero una solución gratuita y de alto rendimiento, no abrir 12.000 instancias de Word para procesarlas todas. :( Aspose es un producto comercial, y 900 $ es demasiado para lo que hago.

¿Fue útil?

Solución

Puede usar wordconv.exe, que forma parte del paquete de compatibilidad de Office para convertir de doc a docx.

http: // www .microsoft.com / downloads / details.aspx? familyid = 941b3470-3ae9-4aee-8f43-c6bb74cd1466 & amp; displaylang = es

Simplemente llama al comando así: " C: \ Archivos de programa \ Microsoft Office \ Office12 \ wordconv.exe " -oice -nme InputFile OutputFile

No estoy seguro de si necesita la palabra instalada para que se ejecute, pero funciona. Lo uso localmente como un comando de shell de Windows para convertir archivos antiguos de Office al formato 2007 cuando lo desee.

Otros consejos

Para documentos de Word con formato docx, encontré este interesante artículo en The CodeProject

Uso de DocxToText para extraer texto de archivos DOCX

En el artículo, el autor trata de eliminar solo las palabras.

Para sus documentos de Word (no docx) que no sean las API de Office y (en segundo plano) generando una instancia de Word, puede intentar desenterrar uno de los muchos convertidores Doc2Docx diferentes en el mercado y luego aplicar el proceso anterior para ambos.

Si está tratando con docx, puede hacer esto sin hacer ninguna interoperabilidad con Word .docx archivo en realidad un ZIP contiene un archivo XML, puede leer el XML Por favor, consulte los enlaces de abajo

http: / /conceptdev.blogspot.com/2007/03/open-docx-using-c-to-extract-text-for.html

Office (2007) Abrir formatos de archivo XML

Recientemente hice una investigación sobre este tema. Resulta que para poder manipular los archivos de Word programáticamente sin abrir Word, se necesitan herramientas muy caras.

Hay un artículo sobre proyecto de código sobre la manipulación de Word , puede que Encuentralo útil. El autor construye un contenedor C # COM para tratar con las llamadas a Word. Sin embargo, parece que realmente abre la aplicación de palabras.

Esta publicación termina en Los nuevos foros parecen prometedores también. Incluye bastantes llamadas PInvoked para la extracción de texto.

Tal vez si pudieras encontrar una manera de mantener oculta la ventana sería aceptable.

Aspose tiene un componente para leer, modificar y escribir documentos de Word. Aquí está el enlace del producto: Aspose.Words para .NET y Java

  

Aspose.Words habilita .NET y Java   Aplicaciones para leer, modificar y escribir.   Documentos de Word® sin utilizar   Microsoft Word®. Aspose.Words soporta   una amplia gama de características que incluyen   Creación de documentos, contenidos y   Manipulación de formato, correo potente.   fusionar habilidades, soporte integral   de DOC, OOXML, RTF, WordprocessingML,   Formatos HTML, OpenDocument y PDF.   Aspose.Words es verdaderamente el más   asequible, más rápido y rico en funciones   Componente de Word en el mercado.

Con docxtemplater , puede obtener fácilmente el texto completo de una palabra (solo funciona con docx).

Aquí está el código (Node.JS)

DocxTemplater = require ('docxtemplater'); doc = new DocxTemplater (). loadFromFile (" input.docx "); result = doc.getFullText ();

Esto es solo tres líneas de código y no depende de ninguna instancia de palabra (todo JS)

No quiero ser un antagonista, pero ¿por qué?

He extraído datos de Documentos de Word en servidores Linux usando Word2X o AbiWord y, dependiendo del número y la variedad de documentos, siempre habrá errores con la extracción. Es peor cuanto más viñetas, saltos de página, secciones de documentos y otros " especiales " características que hay.

Entiendo que ahora hay opciones para automatizar OpenOffice para procesar documentos, pero mi consejo es que, si puede, solo use Word para procesar documentos de Word.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top