0

Ich würde gerne wissen, ob es möglich ist, zusätzliche Attribute zu einfachen Bereichstext oder Absatztext aus meinem Word-Add-in hinzuzufügen. Der Einfachheit halber sehe ich den Code unten, wo ich das Dokument mit Text füllen kann, aber zusätzlich möchte ich zusätzliche Informationen hinter den Kulissen zusammen mit diesem Text speichern. Letztendlich möchte ich, dass diese benutzerdefinierten Attribute mit dem Open Xml SDK gelesen werden, wenn diese Dokumente eine Verarbeitungsstufe durchlaufen.Office Addin Benutzerdefinierte Attribute im Bereich Text

private void AddAttributedContent(string documentContent) 
     { 
      var doc = Globals.Factory.GetVstoObject(Globals.ThisAddIn.Application.ActiveDocument); 
      var range = doc.Range(); 
      range.Font.Size = 12; 
      range.Font.Name = "Calibri"; 
      range.Underline = Word.WdUnderline.wdUnderlineSingle; 
      range.Text = documentContent; 
      // range.AddOpenXmlProperty("MyProp", "MyValue"); 

      var para = doc.Paragraphs.Add(); 
      para.Range.Text = documentContent; 
      //para.AddCustomProperty("MyProp", "MyVal"); 

     } 

Edit:

Ideal unser Eigentum innerhalb der resultierenden RunProprties sitzen würde: enter image description here

Antwort

1

Nein, Sie können das nicht tun. Sie könnten es wahrscheinlich mit einem Inhaltssteuerelement oder einer Textbox tun.

Für eine ContentControl, könnten Sie wahrscheinlich Tag verwenden (wenn dies wie Quellen ist, ist es wahrscheinlich, einzigartig zu sein hat, obwohl die Beschreibung es soll für den Zweck scheint implizieren, die Sie benötigen) oder Title.

The Tag property is different from the Title property in that a tag is never displayed while a user edits a document. Instead, developers can use it to store a value for programmatic manipulation while the document is opened. 

Für ein Textfeld (a Shape), könnten Sie AlternativeText oder Title verwenden.

Beachten Sie, dass die Änderung des Titels (in beiden Fällen) oder des alternativenText wahrscheinlich die Darstellung des Dokuments beeinflusst, wenn Sie es als HTML speichern.

+1

Word-Lesezeichen sind auch eine gute Option (unter Verwendung des Lesezeichennamens ähnlich dem Content Control-Tag) –

+0

Chris, schätzen die schnelle Antwort. Wir haben uns ContentControls angeschaut und bieten bisher kein visuelles Aussehen und ihr Eigenschaftenfenster enthält nicht genug Formatierungsoptionen. Zum Beispiel möchte ich etwas als Dezimalzahl mit einer Genauigkeit von 2 formatiert haben. Ich dachte der ganze Zweck von "Open XML" war, dass wir die Lösung auf unsere Bedürfnisse erweitern könnten? Siehe Screenshot des resultierenden Xml - Idealerweise würden wir einfach unsere Sachen den "RunProperties" hinzufügen. Wenn dies nicht möglich ist, ist es möglich, die Ästhetik von ContentControl zu ändern und den Eigenschaftendialog zu überschreiben? – Mike

+0

Hey Dirk, danke. Wir möchten mehr Attribute speichern, die sich auf einen Teil des Inline-Inhalts beziehen. Siehe Screenshot, den ich angehängt habe. Diese "RunProperties" ist perfekt. Wie kann ich dazu schreiben? – Mike

Verwandte Themen