Auch die Deutsche Bahn nutzt nutzt Java …

… zumindest beim Export ihrer BahnCard-Rechnungen in PDF:

image

Verfasser ist legodo CCS Designer, ein Tool, das die Bahn für die Vorlagen nutzt:

Microsoft Word ist und bleibt das favorisierte Tool vieler Nutzer im Bereich Angebotsmanagement. Der Funktionsumfang überzeugt bis heute mehr als 1 Milliarde Office-Nutzer. Die legodo CCS kombiniert den bekannten Editors mit den Vorteilen eines prozess- und systemgesteuerten Angebotsmanagements. legodo CCS nutzt Word als Editor für das Angebotsmanagement und setzt auf das Dateiformat OOXML, welches seit 2008 als ISO-Standard „ISO/IEC DIS 29500“ definiert ist.

Zitat http://www.legodo.com/loesungen/angebotsmanagement/details/

Nach dem die Word-Datei gefüllt wurde, kommt das nächste Tool, Aspose.Word for Java, was eine PDF generiert:

Aspose.Words for Java is an advanced class library for Java that enables you to perform a great range of document processing tasks directly within your Java applications. Aspose.Words for Java supports processing word (DOC, DOCX, OOXML, RTF) HTML, OpenDocument, PDF, EPUB, XPS, SWF and all image formats. With Aspose.Words you can generate, modify, and convert documents without using Microsoft Word.

Product Diagram of Aspose.Words for Java

Quelle: http://www.aspose.com/java/word-component.aspx.

Die Bahn nutzt hier zwei kommerzielle Werkzeuge, auch deshalb, weil die OpenSource-Welt hier mit nichts vergleichbares auswarten kann. Entwickler mit vergleichbaren Anforderungen müssen in die Tasche greifen. Am nächsten kommt man mit XForms und iText. Aber zu Konvertierung von Word nach PDF gibt es nichts Freies.

Grundsätzlich gibt es unabhängig von Java natürlich viele freie Alternativen.

Varargs-Design-Tipps

  • Hat eine Methode nur einen Array-Parameter, und steht der noch am Ende, so kann dieser relativ einfach durch ein Vararg ersetzt werden. Das gibt dem Aufrufer die komfortable Möglichkeit, eine kompaktere Syntax zu nutzen. Unsere main(String[] args)-Methode kann auch als main(String… args) deklariert werden, sodass der main(…)-Methode bei Tests einfach variable Argumente übergeben werden können.
  • Muss eine Mindestanzahl von Argumenten garantiert werden – bei max(…) sollten das mindestens zwei sein –, ist es besser, eine Deklaration wie folgt zu nutzen: max(int first, int second, int… remaining).
  • Aus Performance-Gründen ist es nicht schlecht, Methoden mit häufigen Parameterlistengrößen als feste Methoden anzubieten, etwa max(double, double), max(double, double, double) und dann max(double…). Der Compiler wählt automatisch immer die passende Methode aus und für zwei oder drei Parameter sind keine temporären Feld-Objekte nötig und die automatische Speicherbereinigung muss nichts wegräumen.

Die Inseln jetzt bei Rheinwerk (Galileo Press hat sich umbenannt)

Bei https://www.rheinwerk-verlag.de/:

Neuer Verlagsname

Von https://www.rheinwerk-verlag.de/umbenennung/:

[…] wir haben uns einen neuen Namen gegeben. Wir tun das nicht freiwillig und nicht leichten Herzens. Aber es ist leider so, dass uns der weitere Gebrauch des Namens »Galileo Press« markenrechtlich untersagt werden soll. Das birgt große Risiken für unser Verlagsgeschäft. Darum haben wir uns entschieden, unseren Verlag neu zu benennen.