0

我需要实现一种方法来一键将页脚添加到由一行组成的 word 文档中。第一部分必须是文档的绝对路径,并且必须是左边界。除此之外,还必须有与右侧对齐的实际页码。

这在 Excel 上不是问题。在那里我可以使用 LeftFooter、CenterFooter、RightFooter。然而,在 Word 上没有可以访问的此类属性。

编辑:我发现了一个半工作的解决方案,其中有一些错误并且设计不正确,因为我还找不到合适的方法。

Word.Document doc = Globals.ThisAddIn.Application.ActiveDocument;
        foreach (Word.Section wordSection in doc.Sections)
        {
            Word.Range PageNumberRange = wordSection.Range;
            PageNumberRange.Fields.Add(PageNumberRange, Word.WdFieldType.wdFieldEmpty ,"PAGE  Arabic ", true);


            Word.Range footer = wordSection.Footers[Word.WdHeaderFooterIndex.wdHeaderFooterPrimary].Range;
            footer.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphCenter;
            footer.Tables.Add(footer, 1, 3);

            Word.Table tbl = footer.Tables[1];

            tbl.Cell(1, 1).Range.Text = doc.FullName;
            tbl.Cell(1, 3).Range.Text = PageNumberRange.Text;
            /**/

            footer.Font.ColorIndex = Word.WdColorIndex.wdBlack;
            footer.Font.Size = 6;

            PageNumberRange.Text = "";

这个问题是:它永远不会覆盖现有的页脚。如果它写“document1 ... 1”并且您再次单击它,因为您保存了文档,它不会更改页脚。此外:如果您有多个页面,则除第 1 页之外的所有页面都会被删除。

我从来没有想过要完成这么简单的任务会这么难。

4

1 回答 1

0

使用样式的另一种方法

Document doc = this.application.ActiveDocument;
Section wordSection = doc.Sections[1];    
Range footer = wordSection.Footers[WdHeaderFooterIndex.wdHeaderFooterPrimary].Range;                              
footer.Fields.Add(footer, WdFieldType.wdFieldEmpty, @"PAGE \* ARABIC", true);                               
footer.Collapse(WdCollapseDirection.wdCollapseStart);
footer.InsertBefore("\t \t");
footer.InsertBefore(doc.FullName);                                                          
footer.Font.Name = "Arial";
于 2013-03-04T10:39:38.417 回答