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