CodamAIDocs
Themafertig

Ausgabetypen und Formate

Der Ausgabetyp einer Vorlage (DOCUMENT, TABLE, WORD) entscheidet, welche Formate sie liefert: HTML und PDF, XLSX, CSV und ODS, DOCX. Welche Formate eine Installation anbietet und welche PDF-Profile es gibt.

Ausprägungen
DOCUMENT → HTML, PDFTABLE → XLSX, CSV, ODSWORD → DOCXPDF-Profile NONE, PDF_A_3A, PDF_UA, PDF_A_3A_UAFormat nicht angeboten → format-not-offeredFormat passt nicht zur Vorlage → format-not-for-template

Worum es geht

Jede Vorlage hat einen Ausgabetyp. Er sagt, was die Vorlage erzeugt, und damit, in welche Formate sie gerendert werden kann. Ein Format ist die Dateiart, die du am Ende bekommst, etwa PDF oder XLSX.

CRMS errät keine Struktur. Eine Tabelle entsteht nicht, indem CRMS ein HTML-Dokument zerlegt. Wer eine Excel-Datei will, schreibt eine Vorlage vom Typ TABLE.

Die drei Ausgabetypen

Was eine Vorlage erzeugt und was daraus wird
DOCUMENTTABLEWORD
Die Vorlage schreibtXHTMLdas CRMS-Tabellendokument (kleines XML)WordprocessingML als Flat OPC (das ganze Paket als eine XML-Datei)
FormateHTML, PDFXLSX, CSV, ODSDOCX
Escaping in der VorlageXHTMLXMLXML
Eigene Dateien (Assets)asset:<name> in src, href, CSS url()–asset:<name> in <pkg:binaryData>
Bilder aus der Anfragebei PDFneinnein
SVG mit crms.svgals Vektorgrafik (PDF) bzw. inline (HTML)neinals eingebettetes Bild

Escaping heißt: Sonderzeichen aus der Payload, etwa < oder &, landen als Text im Dokument und nie als Markup. Das gilt für jeden Ausgabetyp automatisch. Markup aus der Payload kommt nur über crms.svg ins Dokument, siehe Bilder und SVG.

Assets sind Dateien, die zu einer Revision der Vorlage gehören, etwa ein Logo oder eine Schrift. Sie sind mit der Vorlage freigegeben. Mehr unter Wie eine Vorlage aufgebaut ist.

DOCUMENT: HTML und PDF

Die Vorlage schreibt XHTML. HTML gibt dieses XHTML zurück und macht es eigenständig: Jedes asset:<name> wird zu einer data:-Adresse, sodass die Seite ohne CRMS und ohne Netz ihr Logo zeigt.

PDF setzt das XHTML mit openhtmltopdf in Seiten. Schriften werden eingebettet. Text ohne eigene Schrift der Vorlage bekommt DejaVu Sans aus CRMS, nie eine Schrift des Servers. Hat das <html>-Element kein lang, setzt CRMS die Sprache des Dokuments ein.

TABLE: XLSX, CSV, ODS

Die Vorlage schreibt das CRMS-Tabellendokument:

<workbook>
  <sheet name="Positionen">
    <column width="30"/>
    <row header="true"><cell>Position</cell><cell>Betrag</cell><cell>Fällig</cell></row>
    <#list items as item>
    <row>
      <cell>${item.label}</cell>
      <cell type="number" format="#,##0.00">${item.amount?c}</cell>
      <cell type="date">2026-10-17</cell>
    </row>
    </#list>
  </sheet>
</workbook>
  • Zelltypen: string (Standard), number, date (ISO), datetime (ISO mit Versatz), boolean.
  • format ist ein Zahlen- oder Datumsformat für XLSX und ODS.
  • column width ist die Breite in Zeichen, row header="true" eine fette Kopfzeile.
  • Ein Blattname hat höchstens 31 Zeichen, keines von [ ] : * ? / \ und ist im Dokument eindeutig.
  • Formeln gibt es nicht. Jeder Wert ist vorbereitet. In CSV bekommt Text, der mit =, +, -, @, Tab oder Wagenrücklauf beginnt, ein führendes ', damit eine Tabellenkalkulation ihn nicht als Formel ausführt.
  • CSV hat genau ein Blatt. Ein Dokument mit mehr Blättern ist render-csv-single-sheet. CSV ist UTF-8 ohne BOM, mit Komma und CRLF.

Ein kaputtes Tabellendokument (unbekanntes Element, DOCTYPE, kein Blatt) ist render-table-invalid|<zeile>|<spalte>.

WORD: DOCX

Die Vorlage schreibt das ganze Word-Paket als eine XML-Datei (Flat OPC). CRMS packt daraus die DOCX-Datei. <pkg:binaryData>asset:logo.png</pkg:binaryData> füllt CRMS mit dem Asset der Revision. Eine externe Beziehung außer einem Hyperlink, etwa ein extern angehängtes Template oder ein Bild aus dem Netz, ist render-resource-refused. Kaputtes XML ist render-word-invalid|<zeile>|<spalte>.

Welche Formate eine Installation anbietet

Nicht jede Installation bietet jedes Format an. Zwei Dinge entscheiden:

  1. Welche Format-Module installiert sind. HTML ist immer dabei. PDF kommt aus dem Formatmodul für PDF, DOCX aus dem Formatmodul für DOCX, XLSX, CSV und ODS aus dem Formatmodul für Tabellen.
  2. Was die Konfiguration anbietet. CODAMAI_CRMS_FORMATS listet die angebotenen Formate. Leer heißt: alle installierten. Nennt die Liste ein Format, für das kein Modul installiert ist, startet die Anwendung nicht.

Im Hub wählst du die Formate am CRMS-Modul, siehe Das CRMS-Modul im Hub. Welche Formate gerade angeboten werden, sagt GET /crms/capabilities.

Format angeboten und installiert?Passt zum Ausgabetyp der Vorlage?Ergebnis
nein–422 format-not-offered|<format>
janein422 format-not-for-template|<format>|<ausgabetyp>, z. B. format-not-for-template|docx|document
jajaCRMS rendert

PDF-Profile

Ein PDF-Profil legt fest, welche Norm ein PDF erfüllt. Du wählst es mit pdfProfile in der Anfrage, nur bei format: PDF. Fehlt es, gilt das Standardprofil der Installation (CODAMAI_CRMS_PDF_PROFILE, Standard PDF_A_3A).

ProfilNormGetaggtWofür
NONEeinfaches PDFneinschnelle Ansicht
PDF_A_3APDF/A-3a (ISO 19005-3), mit sRGB-FarbprofiljaLangzeitarchivierung
PDF_UAPDF/UA-1 (ISO 14289-1)jaBarrierefreiheit
PDF_A_3A_UAPDF/A-3a und PDF/UA-1 zugleichjaarchivierbar und barrierefrei

Getaggt heißt: Das PDF enthält eine Struktur aus Überschriften, Absätzen und Tabellen, die etwa ein Bildschirmleser vorlesen kann.

Fallen

Weiter

Suchen