2015-11-18 2 views
-1

С помощью этого кода я поставил заголовок шаблона для нового или другого документа:OpenXml Layout не позволяет изменять верхний/нижний колонтитул

// Feed target headerPart with source headerPart 
using (WordprocessingDocument tmpWdDocSource = WordprocessingDocument.Open(inPathFrom, true)) 
{ 
    var tmpFirstHeader = tmpWdDocSource.MainDocumentPart.HeaderParts; 
    var tmpHeaderElement = from element in tmpFirstHeader where element.Header.InnerText != string.Empty select element; 
    var tmpFirstFooter = tmpWdDocSource.MainDocumentPart.FooterParts; 
    var tmpFooterElement = from element in tmpFirstFooter where element.Footer.InnerText != string.Empty select element; 
    if (tmpFirstHeader != null && tmpFirstFooter != null) 
    { 
     tmpHeaderPart.FeedData(tmpHeaderElement.First().GetStream()); 
     tmpFooterPart.FeedData(tmpFooterElement.First().GetStream()); 
    } tmpHeaderPart); 
} 

Он работал очень хорошо до now.But, если я имеют разные повороты макета в документе (Первая страница = Горизонтальная, Вторая страница = Вертикальная, Третья страница = Горизонтальная), она начинает менять заголовок при последнем изменении поворота (в этом случае на третьей странице).

Есть ли тег, который контролирует начало документа?

+0

Вертикаль ошибка орфографии? –

ответ

0

Если «поворот макета» означает «Ориентация страницы» (портрет/пейзаж), то то, что вы хотите сделать, возможно только в том случае, если 1) каждая страница разделена разрывом раздела и 2) «Ссылка на предыдущий» отключена между разделами.

Звучит так, как будто проблема с деталями заголовка и их ссылками в пакете Zip. В Word Open XML каждый отдельный заголовок содержится в собственной части; в разделе «rels» для этой части создается уникальная ссылка «Ссылка», а заголовок «Ввод» вводится в свойства раздела (SectPr) для каждого раздела.

Если на третьей странице (разделе) отображается некорректная информация заголовка, возможно, она ссылается на неправильную часть заголовка. Я ничего не вижу в коде, который вы предоставляете, который на самом деле пишет headerReference для документа, так что, вероятно, это то, что вам не хватает.

Порядок работы с заголовками и заголовками приведен в документации ECMA, раздел 17.10.5 headerReference.

Взгляните на документ в Инструменте производительности Open XML. Осмотрите различные свойства раздела document.xml и найдите headerReference.

Вы также можете попробовать создать «правильный» документ в Word, а затем проверить это в Инструменте, а также сравнить то, что у вас есть, что должно быть. Кроме того, инструмент покажет вам код для создания «правильного» документа, который также может дать вам некоторые подсказки.

Смежные вопросы