2009-04-17 32 views
5

Potrzebuję przechowywać niestandardowe metadane w dokumencie programu Word. "Właściwości dokumentu" są ograniczone do 255 bajtów, ale mam dane, które są >> 10kPrzechowywanie dowolnych metadanych w dokumencie Microsoft Word

Używamy języka VBA do napisania rozszerzenia słowa w celu interakcji z naszą aplikacją i chcemy, aby nasze dane aplikacji były przechowywane w dokumencie programu Word. Chodzi o to, że użytkownik może udostępniać tylko dokument tekstowy bez udostępniania żadnych innych plików danych z naszej aplikacji.

Czy ktoś wpadł na pomysł, jak skutecznie przechowywać dowolne metadane w dokumentach Office 2003+?

Odpowiedz

8

prostu próbowałem to w edytorze bezpośrednim oknie VBA:

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

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

zmienne dokumentu są zapisywane z dokumentem. Wydaje się, że ich liczba wzrosła do 65280 znaków Unicode, co właśnie odkryłem (przetestowano w Word 2003; Aktualizacja: Ten limit jest taki sam w Word 2007 i 2010).

Jeśli obawiasz się uzyskać dane o wartości zbliżonej do 60 KB, polecam podzielenie go na kilka zmiennych lub skompresowanie przed zapisaniem. This post pokazuje niektóre opcje do wykonania w VBA.

2

nie pasuje on dokładnie swoje wymagania, ponieważ nie działa w programie Word 2003. Jednak nadal może być interesujące dla ciebie (inaczej polecam Ci używać zmiennych dokument jako sugerowane przez Tomalak):

W programie Word 2007 (i później) możesz osadzić dowolne dokumenty XML w dokumencie Word jako Custom XML.

Przykład jest opisany w tym artykule na temat usługi MSDN: How to: Add Custom XML Parts to Documents by Using VSTO Add-Ins

Powiązane problemy