Holger Herbst zeigte eine Lösung, um PDF-Formulare automatisch aus FileMaker heraus zu erzeugen. Durch die Verwendung von DynaPDF funktioniert dies auch in FileMaker Runtime-Lösungen, welche ja von Haus aus nicht PDF-fähig sind.
Das Besondere an der gezeigten Lösung ist die Tatsache, dass einerseits auf die PDF-Ausgabe per Drucklayout komplett verzichtet wird. Stattdessen werden die auszugebenden Objekte per DynaPDF Befehl direkt in die Ausgabedatei geschrieben.
Andererseits hat Holger einen sehr eleganten Weg gefunden, um die gewünschten Ausgaben mit einem FileMaker Layout abzugleichen, damit die Objekte an den richtigen Stellen im PDF erscheinen.
Möglich wird dies durch trickreiche Kombination eines Hintergrundbilds und der Verwendung der FileMaker Design-Funktionen. Es wird also zunächst das zu verwendende PDF-Formular in ein JPG-Bild umgewandelt und größengetreu auf das Layout platziert. Dann werden die Datenfelder einfach über die Grafik gelegt. Das Ausgabe-Script liest anschließend die Koordinaten der Datenfelder und wandelt die Positionsangaben zusammen mit den Inhalten der Felder in passende DynaPDF Anweisungen um. So werden die Texte aus den Datenfeldern direkt auf die ursprünglichen PDF-Seiten der Vorlage platziert und dann als neue PDF Datei gespeichert.
Um die Lösung noch flexibler zu gestalten, lassen sich eigene Steuerungsanweisungen für die Vermeidung von Zeilenumbrüchen und zur dynamischen Größenanpassung des Schriftgrads direkt in den Objektnamen der Datenfelder hinterlegen. Die PDF Routine liest diese Anweisungen dann zusammen mit den Koordinaten aus und passt die Textausgabe entsprechend an.
Damit lassen sich auch schwierige Anwendungsfälle sehr elegant abbilden und z.B. unerwünschte Textüberläufe in Formularfeldern vermeiden.
Holger konnte anhand seines Beispiels zeigen, dass bereits mit wenigen Programmierzeilen sehr anspruchsvolle Dokumente mit Hilfe von DynaPDF umgesetzt werden können, ohne dabei auf die layoutgetreue Darstellung von FileMaker verzichten zu müssen.
Infos zu DynaPDF finden sich auf den MBS Seiten: