Хранение произвольных метаданных в документе Microsoft Word - PullRequest
6 голосов
/ 17 апреля 2009

Мне нужно хранить пользовательские метаданные в документе Word. «Свойства документа» ограничены 255 байтами, но у меня есть данные, которые >> 10k

Мы используем VBA для написания расширения слова для взаимодействия с нашим приложением и хотим, чтобы данные нашего приложения сохранялись в документе word. Идея состоит в том, что пользователь может поделиться только словом документом, не используя другие файлы данных нашего приложения.

Кто-нибудь знает, как эффективно хранить произвольные метаданные в документах Office 2003+?

Ответы [ 2 ]

8 голосов
/ 17 апреля 2009

Только что попробовал это в непосредственном окне редактора VBA:

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

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

Переменные документа сохраняются вместе с документом. Кажется, что они могут содержать до 65280 символов Юникода, как я только что выяснил (проверено в Word 2003; Обновление: Это ограничение одинаково в Word 2007 и 2010).

Если вы боитесь приблизиться к 60К для ваших данных, я бы рекомендовал либо разделить их на несколько переменных, либо сжать их перед сохранением. В этом посте показаны некоторые опции для этого в VBA.

2 голосов
/ 17 апреля 2009

Он не совсем соответствует вашим требованиям, поскольку он не работает с Word 2003. Тем не менее, он все еще может быть вам интересен (в противном случае я рекомендую вам использовать переменные документа, как предложено Томалаком):

В Word 2007 (и более поздних версиях) вы можете встраивать произвольные документы XML в документ Word как Пользовательский XML .

Пример описан в этой статье на MSDN: Как: добавить пользовательские части XML в документы с помощью надстроек VSTO

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...