Хранение произвольных метаданных в документе Microsoft Word

Вы можете проверить, содержит ли строка, разбитая на слова, все символы в виде буквы. Вот пример:

    string AddStars(string input)
    {
        var words = input.Split(' ');

        var output = "";
        foreach (var word in words)
        {
            output += word;
            if (!word.ToCharArray().ToList().All(char.IsLetter))
                output += "*";

            output += " ";
        }

        return output.TrimEnd();
    }
6
задан shruti1810 28 May 2015 в 09:00
поделиться

2 ответа

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

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

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

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

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

8
ответ дан 10 December 2019 в 00:44
поделиться

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

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

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

2
ответ дан 10 December 2019 в 00:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: