speedata Blog

Entwicklungen & Neuigkeiten zum speedata Publisher

Neue stabile Version 3.2.0

Nach gut einem halben Jahr Entwicklung ist es wieder an der Zeit eine neue Stabile Version (3.2) hochzuladen. Verfügbar ist sie wie immer als fertige Pakete für Mac, Linux und Windows unter https://download.speedata.de/ und als Quellcode auf GitHub. Neuerungen sind Viele Fehlerkorrekturen, wie immer (ich bin erstaunt, wie viele Fehler die Anwender so finden, aber meist sind das doch sehr obskure Kombinationen von Eingabedaten…) Lua basiertes Preprocessing. Eine ausführliche Beschreibung dazu gibt es im Handbuch.

Aufzählungsliste nachahmen

Der Publisher hat (derzeit) noch keine besonderen Fähigkeiten, Aufzählungslisten zu erstellen. Das liegt auch daran, dass sie sich recht leicht über Textformate nachahmen lassen.

Dafür definiert man ein Textformat mit hängendem Einzug und benutzt das mit dem Text mit den Aufzählungszeichen:

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

  <DefineTextformat name="li" indentation="6pt" rows="-1"/>
  <Record element="data">
    <PlaceObject>
      <Textblock textformat="li">
        <Paragraph><Value></Value><Value select="sd:dummytext()"></Value></Paragraph>
        <Paragraph><Value>• Two</Value></Paragraph>
        <Paragraph><Value>• Three</Value></Paragraph>
      </Textblock>
    </PlaceObject>
  </Record>

</Layout>

Aufzählungen können über Tabellen simuliert werden.

Tabellenspalten ausgleichen

Ganz frisch (seit Version 3.1.24) gibt es ein neues Feature: Tabellenspalten »ausgleichen«. Damit lassen sich die Tabellen auf den Seiten ausgleichen. In der Regel benutzt eine Tabelle erst den ersten Positionierungsrahmen eines Bereichs, dann den nächsten etc.

Neues Handbuch

Das neue Handbuch ist nun online. Ein Grund zum Feiern: es hat etwa ein Jahr gebraucht von den ersten Texten bis zum aktuellen Status. Derzeit ist es nur auf Deutsch verfügbar, eine englische Version wird bald in Angriff genommen (kennt jemand einen guten Übersetzer für technische Dokumente?). In der Distribution ist bis zur Übersetzung noch das alte Handbuch enthalten, das zwar immer noch aktuell, aber nicht so ausführlich ist. Ein paar Neuerungen gegenüber dem alten Handbuch:

LuaTeX 1.0.4

Der Publisher nutzt bekanntermaßen LuaTeX als Satzengine. LuaTeX ist eine moderne Variante von TeX, was ja für seine exzellenten Satzeigenschaften bekannt ist. LuaTeX wird in der Installation des Publishers mitgeliefert, so dass sich der Anwender hierüber keine Gedanken machen muss. Auch kommt er in nicht direkt mit TeX in Berührung, daher werden auch keine speziellen TeX-Kenntnisse benötigt, um den Publisher zu bedienen. Die mitgelieferte Version von LuaTeX ist zwar schon recht alt (0.

Lua Preprocessing: CSV nach XML-Konverter

Neu in Version 3.1.10 Die neue Funktionalität des Lua-Präprozessors habe ich um Schnittstellen zu CSV und XML erweitert. Man kann nun beliebige CSV-Dateien einlesen und nach XML konvertieren, ohne eine Zeile Code zu schreiben1. CSV nach XML nach PDF In dem neuen Beispiel (https://github.com/speedata/examples/tree/master/technical/csvreader) ist das ausführlich in einem lauffähigen Layout gezeigt. Grundlage ist eine CSV-Datei. In dem Verzeichnis liegt eine Datei mit ausgedachten Personen: "First name","Last name","Company name", .

Lua anstelle von XProc

Die neueste Version des Publishers (3.1.9) hat ein kleines, aber feines Feature dazu bekommen: ab sofort ist es möglich, vor dem Rendering Lua-Skripte auszuführen. Lua Lua ist eine ganz passable Programmiersprache, ähnlich wie JavaScript, und ideal, um in Programme eingebettet zu werden. Der Publisher selbst ist zu 95% in Lua geschrieben, daher bietet sich die Programmiersprache auch an, um die Startskripte damit zu erstellen. Aufruf Mit sp --filter meinprogramm.lua wird also das angegebene Lua-Programm ausgeführt, bevor der eigentliche Rendering-Prozess aufgerufen wird.

Kompatibilität mit macOS High Sierra (10.13) / Go

Offensichtlich gab es Probleme mit dem Publisher und MacOS High Sierra (10.13). Das ist nun behoben. Ich habe das Startprogramm sp in Go geschrieben und erzeuge die Binaries unter Linux. Das funktioniert auch soweit ganz gut, doch die aktuelle Version von MacOS scheint wohl nur mit einer neuen Version von Go unterstützt zu werden. Auf dem Build-Server habe ich nun die Version 1.9.1 installiert und alles läuft wieder rund.

speedata Publisher Version 3

Endlich habe ich wieder ein »Major-Release« veröffentlicht. Es ist Zeit für einen kurzen Rückblick Wenn man von Version 2.0 ausgeht, sind seit dem ziemlich genau drei Jahre vergangen, in denen es 4 Minor Releases und ca. 150 Patch Releases gab. Das ist durchschnittlich eine Version pro Woche, wobei es natürlich Phasen unterschiedlicher Intensität gab. Interessanterweise kamen bei mir nie Beschwerden aufgrund von Abwärtskompatibilität an, obwohl es kleine inkompatible Änderungen gab (die Betreffen das Cursor-Verhalten bei Objekten, die an den rechten Rand reichen.

ZUGFeRD

Immer wieder erreichen mich Anfragen von Auftraggebern, wo ich kurz grübeln und ausprobieren muss, ob die mit dem Publisher umsetzbar sind. Kürzlich hatte ich eine Anfrage zu elektronischen Rechnungen. ZUGFeRD (Zentraler User Guide des Forums elektronische Rechnung Deutschland) ist ein Dateiformat für elektronische Rechnungen. Es wird vermutlich nur in Deutschland verwendet, dafür aber recht häufig. Das Dateiformat besteht aus einer XML-Datei die in eine PDF-Datei eingebettet wird, insofern gibt es hier zwei getrennte »Baustellen«.