Хранение UTF-8 XML с использованием Word CustomXMLPart или любым другим поддерживаемым способом - PullRequest
1 голос
/ 06 июня 2010

Я пишу надстройку Word, которая должна хранить некоторые собственные данные XML для каждого документа, используя объектную модель Word и ее CustomXMLPart.Проблема, с которой я сейчас сталкиваюсь, заключается в отсутствии IStream -подобной функциональности для чтения / записи XML в CustomXMLPart.Он обеспечивает только интерфейс BSTR, и я озадачен тем, как обрабатывать XML-файлы UTF-8 с BSTR s.Насколько я понимаю, XML-файл UTF-8 действительно никогда не должен подвергаться такому преобразованию Unicode.Я не уверен, чего ожидать в результате.

Есть ли другой способ использования интерфейсов автоматизации Word для хранения произвольной пользовательской информации в файле DOCX?

1 Ответ

1 голос
/ 07 июня 2010

«Пакет» - это документ OPC ( Open Packaging Convention ), который в основном представляет собой структурированную zip-папку с другим расширением (например, .pptx, .docx, .xps и т. Д.). Вы можете получить этот файл в потоке и манипулировать им любым удобным для вас способом, но не произвольно. Он не будет распознан как действительный docx, если вы поместите вещи в неправильные места (не только элементы xml, но и файлы в папках внутри zip-файла). Но если вы просто говорите «произвольно», что означает CustomXMLPart, тогда ничего страшного.

Эта является хорошей страницей для кикера, чтобы узнать больше о Open XML SDK и, если вам нужно, что обеспечивает несколько более легкий доступ к форматам файлов, чем использование (.NET) System.IO.Packaging или сторонняя zip-библиотека. Чтобы углубиться, возьмите электронную книгу (бесплатно) Open XML Explained .

С помощью Open XML SDK (опять же, все это можно сделать без SDK) в .NET, это то, что вы хотите сделать: Как: вставить пользовательский XML в пакет Office Open XML с помощью Использование Open XML API .

...