0
페이지 단위로 루프를 수행하려면 어떻게해야합니까? 헤더, 꼬리말 및 워터 마크를 사용하지 않고 모든 페이지의 상단 및 하단에 요소를 설정해야합니다. 코드를 사용하지만 모든 문서에서 작동하지 않습니다. 그런페이지 단위로 반복하는 OpenXML 워드 프로세싱
public void AddLabel()
{
IEnumerable<Paragraph> topP = wdDoc.MainDocumentPart.Document.Body.Elements<Paragraph>();
bool skip = false;
foreach (Paragraph p in topP)
{
if (!ContainLastRenderedPageBreak(p))
{
if (!skip)
{
p.Append(runElementFooter.CloneNode(true));
p.Append(runElementHeader.CloneNode(true));
skip = true;
}
}
else skip = false;
if (ContainPageBreak(p))
{
p.Append(runElementFooter.CloneNode(true));
p.Append(runElementHeader.CloneNode(true));
skip = false;
}
}
}
public bool ContainPageBreak(Paragraph p)
{
return p.Elements<Run>().FirstOrDefault(r => r.Elements<Break>().FirstOrDefault(b => b.Type == BreakValues.Page) != null) != null;
}
public bool ContainLastRenderedPageBreak(Paragraph p)
{
return p.Elements<Run>().FirstOrDefault(r => r.Elements<LastRenderedPageBreak>().FirstOrDefault() != null) != null;
}
레이아웃이 다른 모든 문서의 경우 어떻게해야합니까? – Alexey