Pregunta

¿Existe una forma programática de extraer ecuaciones (y posiblemente imágenes) de un documento de MS Word? He buscado en Google por todas partes, pero aún no he encontrado nada en lo que pueda hundir mis dientes y trabajar. Si es posible, me gustaría poder hacer esto con VB.NET o C #, pero puedo aprender lo suficiente de cualquier lenguaje para hackear una DLL. Gracias!

EDITAR: ahora mismo estoy buscando extraer las ecuaciones de Word 2003, pero si se requiere convertirlo a 2007 / Open XML, está bien.

¿Fue útil?

Solución

No sé si algo de esto ayudará, pero el modelo de objetos en Word 2000/2003 tiene una colección InlineShapes como parte del objeto Document que representa imágenes incrustadas y posiblemente objetos similares como ecuaciones.

Algún código de VBA para copiar el primer elemento en el portapapeles, lo que podría ayudarlo a extraerlos:

ThisDocument.InlineShapes.Items(1).Select
Selection.Copy

También es accesible en .NET, enlace MSDN .

Otros consejos

¿En qué formato de Word están sus documentos? Si están en Open XML (extensión de archivo .docx), puede usar el Open XML SDK disponible de Microsoft para extraer imágenes y contenido incrustado.

Un archivo Open XML no es más que un archivo zip que utiliza una estructura especial. Encontrará ejemplos en el SDK sobre cómo acceder a partes de ese archivo zip. En realidad, podría usar cualquier biblioteca con capacidad zip para extraer el contenido del paquete de documentos.

Si los documentos todavía usan el formato binario anterior, las cosas son un poco más complicadas. Creo que la forma más fácil sería convertir los documentos al formato Open XML. Hay varias formas de hacer esto:

  • Obtenga el b2xtranslator gratuito y abierto de SourceForge, que le ofrece dlls C # para la conversión de archivos.
  • Instale Microsoft Paquete de compatibilidad y use la siguiente línea de comando para la conversión:

    "C:\Program Files\Microsoft Office\Office12\wordconv.exe" -oice -nme input\_file output_file

donde input_file y output_file deben ser nombres de ruta completos.

Intente mirar el convertidor de Word a latex . Requiere el marco .Net y, aunque la fuente aún no está abierta, el autor invita a hacer preguntas al respecto.

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