public void UpdatePageNumbersInToc()
{
Document doc = new Document(MyDir + "Field.UpdateTocPages.docx");
Node startNode = DocumentHelper.GetParagraph(doc, 2);
Node endNode = null;
NodeCollection paragraphCollection = doc.GetChildNodes(NodeType.Paragraph, true);
foreach (Paragraph para in paragraphCollection)
{
// Check all runs in the paragraph for the first page breaks.
foreach (Run run in para.Runs)
{
if (run.Text.Contains(ControlChar.PageBreak))
{
endNode = run;
break;
}
}
}
if (startNode != null && endNode != null)
{
RemoveSequence(startNode, endNode);
startNode.Remove();
endNode.Remove();
}
NodeCollection fStart = doc.GetChildNodes(NodeType.FieldStart, true);
foreach (FieldStart field in fStart)
{
FieldType fType = field.FieldType;
if (fType == FieldType.FieldTOC)
{
Paragraph para = (Paragraph)field.GetAncestor(NodeType.Paragraph);
para.Range.UpdateFields();
break;
}
}
doc.Save(MyDir + "Field.UpdateTocPages Out.docx");
}