2017-01-11 20 views
0

Я хотел бы вставить верхний колонтитул или нижний колонтитул и выровнять его по вертикали в стороне страницы, используя слово addin vsto через C#. Ниже приведен пример конечного результата, который я хотел бы видеть. Я пытался исследовать это и не мог найти пример того, кто делает это ПРОГРАММНО-АНАЛОГИЧНО? Кто-нибудь знает, как добиться этого?Как добавить «боковой» заголовок или нижний колонтитул и выровнять его по вертикали со словом add-in vsto с помощью C#?

enter image description here

Так что сейчас я вставив текстовое поле, и я могу привести его к стороне страницы, как это, но я не хочу, чтобы мой конечный пользователь, чтобы иметь возможность выбрать или удалить его. Поэтому я думаю, что решение будет заключаться в «боковом» заголовке или нижнем колонтитуле ... но теперь проблема в том, как достичь того же выравнивания и позиционирования?

ответ

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; 
     } 

 Смежные вопросы

  • Нет связанных вопросов^_^