在word中重置頁(yè)碼
開(kāi)發(fā)人員廣泛使用節(jié)來(lái)為每個(gè)不同的節(jié)設(shè)置不同的格式或布局選項(xiàng),例如為不同的節(jié)使用不同的頁(yè)眉和頁(yè)腳信息,并為每個(gè)節(jié)動(dòng)態(tài)重置頁(yè)碼。在 Spire.Doc for .NET 的幫助下,我們可以輕松地在 C# 和 VB.NET 中插入詞段和刪除詞段。我們將向您展示如何使用 Spire.Doc 輕松地為每個(gè)部分重置從 1 開(kāi)始的頁(yè)碼。
技術(shù)交流Q群(767755948)
首先確保Spire.Doc for .NET已正確安裝,然后通過(guò)以下路徑在下載的 Bin 文件夾中添加 Spire.Doc.dll 作為參考:“..\Spire.Doc\Bin\NET4.0\ Spire.Doc .dll”。這是如何重置每個(gè)部分的頁(yè)碼的代碼。
第 1 步:加載三個(gè)不同的 word 文檔
Document document1 = new Document(); document1.LoadFromFile("..\\..\\1.docx"); Document document2 = new Document(); document2.LoadFromFile("..\\..\\2.docx"); Document document3 = new Document(); document3.LoadFromFile("..\\..\\3.docx");
第 2 步: 使用section方法將所有文檔合并為一個(gè)word文檔
foreach (Section sec in document2.Sections) { document1.Sections.Add(sec.Clone()); } foreach (Section sec in document3.Sections) { document1.Sections.Add(sec.Clone()); }
第 3 步:瀏覽文檔
//Traverse every section of document1 foreach (Section sec in document1.Sections) { //Traverse every object of the footer foreach (DocumentObject obj in sec.HeadersFooters.Footer.ChildObjects) { if (obj.DocumentObjectType == DocumentObjectType.StructureDocumentTag) { DocumentObject para = obj.ChildObjects[0]; foreach (DocumentObject item in para.ChildObjects) { if (item.DocumentObjectType == DocumentObjectType.Field)
第 4 步:找到字段類(lèi)型 FieldNumPages 并將其更改為 FieldSectionPages
//Find the item and its field type is FieldNumPages if ((item as Field).Type == FieldType.FieldNumPages) { //Change field type to FieldSectionPages (item as Field).Type = FieldType.FieldSectionPages;
第 5 步 : 重新開(kāi)始節(jié)的頁(yè)碼并將起始頁(yè)碼設(shè)置為 1
document1.Sections[1].PageSetup.RestartPageNumbering = true; document1.Sections[1].PageSetup.PageStartingNumber = 1; document1.Sections[2].PageSetup.RestartPageNumbering = true; document1.Sections[2].PageSetup.PageStartingNumber = 1;
第 6 步:將文檔保存到文件并啟動(dòng)它。
document1.SaveToFile("sample.docx",FileFormat.Docx); System.Diagnostics.Process.Start("sample.docx");
完整代碼:
namespace ResetPageNumber { class Program { static void Main(string[] args) { Document document1 = new Document(); document1.LoadFromFile("..\\..\\1.docx"); Document document2 = new Document(); document2.LoadFromFile("..\\..\\2.docx"); Document document3 = new Document(); document3.LoadFromFile("..\\..\\3.docx"); foreach (Section sec in document2.Sections) { document1.Sections.Add(sec.Clone()); } foreach (Section sec in document3.Sections) { document1.Sections.Add(sec.Clone()); } foreach (Section sec in document1.Sections) { foreach (DocumentObject obj in sec.HeadersFooters.Footer.ChildObjects) { if (obj.DocumentObjectType == DocumentObjectType.StructureDocumentTag) { DocumentObject para = obj.ChildObjects[0]; foreach (DocumentObject item in para.ChildObjects) { if (item.DocumentObjectType == DocumentObjectType.Field) { if ((item as Field).Type == FieldType.FieldNumPages) { (item as Field).Type = FieldType.FieldSectionPages; } } } } } } document1.Sections[1].PageSetup.RestartPageNumbering = true; document1.Sections[1].PageSetup.PageStartingNumber = 1; document1.Sections[2].PageSetup.RestartPageNumbering = true; document1.Sections[2].PageSetup.PageStartingNumber = 1; document1.SaveToFile("sample.docx",FileFormat.Docx); System.Diagnostics.Process.Start("sample.docx"); } } }