#c# #ms-word #openxml
Вопрос:
Я пытаюсь добавить некоторые основные свойства в документ Docx. Я нашел только один пример в разных местах того, как это можно сделать.
Например, здесь. Но есть одна проблема.
Если мы посмотрим на структуру самого Docx, созданного приложением Word и использующего OpenXML, между ними есть разница.
Структура docx, созданная с использованием openxml и документа.Свойства упаковки.Создатель = «всо»
Более того, проверка файла не может быть успешной, если я хочу проверить файл с помощью средства повышения производительности от Microsoft. Конечно, word может прочитать этот файл, но, с моей точки зрения, это неправильный способ создания файла word.
Здесь вы можете увидеть структуру docx, созданную самим приложением word
Еще один аспект, если я напишу следующее:
CoreFilePropertiesPart corePackageProperties = document.CoreFilePropertiesPart;
if (corePackageProperties == null)
{
corePackageProperties = document.AddCoreFilePropertiesPart();
}
тогда core.xml файл создается в нужном месте структуры, но он пуст.
Итак, вопрос в том, есть ли в SDK OpenXML способ получить структуру docx так же, как при использовании самого приложения word?
Ответ №1:
Документация Microsoft предлагает :
using (XmlTextWriter writer = new XmlTextWriter(coreFilePropPart.GetStream(FileMode.Create), System.Text.Encoding.UTF8))
{
writer.WriteRaw("<?xml version="1.0" encoding="UTF-8"?>rn<cp:coreProperties xmlns:cp="https://schemas.openxmlformats.org/package/2006/metadata/core-properties"></cp:coreProperties>");
writer.Flush();
}
У меня была та же проблема при создании файла Excel, и я решил ее.