2009-04-17 18 views
5

Ich muss benutzerdefinierte Metadaten in einem Word-Dokument speichern. Die 'Dokumenteigenschaften' sind auf 255 Bytes begrenzt, aber ich habe Daten, die sind >> 10kSpeichern beliebiger Metadaten in Microsoft Word-Dokument

Wir verwenden VBA, um eine Word-Erweiterung zu schreiben, um mit unserer Anwendung zu interagieren und möchten, dass unsere Anwendungsdaten im Word-Dokument gespeichert werden. Die Idee ist, dass der Benutzer nur das Word-Dokument teilen kann, ohne andere Datendateien unserer Anwendung zu teilen.

Hat jemand Ideen, wie man willkürliche Metadaten effizient in Office 2003+ Dokumenten speichert?

Antwort

8

dies im Editor sofort Fenster VBA Gerade versucht:

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

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

Dokumentvariablen mit dem Dokument gespeichert werden. Sie scheinen bis zu 65280 Unicode-Zeichen zu gehen, wie ich gerade herausgefunden habe (getestet in Word 2003; Update: Diese Grenze ist die gleiche in Word 2007 und 2010).

Wenn Sie fürchten, die 60.000 für Ihre Daten zu erreichen, würde ich empfehlen, sie entweder auf mehrere Variablen aufzuteilen oder sie zu komprimieren, bevor Sie sie speichern. This post zeigt einige Optionen, um dies in VBA zu tun.

2

Sie paßt nicht genau Ihre Anforderungen, weil es nicht mit Word 2003. Allerdings funktioniert, könnte es noch für Sie interessant sein (sonst empfehle ich Sie, Dokumentvariablen zu verwenden, wie von Tomalak vorgeschlagen):

In Word 2007 (und später) können Sie beliebige XML-Dokumente in ein Word-Dokument einbetten, wie z. B. Custom XML.

ist ein Beispiel in diesem Artikel auf MSDN beschrieben: How to: Add Custom XML Parts to Documents by Using VSTO Add-Ins

Verwandte Themen