public void insertPageNumber(string strType, bool bHeader) { #region 此处是为了在word的开头添加分节符 object miss = System.Reflection.Missing.Value; object unit = Microsoft.Office.Interop.Word.WdUnits.wdStory; wordApp.Selection.HomeKey(ref unit, ref miss); object pBreak = (int)Microsoft.Office.Interop.Word.WdBreakType.wdSectionBreakNextPage; wordApp.Selection.InsertBreak(ref pBreak); #endregion object oAlignment = WdPageNumberAlignment.wdAlignPageNumberCenter; object oFirstPage = bHeader; WdHeaderFooterIndex WdFooterIndex = WdHeaderFooterIndex.wdHeaderFooterPrimary; switch (strType) { case "Center": oAlignment = WdPageNumberAlignment.wdAlignPageNumberCenter; break; case "Right": oAlignment = WdPageNumberAlignment.wdAlignPageNumberRight; break; case "Left": oAlignment = WdPageNumberAlignment.wdAlignPageNumberLeft; break; } wordApp.Selection.Sections[1].Footers[WdFooterIndex].LinkToPrevious = false; wordApp.Selection.Sections[1].Footers[WdFooterIndex].PageNumbers.RestartNumberingAtSection = true; wordApp.Selection.Sections[1].Footers[WdFooterIndex].PageNumbers.StartingNumber = 1; wordApp.Selection.Sections[1].Footers[WdFooterIndex].PageNumbers.Add(ref oAlignment, ref oFirstPage); }
public async System.Threading.Tasks.Task <int> PrintDocxStats(string DocFileName, bool Xpath, bool Sections, bool FootersHeaders) { return(await System.Threading.Tasks.Task.Run(() => { Document doc; StartWordApp(); Console.WriteLine(string.Format("Loading file {0}", DocFileName)); try { doc = WordApp.Documents.Open(FileName: DocFileName, ReadOnly: true); } catch (Exception e) { Console.WriteLine(string.Format("Error loading File {0}: {1}", DocFileName, e.Message)); return 1; } Console.WriteLine(string.Format("File {0} loaded", DocFileName)); if (Xpath) { foreach (ContentControl Tag in doc.ContentControls) { if (Tag.Range.ContentControls.Count == 0) { TagParents = ""; TagParents = Tag.Tag + GetParentTagList(Tag); var TagParentsArr = TagParents.Split('<'); Array.Reverse(TagParentsArr); TagParents = String.Join(">", TagParentsArr); string tagRangeText; try { tagRangeText = Tag.Range.Text.Contains("\r") || Tag.Range.Text.Contains("\n") ? Regex.Escape(Tag.Range.Text) : Tag.Range.Text; } catch (NullReferenceException) { tagRangeText = ""; } tagRangeText = tagRangeText.Contains(";") ? string.Format("\"{0}\"", tagRangeText) : tagRangeText; string tagTitle; try { tagTitle = Tag.Title.Contains(";") ? string.Format("\"{0}\"", Tag.Title) : Tag.Title; } catch (Exception) { tagTitle = ""; } Console.WriteLine(string.Format("Tag;{0};{1};{2};{3}", tagTitle, tagRangeText, DocFileName, TagParents)); } } } if (Sections) { Console.WriteLine(string.Format("Number of sections in {0}): {1}", DocFileName, doc.Sections.Count)); } if (FootersHeaders) { int i = 1; foreach (Section sec in doc.Sections) { for (var j = 1; j < 3; j++) { WdHeaderFooterIndex hdrType = (WdHeaderFooterIndex)j; HeaderFooter hdrFtr; hdrFtr = sec.Headers[hdrType]; Console.WriteLine(string.Format("{5} {4} header in section {0} (Words: {1}, Paragraphs: {2})Text: {3}", i, hdrFtr.Range.Words.Count, hdrFtr.Range.Paragraphs.Count, Regex.Escape(hdrFtr.Range.Text), hdrType, Path.GetFileName(DocFileName))); hdrFtr = sec.Headers[hdrType]; hdrFtr = sec.Footers[hdrType]; Console.WriteLine(string.Format("{5} {4} footer in section {0} (Words: {1}, Paragraphs: {2})Text: {3}", i, hdrFtr.Range.Words.Count, hdrFtr.Range.Paragraphs.Count, Regex.Escape(hdrFtr.Range.Text), hdrType, Path.GetFileName(DocFileName))); } i++; } } doc.Close(SaveChanges: false); return 0; })); }