Mehrsprachigkeit

Der speedata Publisher kann seit jeher mit mehrsprachigen Texten umgehen. Für sehr viele (westliche) Sprachen gibt es Trennmuster. Einfache Texte in Chinesisch waren schon immer möglich. Mit der Version 4.1 hat sich sehr viel im Bereich der Sprachfähigkeit getan. Nun können auch komplexe Sprachen wie Arabisch und gemischte rechts-nach-links (RTL) und links-nach-rechts (LTR) Texte korrekt dargestellt werden.

Der speedata Pulisher integriert zwei wichtige Funktionen bzw. Bibliotheken, um das zu können. Das sind

  • harfbuzz Bibliothek
  • Bidi-Algorithmus

Harfbuzz

von Patrick Gundlach |

Version 4.0

Es ist knapp ein Monat her, dass ich die Version 4.0 veröffentlicht habe. Da einige größere Änderungen anstehen, habe ich mich entschlossen, die Versionsnummer von 3 auf 4 zu erhöhen.

Die letzte stabile Version 3.8 ist vom Januar 2020. In den gut sieben Monaten ist natürlich wieder einiges passiert. Hier ein paar der Highlights:

von Patrick Gundlach |

speedata in 1000 Jahren und TUG 2020 Konferenz

Die TUG 2020 Konferenz ist zu Ende. Da es eine online-Konferenz war, konnte man prima seinen Talk vorher aufzeichnen und dann einfach online präsentieren. Als »Abfallprodukt« habe ich das Video auf youtube online gestellt:

Vielleicht ist es ja auch für den Besucher hier interessant. Länge: ca. 30 Minuten.

Die Folien liegen auf notist und auf der Übersichtsseite der Konferenz gibt es auch mein Paper dazu als PDF zum Download.

von Patrick Gundlach |

Docker Image für den Servermodus

Ein Docker Image für den Servermodus des speedata Publisher ist leicht erstellt. Damit kann man per REST-API Publishing Aufträge ohne eigene Installation ausführen.

Mit Docker kann man Programme in einer virtuellen Maschine ausführen. Dadurch spart man sich die lokale Installation.

Es wird ein Ubuntu Image als Basis genommen und den speedata Publisher per apt hinzugefügt. Details dazu sind in der Installationsanleitung im Handbuch zu finden.

Die benutzte Verzeichnisstruktur auf dem lokalen Rechner ist folgende:

von Patrick Gundlach |

CSS border / Radius und PDF

Ich bin ja gerade dabei, HTML und CSS-Fähigkeiten in den speedata Publisher einzubauen. Dazu gehören die großen Dinge wie Seitenvorlagen und Schriftarten, aber auch die kleinen Details, z.B. CSS Border. Die meist nur bei oberflächlicher Betrachtung einfach sind.

Einfache Fälle

Die HTML-Datei für die Beispiele ist einfach aufgebaut:

<!DOCTYPE html>
<head>
    <link href="mystyle.css" rel="stylesheet">
</head>
<body>
    <span>border</span>
</body>
</html>

mit der dazugehörigen CSS-Datei:

span {
  border: 2px solid green;
}
von Patrick Gundlach |

Entwicklungen der letzten Wochen

Auch, wenn es hier im Blog etwas ruhiger war die letzten Wochen, gibt es »unter der Haube« einige Entwicklungen. Hauptsächlich betreffen diese Änderungen das Handbuch.

Übersetzung des Handbuchs

Das Handbuch wird derzeit ins Englische übersetzt. Da eine manuelle Übersetzung immer Zeit in Anspruch nimmt, habe ich alle Seiten aus dem deutschen Handbuch vorab durch eine automatische Übersetzung laufen lassen, damit überhaupt Inhalte zur Verfügung stehen.

Das alte Handbuch (links), das neue Handbuch (rechts). Nun entspricht das englische Handbuch demselben Stand wie das deutsche.

Neben der Übersetzung des Handbuchs gibt es auch ein paar neue Kapitel.

von Patrick Gundlach |

Print CSS mit speedata

Schon lange kann der speedata Publisher mit HTML in den Daten umgehen. Bisher war das nur für wenige Elemente möglich (z.B. b/u/em/ul/li/table) und auch die Gestaltungsmöglichkeiten mit CSS waren eingeschränkt. In der aktuellen Entwicklungsversion (3.9.x) wird ein ganz neuer und robuster HTML Parser benutzt, der auch die CSS Fähigkeiten stark erweitert.

Die Idee ist, dass sich die Ausgabe im Browser und die Ausgabe im PDF soweit wie möglich gleichen.

Dasselbe (HTML) Dokument im Browser (links) und als PDF (rechts). Noch gibt es Unterschiede bei den Abständen, aber es sollte klar werden, wo die Reise hingeht.

von Patrick Gundlach |

Neue Option --suppressinfo

Es gibt ab Version 3.9.3 einen neuen Kommandozeilenparameter --suppressinfo, um die Datumsangaben aus dem PDF zu löschen und die zufällige Dokumenten ID durch eine feste zu ersetzen.

Normalerweise werden in dem Info-Dictionary Angaben zur Software und zum Dokument gemacht, z.B.

2 0 obj
<<
  /CreationDate (D:20200128205428+01'00')
  /Creator (speedata Publisher 3.9.2, www.speedata.de)
  /ModDate (D:20200128205428+01'00')
  /Producer (LuaTeX 111 - 7235)
  /Trapped /False
>>
endobj

Die Einträge CreationDate und ModDate beinhalten das Datum der Dokumenterzeugung. Manchmal möchte man das aber nicht im PDF haben.

Ebenso ist am Ende der PDF Datei (Trailer) die Dokumenten ID zu finden, die meist zufällig generiert wird:

trailer <<
  /Info 2 0 R
  /Root 1 0 R
  /Size 20
  /ID [<68365150b6c3965d17fe7bf2a16f4a4b><68365150b6c3965d17fe7bf2a16f4a4b>]
>>
von Patrick Gundlach |

Neue Version 3.8

Vor ein paar Tagen habe ich die Version 3.8 veröffentlicht. Zur Erinnerung: die Versionen mit einer geraden Zahl an der zweiten Stelle, sind die »stabilen« Versionen, d.h. vor dem Erscheinen gibt es eine längere Zeit ohne neue Features, in denen ich Fehlerberichte sammle. Erst, wenn es eine Zeit lang keine Fehlerberichte gibt, wird eine stabile Version veröffentlicht.

Änderungen

Die letzte stabile Version ist die 3.6 vom Februar letzten Jahres. Es hat sich natürlich einiges getan. Der Schwerpunkt liegt immer darauf, neue Features so einzubauen, dass alle alten Dokumente ohne Änderungen immer gleich erzeugt werden.

Neben vielen Fehlerkorrekturen gibt es folgende neuen Punkte bzw. sichtbare Änderungen gegenüber der Version 3.6:

von Patrick Gundlach |

Online Publishing

Ab sofort gibt es die Möglichkeit, den speedata Publisher online zu nutzen. Dafür ist keine Installation der Software nötig, alles wird über das Internet gesteuert.

Die Übertragung der Dokumente funktioniert über eine verschlüsselte HTTP REST Schnittstelle, und ist damit unabhängig von der zugrundeliegenden Plattform und sicher zu benutzen. Diese Art der Kommunikation ist seit Jahren Standard beim »cloud computing« und damit für Entwickler kein Neuland.

Die API wurde ganz bewusst einfach gehalten, so dass die PDF-Erzeugung leicht in bestehende Systeme zu integrieren ist. Die Kommunikation läuft über JSON und ist unter api.speedata.de beschrieben.

von Patrick Gundlach |