Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
 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;
     }));
 }