Holger Herbst stellte die programmatische Erstellung von PDF Dokumenten unter Verwendung von MBS und DynaPDF vor. Anhand eines aktuellen Projekt-Beispiels zeigte er die Erzeugung von Angebots-, Auftrags- und Rechnungsbelegen.
Die Dokument-Informationen werden zusammen mit den Belegpositionen als Script-Parameter übergeben. Die Erzeugung des Dokuments mit optionaler Verteilung der Positionen auf mehrere Seiten mit zugehörigen Summenblöcken sowie Kopf- und Fußteilen im Dokument erledigt dann ein zentrales Ausgabe-Script.
Vorteil der Methode ist die Möglichkeit, Layout-spezifische Vorgaben und inhaltsabhängige Anpassungen im Dokument Parameter-gesteuert umzusetzen. Es wird also nicht mehr für jede abweichende Variante eines Dokuments ein neues Ausgabe-Layout in FileMaker benötigt. Sondern die gesamte Steuerung wird per Script erledigt und dann das Ergebnis direkt in ein PDF-Dokument geschrieben.
Für die Erzeugung eines typischen Layouts mit Belegpositionen bietet sich Verwendung von Tabellen-Objekten in DynaPDF an. Diese skalieren flexibel in der Höhe und lassen sich anschließend mit automatischen Seitenumbrüchen auf die PDF-Seiten verteilen. Komplexere Strukturen können durch Verschachtelung mehrere Tabellen-Objekte ineinander realisiert werden.
Im konkreten Beispiel wurde außerdem gezeigt, wie sich mit der Textgrößen-Berechnungsfunktion des MBS-Plugins dynamisch passende Spaltenbreiten berechnen lassen.
MBS Font.CalculateTextWidth
https://www.mbsplugins.eu/FontCalculateTextWidth.shtml
Weitere Infos zur DynaPDF Bibliothek gibt es hier:
https://www.monkeybreadsoftware.com/filemaker/dynapdf.shtml