OneOffixx-Textbausteine

Es soll ein neues Dokument erstellt und mit Textbausteinen (Snippets) befüllt werden. Die Anzahl der Textbausteine ist beliebig. Sie werden in die Bookmarks eingepflegt. Falls bereits Inhalte in den Bookmarks vorhanden sind, werden diese gelöscht. Die Id des Textbausteins kann mit Hilfe des Textbausteineditors ausgelesen werden. Jede Id ist eindeutig und ändert sich nach dem Anlegen nicht mehr. Die Sprache wird über die Dokumentsprache festgelegt.

<?xml version="1.0" encoding="UTF-8"?>
<OneOffixxConnectBatch xmlns="http://schema.oneoffixx.com/OneOffixxConnectBatch/1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <Entries>
    <OneOffixxConnect>
      <Arguments>
        <TemplateId>6bb49520-1ebd-4f68-bb5f-02f46a9e1ec8</TemplateId>
        <LanguageLcid>2055</LanguageLcid>
      </Arguments>
      <Function name="SnippetsResolver" id="dd752747-733e-4175-9fc7-028ab7472742">
        <Arguments>
          <Snippet id="A7835D23-E945-4A39-81B9-3CEC067E26C0" bookmark="Bookmark1" />
          <Snippet id="B8235D23-D945-5A39-31B9-23EC067E2120" bookmark="Bookmark1" />
          <Snippet id="43535D23-45D5-6A39-81B9-DE1C067E2112" bookmark="Bookmark2" />
          <Snippet id="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" bookmark="Bookmark3" />
        </Arguments>
      </Function>
    </OneOffixxConnect>
  </Entries>
</OneOffixxConnectBatch>

Hinweis: Der entsprechenden Vorlage muss die Dokumentfunktion SnippetResolver (“Textbausteine” ab Version 3.1, vorher “Bausteine in Dokumentsprache laden”) angehängt sein.

Mehrere Textbausteine können in einer Textmarke (z. B. “Bookmark1”) gruppiert werden, indem im Attribut “Bookmark” der gleiche Name steht. Die Textbausteine werden in der gleichen Reihenfolgen eingebaut wie sie im XML stehen. Es ist ebenfalls möglich, den “_OneOffixxOpenAt”-Bookmark zu verwenden. Dadurch wird der Text an der Cursor-Plazierung, die in der OneOffixx Vorlage definiert ist, eingefügt.

OneOffixx-fremde Textbausteine

Über die Textbausteine können auch eigene, d.h. nicht in OneOffixx gespeicherte, Inhalte und Texte übergeben werden, nämlich im Text- oder HTML-Format. In dem Fall muss im Textbaustein keine Id angegeben werden - im Element selbst muss der entsprechende Inhalt hinterlegt sein:

<Snippet type="..." bookmark="Bookmark1">Content</Snippet>

Eigener Textbaustein im Text-Format

<?xml version="1.0" encoding="UTF-8"?>
<OneOffixxConnectBatch xmlns="http://schema.oneoffixx.com/OneOffixxConnectBatch/1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <Entries>
    <OneOffixxConnect>
      <Arguments>
        <TemplateId>6bb49520-1ebd-4f68-bb5f-02f46a9e1ec8</TemplateId>
        <LanguageLcid>2055</LanguageLcid>
      </Arguments>
      <Function name="SnippetsResolver" id="dd752747-733e-4175-9fc7-028ab7472742">
        <Arguments>
          <Snippet bookmark="Bookmark3">
            Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas porttitor congue massa. Fusce posuere, magna sed pulvinar ultricies, purus lectus malesuada libero, sit amet commodo magna eros quis urna.
            Nunc viverra imperdiet enim. Fusce est. Vivamus a tellus.
            Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Proin pharetra nonummy pede. Mauris et orci.
            Aenean nec lorem. In porttitor. Donec laoreet nonummy augue.
            Suspendisse dui purus, scelerisque at, vulputate vitae, pretium mattis, nunc. Mauris eget neque at sem venenatis eleifend. Ut nonummy.
          </Snippet>
        </Arguments>
      </Function>
    </OneOffixxConnect>
  </Entries>
</OneOffixxConnectBatch>

Eigener Textbaustein im HTML-Format (Office Standard Styling)

Bei der Übermittlung von HTML Inhalten, ist der “type” Html anzugeben. Es können generell alle von Microsoft Office zugelassenen HTML Inhalte übermittelt werden.

Einfache Texte:

    <Snippet bookmark="_OneOffixxOpenAt" type="Html">
       <![CDATA[
               <p>Demo</p>
       ]]>
    </Snippet>

Texte in definiertem Word-Style:

Überschriften wie H1-H4 sowie die normalen Formatierungen (bspw. fett resp. <strong>) werden automatisch in den ensprechenden Überschriftenstyle (bspw. <h1> = Überschrift1) dargestellt.

          <Snippet bookmark="_OneOffixxOpenAt" type="Html">
             <![CDATA[
             	<h1>Grosser Titel</h1>
            	<strong>fetter Text</strong>
             ]]>
           </Snippet>

Texte können durch die Angabe von “mso-style-name:” einem bestimmten Word-Style zugeordnet werden.

          <Snippet bookmark="_OneOffixxOpenAt" type="Html">
          	<![CDATA[
            		<p style="mso-style-name:oneoffixxStyleName">Demo</p>
          	]]>
           </Snippet>

Tabellen:

Als HTML können auch Tabellen übermittelt werden.

          <Snippet bookmark="_OneOffixxOpenAt" type="Html">
          	<![CDATA[
            		<table width="100%">
              			<tr>
                			<td>erste Spalte</td>
                			<td>zweite Spalte</td>
              			</tr>
            		</table>
          	]]>
          </Snippet>

Bilder:

Bilder können als Data-URI übermittelt werden.

          <Snippet bookmark="_OneOffixxOpenAt" type="Html">
          	<![CDATA[
            		<img src="data:image/png;base64,..."
          	]]>
          </Snippet>

Eigener Textbaustein im HTML-Format (OneOffixx Parser)

ab 2.3.4

Bei dieser Variante konvertiert OneOffixx das HTML direkt ins OpenXML Format und verwendet dabei bestimmte Style-Informationen.

Grundaufbau:

Der Aufbau ist fast identisch, jedoch wurde ein zusätzlicher Parameter “parser” beim Snippet hinzugefügt. Im “parser” muss “OneOffixx” angegeben werden.

          <Snippet bookmark="_OneOffixxOpenAt" type="Html" parser="OneOffixx">
          	<![CDATA[
            		<p>HTML Fragmente...</p>
          	]]>
          </Snippet>

OneOffixx-Attribute:

Um Style-Informationen oder “Rendering”-Informationen weiterzugeben, können folgende Attribute genutzt werden:

  • data-oo-style: Der angegebene Style wird dem entsprechenden Open-XML Element zugewiesen.
    • Styles können auf <p>, <ul> / <ol> oder <table>-Elemente angewendet werden.
  • data-oo-align: Definiert die Ausrichtung.
    • Mögliche Werte: left, right, center
    • Das Attribut kann auf <p>, <td> oder <th>-Elemente angewendet werden
  • data-oo-table-…: Definierte Angaben für <table>-Elemente.
  • data-oo-image-…: Definierte Angaben für <img>-Elemente.

ab 3.0.00060

  • data-oo-background: Definiert eine Hintergrundfarbe.
    • Mögliche Werte: HEX-Farbcodes, z. B. E2001A
    • Das Attribut kann auf Absatz (<p>, <h1>, etc.), <td> oder <th>, oder Text (<span>, <strong>, etc.)-Elemente angewendet werden.
  • data-oo-foreground: Definiert eine Schriftfarbe.
    • Mögliche Werte: HEX-Farbcodes, z. B. E2001A
    • Das Attribut kann auf Absatz Text (<span>, <strong>, etc.)-Elemente angewendet werden.

Hinweis zu CSS & andere Attributen:

CSS Angaben oder Attribute werden (bis auf die Ausnahmen “colspan” bei der Tabelle und “src” bei Bildern) ignoriert.

Hinweis zu Textangaben ab 2.3.40160:

Der Parser kann sowohl UTF8 als auch HTML encodierte (z. B. ü) Texte direkt ins Open XML wandeln.

Ausgenommen davon sind folgende Zeichen, die zwingend in HTML encodiert werden müssen:

" als &quot;
' als &apos;
> als &gt;
< als &lt;
& als &amp;

Unterstützte Elemente - Typographie:

Diese Elemente werden in die entsprechenden OpenXML Elemente umgewandelt. Dabei wird versucht den jeweiligen Stil einzuhalten, sodass ein <b> entsprechend “fett” formatiert wird.

Elemente für OpenXML Paragraphen:

  • <p>
  • <h1>, <h2>, <h3>, <h4>, <h5>, <h6>

ab 2.3.40160

  • <pre>,<blockquote>,<address>

Elemente für OpenXML Text:

  • <span>
  • <u>
  • <s>
  • <sub>
  • <sup>
  • <i>
  • <em>
  • <b>
  • <strong>

ab 2.3.40160

  • <code>,<time>,<label>
  • <a> (nur der Link-Text wird übernommen)

Elemente für OpenXML-Linien: ab 2.3.40160

  • <hr>
    • Optionale Attribute:
      • data-oo-hr-type=”—”: Erzeugt eine Linie ähnlich wie beim AutoFormat “—”
      • data-oo-hr-type=”___”: Erzeugt eine Linie ähnlich wie beim AutoFormat “___”
      • data-oo-hr-type=”###”: Erzeugt eine Linie ähnlich wie beim AutoFormat “###”
      • data-oo-hr-type=”~~~”: Erzeugt eine Linie ähnlich wie beim AutoFormat “~~~”
      • data-oo-hr-type=”***”: Erzeugt eine Linie ähnlich wie beim AutoFormat “***”
      • data-oo-hr-type=”===”: Erzeugt eine Linie ähnlich wie beim AutoFormat “===”
    • Ohne Attributangabe wird ein Linienelement erzeugt.

Elemente für OpenXML-Zeilen, Spalten oder Seitenumbrüche: ab 2.3.40160

  • <br>
    • Optionale Attribute:
      • data-oo-br-type=”textWrapping”: Erzeugt einen Zeilenumbruch.
      • data-oo-br-type=”page”: Erzeugt einen Seitenumbruch.
      • data-oo-br-type=”column”: Erzeugt einen Spaltenumbruch, falls der Abschnitt mehrere Spalten enthält.
    • Ohne Attributangabe wird ein normaler Zeilenumbruch erzeugt.

Elemente in denen nach bekannten Kindelementen gesucht wird: ab 2.3.40160

  • <html>,<body>,<form>,<div>

Verschachtelte <p>- oder <h1>-(etc.) Elemente werden nicht unterstützt. Diese Elemente sind auch laut HTML-Spezifikation nicht dafür ausgelegt.

Unterstützte Elemente - Bilder:

Bilder können als Data-URL übermittelt werden.

Elemente:

  • <img>

Unterstützte Bildformate (angegeben über den MIME-Type in der Data-URL) sind:

  • image/bmp
  • image/png
  • image/gif
  • image/jpeg
  • image/tiff

OneOffixx-Attribute:

  • data-oo-image-title: definiert den (optionalen) Titel eines Bildes.
    • Das Attribut kann auf <img>-Elemente angewendet werden.
  • data-oo-image-desc: definiert die (optionale) Beschreibung eines Bildes.
    • Das Attribut kann auf <img>-Elemente angewendet werden.
  • data-oo-image-width: definiert die Breite des Bildes im Dokument.
    • Das Attribut kann auf <img>-Elemente angewendet werden.
    • Es wird eine Zahl ohne Komma erwartet.
  • data-oo-image-height: definiert die Höhe des Bildes im Dokument.
    • Das Attribut kann auf <img>-Elemente angewendet werden.
    • Es wird eine Zahl ohne Komma erwartet.
  • data-oo-image-sizeunit: definiert die Einheit. Standardmässig wird Pixel (px) gewählt.
    • Mögliche Werte: px, cm, mm
    • Es wird eine Zahl ohne Komma erwartet.
    • Weitere Information im Abschnitt Bilder.

Bilder können im Fliesstext, als einzelner Paragraph, in Listen oder Tabellen eingesetzt werden.

Für die Berechnung der Bildgrösse gibt es verschiedene Varianten:

  • Fall keine expliziten Höhen- (“data-oo-image-height”) oder Breiten-(“data-oo-image-width”) Angaben vorhanden sind, wird die Pixel-Grösse des Bildes genutzt.
  • Falls eine Höhen- oder Breiten-Angabe vorhanden ist, wird das Seitenverhältnis des Ursprungsbild beibehalten und entsprechend die Grösse berechnet.
  • Falls sowohl Höhen- als auch Breiten-Angaben vorhanden sind, werden diese als Grösse genutzt - egal welches Seitenverhältnis das Bild hat.

Optional können über die “data-oo-image-title” und “data-oo-image-desc” Beschreibungen im OpenXML hinterlegt werden.

Unterstützte Elemente - Tabellen:

HTML Tabellen können ebenfalls umgewandelt werden, jedoch werden ohne Style-Angabe, die später thematisiert wird, keine Tabellenränder oder ähnliches dargestellt.

Elemente:

  • <table>
  • <thead> - innerhalb der <table>
  • <tbody> - innerhalb der <table>
  • <tfoot> - innerhalb der <table>
  • <tr> - innerhalb von <thead>, <tbody> oder <tfoot>
  • <td> - innerhalb von <tr>
  • <th> - innerhalb von <tr>
  • Alle Typographie-Elemente, Bilder und Input-Controls innerhalb eines <td>
  • Listen innerhalb eines <td>
  • Tabellen innerhalb eines <td>

Das “colspan”-Attribut wird für <td>-Elemente respektiert.

OneOffixx-Attribute:

  • data-oo-table-width: definiert die Breite der Tabelle in Prozent oder “Twip” (1cm = 567). Ist optional wenn data-oo-table-columns-Werte als cm Angabe gemacht werden.
    • Das Attribut kann auf <table>-Elemente angewendet werden.
  • data-oo-table-width-unit ab 3.1.10060: Pct/Dxa/Nil/Auto. Standardmässig wird Pct genommen. Dxa steht für die Twip-Angabe.
    • Das Attribut kann auf <table>-Elemente angewendet werden.
  • data-oo-table-layout ab 3.1.10060: Fixed/AutoFit. Standardmässig wird Fixed genommen. Bei AutoFit wird bei überlangen Spalten die jeweilige Spalte vergrössert.
    • Das Attribut kann auf <table>-Elemente angewendet werden.
  • data-oo-table-columns: definiert die Breite der jeweiligen Spalten innerhalb einer Tabelle in Prozent oder als cm-Angaben ab 3.1.10060.
    • Das Attribut kann auf <table>-Elemente angewendet werden.
    • Die Werte sind kommasepariert, jeweils pro Spalte, anzugeben.
  • data-oo-table-look-*: Durch diese Attribut kann die Word-Tabelle genauer spezifiziert werden, z. B. ob eine Ergebniszeile sichtbar ist oder nicht. Die Eigenschaften decken sich mit den TableLook-Properties vom OpenXML SDK. ab 2.3.40160
  • data-oo-table-look-firstRow: True/False - Überschrift: Besondere Formatierung für die erste Zeile anzeigen.
  • data-oo-table-look-lastRow: True/False - Ergebniszeile: Besondere Formatierung für die letzte Zeile anzeigen.
  • data-oo-table-look-firstColumn: True/False - Erste Spalte: Besondere Formatierung für die erste Spalte anzeigen.
  • data-oo-table-look-lastColumn: True/False - Letzte Spalte: Besondere Formatierung für die letzte Spalte anzeigen.
  • data-oo-table-look-noHBand: True/False - Gebänderte Zeilen: Besondere Formatierung für gerade bzw. ungerade Zeilen anzeigen.
  • data-oo-table-look-noVBand: True/False - Gebänderte Spalten: Besondere Formatierung für gerade bzw. ungerade Spalten anzeigen.

Unterstützte Elemente - Input-Controls ab 2.3.40160:

Bestimmte HTML-Input Controls können auch in das jeweilige Open XML “Custom-Control” umgewandelt werden.

Elemente:

  • <input type=”checkbox” >
    • Das “checked” Attribut wird ausgewertet
  • <input type=”datetime” >
    • Das “value” Attribut wird ausgewertet
  • <input type=”text” >
    • Das “value” Attribut wird ausgewertet
  • <textarea >
    • Der Textinhalt wird ausgewertet

Diese Controls können sowohl einzeln auch auch im normalen Textfluss stehen.

Unterstützte Elemente - Listen:

HTML Listen können ebenfalls umgewandelt werden, jedoch werden diese nur mit minimalen Style-Angaben versehen, falls man keinen expliziten Style angibt.

Elemente:

  • <ul> - ohne Style-Angabe als Bullet-List dargestellt
  • <ol> - ohne Style-Angabe als Numeric-List dargestellt
  • <li> - innerhalb von <ul> oder <ol>
  • Alle Typographie-Elemente, Bilder und Input-Controls innerhalb eines <li>
  • Verschachtelte Listen, wobei der ‘Numbering’-Style der Hauptliste beibehalten wird, innerhalb eines <li>

Hinweis zu Word-Listen & Absatzformatvorlagen:

Listen werden im Word über zwei verschiedene Arten von “Formatvorlagen” gesteuert. Es gibt ‘Listentypen’, welche die Einrückung, Zeichen und Nummerierung steuern (z. B. die Zahlen 1. und 1.1 und 1.1.1). Diesem Listentyp kann eine andere Formatvorlage angehängt werden, der sich auf den eigentlichen Text neben der Nummerierungsangabe auswirkt. Damit OneOffixx die HTML-Liste entsprechend richtig konvertieren kann, sollte folgendes Vorgehen eingehalten werden:

Pro “Haupt”-‘<ul>’ bzw. ‘<ol>’ sollte ein Listentyp definiert werden. Dieser Listentyp sollte mit einer Formatvorlage (z. B. ‘ListText’) verbunden werden. Im Connect gibt man immer nur den Namen der eigentlichen Formatvorlage (z. B. wie oben ‘ListText’) an - der Listentyp ist indirekt verknüpft. Aktuell ist es erforderlich auf jeder neuen ‘<ul>’ bzw. ‘<ol>’ Ebene den Style anzugeben. Man kann auch verschiedene Styles verwenden. Ohne Angabe nutzt Word den Standard-Absatz Style.

Zusammenfassung: Man kann beliebig viele Styles erstellen um den Text in einer Liste zu formatieren. Das muss jeweils auf jeder Ebene angegeben werden. Man muss einen Listentyp erstellen, welcher mit dem “primären” Style verbunden ist. Dieser Listentyp steuert die Nummerierung, Einrückungen etc.

Beispiel:

          <Snippet bookmark="_OneOffixxOpenAt" type="Html" parser="OneOffixx">
          	<![CDATA[
            		<p>HTML Fragmente...</p>
            		<p></p>
            		<ul data-oo-style="CorpList">
            			<li>Element eins</li>
            			<li>
            				<ul data-oo-style="CorpList">
            					<li>Unter Element</li>	
            				</ul>
            			</li>
            		</ul>
            		<p data-oo-style="Highlight">Text</p>
            		<p><u><em><strong>fett, kursiv and unterstrichen </strong></em></u> oder ohne</p>
			<p>Table with cm-Values:</p>
            		<table data-oo-style="ListTable3Accent5" data-oo-table-columns="2cm,10cm" width="100%">
            			<tr>
            				<td>erste Spalte</td>
            				<td>zweite Spalte</td>
            			</tr>
            			<tr>
            				<td>foo</td>
            				<td>bar</td>
	            		</tr>
	            		<tr>
            				<td>foo</td>
            				<td>bar</td>
	            		</tr>
			</table>
			<p>Table with Pct:</p>
            		<table data-oo-style="ListTable3Accent5" data-oo-table-width="70" data-oo-table-columns="20,80" width="100%">
            			<tr>
            				<td>erste Spalte</td>
            				<td>zweite Spalte</td>
            			</tr>
            			<tr>
            				<td>foo</td>
            				<td>bar</td>
	            		</tr>
	            		<tr>
            				<td>foo</td>
            				<td>bar</td>
	            		</tr>
			</table>
			<img data-oo-image-title="Test-Titel" data-oo-image-desc="Test-Beschreibung" data-oo-image-width="50" data-oo-image-sizeunit="px" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAIAAAD91JpzAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuOWwzfk4AAAAWSURBVBhXY/gvwFD734Lhv9r//491ASz+Bve3zck6AAAAAElFTkSuQmCC" />
			<p><span>Letzer...</span></p>
          	]]>
          </Snippet>

Eigener Snippet im OPC-Flat-Format

ab 2.3.4

Es können auch Snippets im Flat OPC Format entgegen genommen werden. Dabei werden allerdings keine Styles oder Numberings übernommen, nur der Body-Part.

          <Snippet bookmark="_OneOffixxOpenAt" type="OpenXml">
          	<![CDATA[
            		<?mso-application progid="Word.Document"?>
			<pkg:package xmlns:pkg="http://schemas.microsoft.com/office/2006/xmlPackage">
			...
			</pkg:package>
          	]]>
          </Snippet>