добавление html-строки в заголовок с использованием openxml - PullRequest
0 голосов
/ 25 мая 2018

Я добавляю строку html в заголовок документа Word, динамически создаваемого с использованием OpenXml

public static void ApplyHeader(WordprocessingDocument doc)
{
    // Get the main document part.
    MainDocumentPart mainDocPart = doc.MainDocumentPart;

    HeaderPart headerPart1 = mainDocPart.AddNewPart<HeaderPart>("r97");

    Header header1 = new Header();

    string html =
    @"<div style =\"display:block;max-width:750px; margin:0 auto; \"> <img src = \"/images/header.jpg\" style= \"max-width:100%;\" /></div><p>Continuation Sheet</p>";

    string altChunkId = "AltChunkId2";

    AlternativeFormatImportPart chunk = mainDocPart.AddAlternativeFormatImportPart("application/xhtml+xml", altChunkId);
    using (Stream chunkStream = chunk.GetStream())
    {
        using (StreamWriter stringWriter = new StreamWriter(chunkStream, Encoding.UTF8)) //Encoding.UTF8 is important to remove special characters
        {
            stringWriter.Write(html);
        }
    }
    AltChunk altChunk = new AltChunk();
    altChunk.Id = altChunkId;

    // first header
    Paragraph paragraph1 = new Paragraph() { };

    paragraph1.InsertAt(altChunk,0);
    header1.Append(paragraph1);
    headerPart1.Header = header1;


    SectionProperties sectionProperties1 = mainDocPart.Document.Body.Descendants<SectionProperties>().FirstOrDefault();
    if (sectionProperties1 == null)
    {
        sectionProperties1 = new SectionProperties() { };
        mainDocPart.Document.Body.Append(sectionProperties1);
    }
    HeaderReference headerReference1 = new HeaderReference() { Type = HeaderFooterValues.Default, Id = "r97" };

    sectionProperties1.InsertAt(headerReference1, 0);
}

Теперь после открытия документа Word выдается следующая ошибка: «Microsoft не может открыть этот файл, потому что некоторые частиотсутствуют или недействительны.Как я могу решить эту ошибку?

...