Einfügen von Text-Platzhaltern in OpenXML-Bausteinen

Zum Einfügen von Text-Platzhaltern steht ein Addin für Microsoft Word zur Verfügung. Dieses Addin kann installiert werden durch das Ausführen von TeamWiSE.WordCtvAddin.vsto aus dem TAA-Verzeichnis1).

Durch das Addin wird ein Menüband „TAA“ mit einer Gruppe „CTV-Platzhalter“ hinzugefügt, mit den Einträgen „Platzhalter“ und „Entwurfsmodus“:

Mit der Schaltfläche Platzhalter kann ein neuer Platzhalter eingefügt oder ein existierender Platzhalter bearbeitet werden. Wenn Sie einen neuen Platzhalter einfügen, wird der selektierte Text als Name des Platzhalters und für die Anzeige im Word-Dokument übernommen, wie in diesem Beispiel das Wort „Datum“. Beides kann in dem erscheinenden Bearbeitungsdialog angepasst werden:

In dem Dialog kann auch eine Formatvorlage ausgewählt werden.

 Um einen existierenden Platzhalter zu bearbeiten, ist es notwendig, den gesamten Platzhalter zu selektieren (Klick auf die Platzhalter-Box (s. gelbe Markierung). Andernfalls erscheint eine Fehlermeldung, weil Word versucht, innerhalb eines Platzhalters einen neuen Platzhalter einzufügen.

Bei der Bearbeitung des Word-Dokuments wird für den Platzhalter der angegebene „Inhalt im Textentwurf“ angezeigt.

Um den Platzhalter zu formatieren (Schriftart, Fettdruck usw.), formatieren Sie den angezeigten Platzhaltertext.

Um deutlicher erkennen zu können, wo im Dokument sich Platzhalter befinden, schalten Sie über die entsprechende Menü-Schaltfläche den Entwurfsmodus ein:

Im Gegensatz zu Platzhaltern in RTF brauchen Platzhalter in OpenXML-Dokumenten nicht mit „&“ begrenzt werden.

Beispiel für formatierte Platzhalter in OpenXML

Die nachfolgende Abbildung zeigt ein Beispiel für das Einfügen und Bestücken eines Platzhalters mit abweichender Schriftart:

Einfügen von Platzhaltern ohne TAA-Addin für Word

Diese Beschreibung ist nur noch relevant, wenn aus irgendeinem Grund das TAA-Addin (s. oben) nicht verfügbar sein sollte.

Lokale Platzhalter werden in OpenXML-Bausteinen bei der Bearbeitung in Microsoft Word als sogenannte Inhaltsteuerelemente eingefügt.

Dafür ist es notwendig, dass die Menuleiste „Entwicklertools“ angezeigt wird. Sollte dies bei Ihnen nicht der Fall sein, lesen Sie bitte hier nach.

Um einen Platzhalter einzufügen, aktivieren Sie die Menüleiste „Entwicklertools“. Dort finden Sie mehrere Symbole zum Einfügen zum Steuerelementen, unter anderem eines für Nur-Text-Steuerelemente (rot markiert):

Wenn sie auf dieses Symbol klicken, wird ein neues Nur-Text-Steuerelement eingefügt. Sie können in dieses Steuerelement einen Text eingeben, der dann zukünftig bei der Bearbeitung in Word als Text angezeigt wird. 2) Sie können auch eine bereits eingegebene Zeichenfolge selektieren und auf das Nur-Text-Steuerelement-Symbol klicken; Word legt dann ein Steuerelement an, in dem die Zeichenfolge als Text gesetzt wird. Anschließend müssen Sie - mit Cursor innerhalb des Steuerelements oder selektiertem Steuerelement - in der Menüleiste „Eigenschaften“ wählen. Es erscheint folgender Dialog:

Unter Titel geben Sie den Namen des Platzhalters an.
Unter Tag geben Sie das Format an, mit welchem der Platzhalter formatiert werden soll.

Die anderen Angaben in dem Dialog sind für die Verwendung als Platzhalter irrelevant.

Einige Tipps:

Leider ergänzt Word, wenn kein Tag angegeben wurde, diesen Dialog selbständig, indem der Inhalt von Title nach Tag kopiert wird. Dies führt zu einer unbrauchbaren Formatangabe, die i.d.R. zwar ignoriert wird, aber dennoch zu Problemen führen kann. Deshalb empfehlen wir, bei Platzhaltern ohne Formatangabe den Dialog ein zweites Mal zu öffnen und den Text unter Tag zu entfernen. 3)

Um Anfang und Ende der Platzhalter im Text besser zu erkennen, können Sie in der Menüleiste den „Entwurfsmodus“ einschalten. In den Tags rechts und links des Platzhalters wird, falls vorhanden, der Inhalt von Tag aus dem Dialog angezeigt, andernfalls der Titel.

Ansicht mit und ohne Entwurfsmodus:

Nur mit V8.18: Wenn ein Nur-Text-Steuerelement allein auf einer Zeile steht, ändert sich dessen XML-internes Format. Die Konvertierungsroutinen können dies nicht korrekt erkennen, es kommt zu Oops-Meldungen, und der Text wird im Text-Tab von KnowlEdge nicht angezeigt. Wenn dies geschieht, fügen Sie hinter die allein in einer Zeile stehenden Platzhalter irgendwelchen Text in der Zeile an (ein Leerzeichen genügt). Sie können diesen Text anschließend wieder entfernen.

Wenn die Menüleiste „Entwicklertools“ bei Ihnen nicht angezeigt wird, gehen Sie bitte wie folgt vor:

  • Starten Sie Microsoft Word (nicht aus KnowlEdge heraus).
  • Wählen Sie das Hauptmenü Datei, darunter Optionen.
  • In dem Dialog Word-Optionen, wählen Sie Menüband anpassen.
  • In der Combobox auf der rechten Seite, wählen Sie „Hautpregisterkarten“.
  • In der Liste darunter, setzen Sie das Häkchen bei „Entwicklertools“.

Tastenkombinationen zum Bearbeiten von Steuerelementen

Um das Einfügen und Bearbeiten von Steuerelementen in OpenXml-Dokumenten zu vereinfachen, besteht die Möglichkeit, in Word Tastenkombinationen zu definieren, um die betreffenden Befehle aufzurufen. Dies erspart die Suche der betreffenden Schaltflächen in der Entwicklertools-Menüleiste mit der Maus.

Um solche Tastenkombinationen einzurichten:

  • Starten Sie Microsoft Word (nicht aus KnowlEdge heraus).
  • Wählen Sie das Hauptmenü Datei, darunter Optionen.
  • In dem Dialog Word-Optionen, wählen Sie Menüband anpassen.
  • Wählen Sie darin Tastenkombinationen: Anpassen….

  • Wählen Sie unter Kategorien „Registerkarte Entwicklertools“.
  • Um einen Shortcut zum Einfügen eines Textsteuerelements festzulegen:
  • - Wählen Sie unter Befehle „TextInhaltssteuerelement“
  • - Geben Sie im Feld Neue Tastenkombination den gewünschten Shortcut ein (z.B. Alt+T)
  • - Bestätigen Sie die Eingabe mit Zuordnen

  • Um einen Shortcut für die Anzeige der Steuerelement-Eigenschaften festzulegen:
  • - Wählen Sie unter Befehle „SteuerelementEigenschaften“
  • - Geben Sie im Feld Neue Tastenkombination den gewünschten Shortcut ein (z.B. Alt+E)
  • - Bestätigen Sie die Eingabe mit Zuordnen

Einfügen von Platzhaltern in RTF-Bausteinen

In RTF-Bausteinen werden lokale Platzhalter zwischen Ampersand-Zeichen „&“ geschrieben. Zwischen den Sonderzeichen steht der Name, ggf. gefolgt von der Formatangabe. Die Formatangabe wird mit einem „#“ eingeleitet.

Beispiel: &Datum#D1&

Vgl. auch hier.

Einfügen von Platzhaltern für Bilder in OpenXML-Bausteinen

In OpenXML-Bausteinen können mit Hilfe von speziellen Platzhaltern zur Laufzeit Bilder in ein OpenXML-Dokument eingefügt werden. Mittels „Platzhalter für Bild“ kann zuerst der Name des Platzhalters angegeben werden: Danach wird an der aktuellen Stelle im Baustein ein Rechteck eingefügt. Dieses Rechteck kann genutzt werden, um Position und Größe des Bilds zu bestimmen. Auch können weitere Eigenschaften wie zum Beispiel der Textfluss um das Bild angepasst werden.

Wichtig: Die Farbe des Platzhalters darf nicht angepasst werden! Diese wird verwendet, um die Rechtecke als Platzhalter zu erkennen. Auch der Text im Rechteck ist wichtig, weil dieser als Name des Platzhalters verwendet wird.

Im Pseudocode ist es dann auf zwei Arten möglich, das Bild zu bestücken:

  • Die einfache, schnelle Art für Test-Zwecke ist die Angabe des Datei-Namens inklusive Pfad-Angabe. Dies ist aber in der Praxis nicht zu empfehlen, weil das Dokument ja ggf. erst später, zum Beispiel beim dezentralen Druck, aufgebaut wird. Die Datei- und Pfadangabe wird dann vermutlich nicht mehr stimmen.
  • Der bessere Weg ist deshalb, die Bild-Daten über ein BLOB-Feld zu bestücken.

Nicht alle Bild-Formate werden unterstützt. Die Nutzung ist eingeschränkt auf .Jpeg/.jpg/.png/.tiff/.bmp/.gif.

Einfügen von Platzhaltern für QR-Codes in OpenXML-Bausteinen

Sehr ähnlich wie bei Platzhaltern für Bilder können in OpenXML-Bausteine zur Laufzeit QR-Codes in ein OpenXML-Dokument eingefügt werden. Auch hier kann mittels „Platzhalter für Bild“ zuerst der Name des Platzhalters angegeben werden: Danach wird an der aktuellen Stelle im Baustein ein Rechteck eingefügt. Dieses Rechteck kann genutzt werden, um Position und Größe des QR-Codes zu bestimmen. Auch können weitere Eigenschaften wie zum Beispiel der Textfluss um das Bild angepasst werden.

Wichtig: Auch hier darf die Farbe des Platzhalters nicht angepasst werden! Diese Farbe wird verwendet, um die Rechtecke als Platzhalter zu erkennen. Auch der Text im Rechteck ist wichtig, weil dieser als Name des Platzhalters verwendet wird.

Anders als beim Platzhalter für ein Bild wird bei einem QR-Code die Eigenschaft URL am Platzhalter verwendet, um zu bestimmen, was für ein QR-Code generiert wird. Die Eigenschaft Value kann wenn erwünscht verwendet werden, um ein Logo im QR-Code zu generieren.

Nachfolgend ein Beispiel für einen Platzhalter mit dem Namen „QRCode“, für welchen ein QR-Code generiert werden soll mit der URL https://www.teamwise.de und ein Logo verwendet werden soll, welches an einer zentral verfügbaren Stelle zu finden ist. (Oder die Logo-Datei soll mit verteilt werden. Die Datei wird bei der Montage des Dokuments benötigt).

Registry-Einstellungen für Anpassungen am QR-Code

Es gibt in der TAA eine Anzahl zentraler Einstellungen, um zu steuern, wie ein QR-Code generiert wird. Die wichtigsten Angaben sind hier die Anzahl Pixels, die für die Darstellung von einem Dot im QR-Code verwendet werden, und die relative Größe des Logos.

  HKEY...[]\Config\ctvQrCode: PixelsPerModule (Dword)
  HKEY...[]\Config\ctvQrCode: IconSizePercent (Dword)
  HKEY...[]\Config\ctvQrCode: IconBorderWidth (Dword)
  HKEY...[]\Config\ctvQrCode: DrawQuietZones (Binary)
  
  HKEY...[]\Config\ctvQrCode: DarkColorBlue (Dword)
  HKEY...[]\Config\ctvQrCode: DarkColorGreen (Dword)
  HKEY...[]\Config\ctvQrCode: DarkColorRed (Dword)
  HKEY...[]\Config\ctvQrCode: IconBackgroundColorBlue (Dword)
  HKEY...[]\Config\ctvQrCode: IconBackgroundColorGreen (Dword)
  HKEY...[]\Config\ctvQrCode: IconBackgroundColorRed (Dword)
  HKEY...[]\Config\ctvQrCode: LightColorBlue (Dword)
  HKEY...[]\Config\ctvQrCode: LightColorGreen (Dword)
  HKEY...[]\Config\ctvQrCode: LightColorRed (Dword)

Die ersten vier Einstellungen können verwendet werden, um die Generierung des QR-Code zu steuern. Hierbei gibt PixelsPerModule an, wie viele Pixel verwendet werden für die Breite und Höhe eines Dot im QR-Code. Diese Angabe ist wichtig für die Auflösung des QR-Code. Der Standard-Wert ist hier 20 Pixels.

Für die Darstellung des Icon im QR-Code kann die Größe des Icon bestimmt werden mit IconSizePercent. Default ist hier 15. Ggf. könnte man dies noch etwas erhöhen. Hierbei ist zu beachten, dass hier die im QR-Code eingebaute „Error Correction“ verwendet wird, um einen QR-Code mit Logo doch zu erkennen. Wenn durch das Logo zu viel vom QR-Code nicht mehr sichtbar ist, wird der QR-Code unlesbar. Weiter ist auch noch möglich, mittels IconBorderWidth einen freien Rand um das Logo zu generieren. Ob dies gesetzt werden soll ist abhängig vom verwendeten Logo.

Mit DrawQuietZones kann bestimmt werden, wie breit der leere Rand um den QR-Code sein soll. Default ist 0, damit man im Baustein beim Platzhalter dies selbst anpassen kann.

Die letzten neun Einstellungen können verwendet werden, um die Farben für die dunklen und hellen Punkte im QR-Code anzupassen. Diese RGB-Angaben sind per Default schwarz und weiß. Auch kann hier eine Hintergrundfarbe für das Logo angegeben werden. Dies ist wichtig, wenn das Logo teilweise transparent ist; Default ist hier weiß.

1)
Ein Word-Addin wird pro Benutzer installiert. Bei der Softwareverteilung könnte man dies über den VSTOInstaller mit den /i /s Flags automatisieren
2)
Wir empfehlen, zur schnellen Erkennbarkeit hier den Platzhalternamen, ggf. in &, einzugeben.
3)
Leider ist es so, das jedes Mal beim Verlassen der Dialog wenn kein Inhalt im Tag vorhanden ist, dies automatisch von Word gefüllt wird. Nur wenn man explizit den Inhalt aus Tag löscht ist nachher das Feld auch wirklich leer. Es ist deshalb wirklich zu empfehlen um das TAA-Addin für Word zu verwenden.
ctv:knowledge:textplatzhalter · Zuletzt geändert: 12.09.2023 09:37

Copyright © 1992-2024 TeamWiSE Gesellschaft für Softwaretechnik mbH         Adressen |  Kontakt |  AGB |  Datenschutzerklärung |  Impressum