Hallo Welt!

Der Klassiker: »Hallo Welt!«. Oder: wie sieht ein einfaches Dokument aus? Wie schon beschrieben, besteht die Eingabe für den Publisher aus zwei Dateien: der Datendatei und der Layoutdatei. Beide müssen im XML-Format vorliegen und immer vorhanden sein. Die Datendatei speichert man unter dem Namen data.xml und die Layoutdatei unter layout.xml. Diese beiden Dateien erstellt man am besten mit einem XML-Editor oder dem kostenfreien Editor Visual Studio Code, der eine sehr gute XML-Unterstützung bietet.

Wer das »Hallo Welt« Beispiel selber ausprobieren möchte, kann einfach sp new helloworld aufrufen. Das erstellt ein Verzeichnis mit den beiden notwendigen Dateien. Somit kann man sofort loslegen und mit dem Befehl sp in diesem Verzeichnis ein PDF erzeugen.

Die Datendatei für das »Hallo Welt« Beispiel mit dem Namen data.xml:

<data>Hello world!</data>

Das reicht für das einfache Beispiel aus. Die Layoutdatei ist etwas umfangreicher (speichern unter layout.xml):

<Layout
  xmlns="urn:speedata.de:2009/publisher/en"
  xmlns:sd="urn:speedata:2009/publisher/functions/en">

  <Record element="data">
    <PlaceObject>
      <Textblock>
        <Paragraph>
          <Value select="."/>
        </Paragraph>
      </Textblock>
    </PlaceObject>
  </Record>
</Layout>

Diese beiden Dateien werden in einem sonst leeren Verzeichnis gespeichert. Auf der Kommandozeile wechselt man nun in dieses Verzeichnis (mit cd <Verzeichnisname>) und ruft den Publisher über den Befehl

$ sp

auf. Das $-Zeichen soll den Prompt darstellen und wird nicht mit eingegeben. Wenn alles glatt läuft, ist das Ergebnis eine PDF-Datei mit dem Namen publisher.pdf im gleichen Verzeichnis.

Für Windows-Benutzer: wenn der Publisher das PDF nicht erzeugen kann, liegt das manchmal daran, dass dieselbe Datei noch in einem Fenster geöffnet ist. Das kann der Adobe Reader sein, aber auch der Windows Explorer.

Das »Hallo Welt!« Beispiel erläutert

Hier folgt eine kurze Erklärung der beiden Dateien. Die Datendatei kann beliebig strukturiert sein, solange der Inhalt wohlgeformtes XML ist (siehe Glossar).

<data>Hello world!</data>

Die Layoutdatei ist etwas komplizierter, zumindest auf den ersten Blick.

<Layout  
  xmlns="urn:speedata.de:2009/publisher/en"
  xmlns:sd="urn:speedata:2009/publisher/functions/en">

  <Record element="data">    <PlaceObject>      <Textblock>
        <Paragraph>
          <Value select="."/>        </Paragraph>
      </Textblock>
    </PlaceObject>
  </Record>
</Layout>

① Das Wurzelelement heißt Layout und hat den Namensraum urn:speedata.de:2009/publisher/en. Der zweite Namensraum ist für die eingebauten Funktionen notwendig, wird aber in dem Beispiel nicht genutzt. (Tipp: trotzdem immer im Layout angeben, damit später keine Überraschungen auftauchen.)

② Hier startet die Datenverarbeitung. Das Wurzelelement der Datendatei wird bei dem Attribut element angegeben.

<PlaceObject> ist der Befehl, um Dinge (Texte, Bilder, Kästchen, …​) in das PDF auszugeben.

④ Der Punkt beim Attribut select bedeutet »das aktuelle Element«, in diesem Fall das Wurzelelement. Hier wird der Textwert des Elements ausgegeben, also die Zeichenkette Hello world!

Mehr soll an dieser Stelle nicht erörtert werden. Vielmehr gibt es ein Verweis auf die entsprechenden Kapitel in dieser Anleitung: Unter Organisation der Daten für die Datenverarbeitung wird beschrieben, wie die Datendatei und die Layoutdatei zu strukturieren sind, und unter Ausgabe von Objekten wird der Befehl PlaceObject beschrieben.