Как узнать цвет фона документа с помощью OpenXml?

230
21 сентября 2018, 10:30

Можна пройтись по элементам документа

List<DocumentFormat.OpenXml.OpenXmlElement> elements = docx.MainDocumentPart.Document.Body.ToList();

OR

List<DocumentFormat.OpenXml.OpenXmlElement> elements = docx.MainDocumentPart.Document.ToList();

Но тут нету цвета фона самого документа

foreach (DocumentFormat.OpenXml.OpenXmlElement element in elements)
{
    List<RunProperties> runProps = element.Descendants<RunProperties>().ToList();
    foreach (RunProperties rp in runProps)
    {
        rp.Color;
    }
}
Answer 1

Если вы имеете ввиду цвет, который устанавливается в Разметка страницыФон страницыЦвет страницы, то он лежит в file.docx/word/document.xml в атрибуте color тега background, в корневом теге document и у меня получилось достать его с помощью следующего кода:

using (var file = WordprocessingDocument.Open(filepath, isEditable: false))
{
    foreach (var db in file.MainDocumentPart.Document.ChildElements.OfType<DocumentBackground>())
        Console.WriteLine(db.Color);
}

Но имейте ввиду, что его там может и не быть (в вашем документе я его не вижу).

READ ALSO
Настройка ScintillaNet

Настройка ScintillaNet

Через NuGet установил ScintillaNet, в панели элементов появился соответствующий элемент и я добавил его на формуКак теперь реализовать подсветку...

275
Проверка на десятичную систему

Проверка на десятичную систему

Столкнулся с проблемой, проверки числа на десятичную систему

235
Непонятки с буферизацией ob_start()

Непонятки с буферизацией ob_start()

Почему повторяется слово hello? Что нужно добавить, что бы нормально вывело hello world?

210