2009-04-17 17 views
5

Necesito almacenar metadatos personalizados en un documento de Word. Las 'propiedades del documento' están limitadas a 255 bytes, pero tengo datos que son >> 10kAlmacenamiento de metadatos arbitrarios en documento de Microsoft Word

Estamos usando VBA para escribir una extensión de palabra para interactuar con nuestra aplicación y queremos que nuestros datos de aplicación se almacenen en el documento de Word. La idea es que el usuario pueda compartir solo la palabra documento sin compartir ningún otro archivo de datos de nuestra aplicación.

¿Alguien tiene idea de cómo almacenar metadatos arbitrarios de forma eficiente en documentos de Office 2003+?

Respuesta

8

acaba de intentar esto en el editor de VBA ventana inmediata:

ActiveDocument.Variables.Add "foo", String(10000, ".") 

? Len(ActiveDocument.Variables("foo")) 
10000 

Las variables de documento se almacenan con el documento. Parecen ir hasta 65280 caracteres Unicode, como acabo de descubrir (probado en Word 2003; Actualización: Este límite es el mismo en Word 2007 y 2010).

Si teme acercarse a los 60k de sus datos, le recomendaría dividirlo entre varias variables o comprimirlo antes de almacenarlo. This post muestra algunas opciones para hacer eso en VBA.

2

Se ajusta no exactamente a sus necesidades, ya que no funciona con Word 2003. Sin embargo, aún podría ser interesante para usted (de lo contrario te recomiendo utilizar variables de documento según lo sugerido por Tomalak):

En Word 2007 (y más adelante) puede incrustar documentos XML arbitrarios en un documento de Word como Custom XML. Se describe un ejemplo en este artículo en MSDN: How to: Add Custom XML Parts to Documents by Using VSTO Add-Ins

Cuestiones relacionadas