2010-06-29 17 views
5

Necesito abrir un archivo de MS Word (.doc) y extraer sus archivos constituyentes ('[1] CompObj', 'WordDocument', etc.). Algo como 7-zip se puede utilizar para hacer esto manualmente, pero tengo que hacer esto programáticamente.¿Cómo extraer el contenido de un contenedor OLE?

que he reunido de que un documento de Word es un contenedor OLE (de ahí la razón por 7-Zip se puede utilizar para ver su contenido), pero no puedo encontrar la manera de (usando C++):

  1. abrir el contenedor OLE
  2. extracto de cada archivo constituyente y guárdelo en el disco

he encontrado un par de ejemplos de automatización OLE (por ejemplo here), pero lo que yo quiero hacer parece ser menos común y yo No he encontrado ejemplos específicos.

Si alguien tiene alguna idea de una API (?!) Y un tutorial para trabajar con OLE, le agradecería. Lo mismo ocurre con las muestras de código.

Respuesta

4

Se denomina archivos compuestos, parte de la API de almacenamiento estructurado. Empiezas con StgOpenStorageEx(). Le compra poco para un archivo Word .doc, las secuencias en sí tienen un formato binario sofisticado. Para realmente lea el contenido del documento que desea usar para la automatización, permitiendo que Word lea el archivo. Eso rara vez se hace en C++, pero ese proyecto te muestra cómo hacerlo.

+0

Parece que de esta manera solo funciona para Windows ... ¿Cómo se extrae el contenido de un contenedor OLE para IOS? ¿Es posible? – MastAvalons

Cuestiones relacionadas