如何添加" side"页眉或页脚并使用c#将其与word加载项vsto垂直对齐?

时间:2017-01-11 17:10:42

标签: ms-word vsto office-interop office-addins

我想插入一个页眉或页脚,并使用word addin vsto通过C#将其垂直对齐到页面的一侧。以下是我想看到的样本最终结果。我试过去研究这个,但是找不到一个人做这个程序的例子吗?有谁知道如何实现这个目标?

enter image description here

所以现在我正在插入一个文本框,我可以将它与页面的一侧对齐,但我不希望我的最终用户能够选择或删除它。因此,我认为解决方案是将其置于" side"页眉或页脚......但现在问题是如何实现相同的对齐和定位?

1 个答案:

答案 0 :(得分:0)

回答我自己的问题。你可以获得"标题"从当前活动文档和标题开始,即使它看起来只是在顶部,它实际上跨越整个文档,可以容纳任何东西(想想adobe照片商店中的图层)。无论如何,所以要插入到这个标题层并垂直对齐文本框可以通过以下方式实现:

//note: we are in ThisAddin.cs (word addin) and this.Application = word addin

private void drawTdCycleTextBox(String cycleCode)
        {
            int length = 1000;

            // get the current cursor location
            Range cursorRange = this.Application.Selection.Range;

            // get the primary header on the current page
            HeaderFooter header = this.Application.ActiveDocument.Sections.First.Headers[Word.WdHeaderFooterIndex.wdHeaderFooterPrimary];
            // header.Range.Text = "THIS IS A TEST";

            // create the textbox inside the header and at the current cursor location
            Microsoft.Office.Interop.Word.Shape textBox = header.Shapes.AddTextbox(Office.MsoTextOrientation.msoTextOrientationUpward, 0, 0, 35, length, cursorRange);
            textBox.TextFrame.TextRange.Font.Size = 20;
            textBox.TextFrame.TextRange.Text = Util.repeatedTextOutput(cycleCode, 25, length);
            textBox.Fill.ForeColor.RGB = ColorTranslator.ToOle(Color.Turquoise);
            textBox.Fill.Transparency = .35F;
        }