2017-01-11 2 views
0

Ich möchte eine Kopfzeile oder Fußzeile einfügen und es vertikal an der Seite der Seite mit Word Addin Vsto über C# ausrichten. Das folgende ist ein Beispiel Endergebnis, das ich gerne sehen würde. Ich habe versucht, dies zu erforschen und konnte kein Beispiel dafür finden, dass jemand PROGRAMMISCHES tut? Weiß jemand, wie man das erreicht?Wie fügt man eine "Seite" Kopf- oder Fußzeile hinzu und richtet sie vertikal mit dem Word Add-In aus, um C# zu verwenden?

enter image description here

So jetzt ich eine Textbox bin Einfügen und ich kann es auf der Seite der Seite wie so ausrichten, aber ich mag nicht mein Ende Benutzer in der Lage sein, es zu wählen oder zu löschen. Also denke ich, die Lösung wäre, es in eine "Seite" Kopf- oder Fußzeile zu setzen ... aber jetzt ist das Problem, wie erreiche ich die gleiche Ausrichtung und Positionierung?

Antwort

0

Also meine eigene Frage zu beantworten. Sie können die "Kopfzeile" aus dem aktuellen aktiven Dokument und der Kopfzeile erhalten, auch wenn es scheint, nur an der Spitze überspannt es tatsächlich das gesamte Dokument, das alles enthalten kann (Denken Sie an Ebenen in Adobe Photoshop). Wie auch immer, also in diese Header-Ebene einzufügen und vertikal auszurichten, kann eine Textbox mit folgendem erreicht werden:

//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; 
     } 
Verwandte Themen