von Norbert Räbiger, Diakon, Geschäftsführung und pädagogische Leitung, Evangelisches Bildungswerk im Dekanat Weilheim | veröffentlicht am 26. Juni 2023

PDF steht für “Portable Document Format” (transportables Dokumentformat). Das Dateiformat wurde von Adobe Systems entwickelt, um Dokumente plattformunabhängig und unabhängig von der Software, mit der sie erstellt wurden, darzustellen. Das PDF-Format ermöglicht es, Text, Bilder, Grafiken und andere Elemente in einem einzigen Dokument zu speichern, das in der Regel kleiner als das Original ist und sich einfach per E-Mail oder auf einer Webseite teilen lässt. Durch die Verwendung von PDF können Dokumente auf unterschiedlichen Betriebssystemen und Geräten einheitlich dargestellt werden, ohne dass Formatierungen oder Layouts verloren gehen.

PDF bietet auch die Möglichkeit, interaktive Formulare zu erstellen, die von Benutzern ausgefüllt und elektronisch zurückgesendet werden können. Diese Funktion ist besonders nützlich für Geschäftsformulare, wie Anträge, Anmeldeformulare oder Umfragen, die schnell und einfach online ausgefüllt und zurückgesendet werden können. Das Ausfüllen von Formularen in PDF-Dokumenten kann Zeit sparen und den Papierverbrauch reduzieren. Mit der Möglichkeit, Formulare in PDF-Dokumenten zu erstellen, wird das PDF-Format zu einem noch vielseitigeren und praktischen Dateiformat für den geschäftlichen und persönlichen Gebrauch.

Zusätzlich zur Erstellung interaktiver Formulare bietet das PDF-Format auch die Möglichkeit, automatisch Berechnungen durchzuführen und komplexe Funktionen mithilfe von JavaScript auszuführen. Damit lassen sich beispielsweise Förderanträge mit einem Kosten- und Finanzierungsplan erstellen. Durch die Verwendung von JavaScript können PDF-Formulare auch umfangreichere Funktionen wie Validierungen, automatische Datumsberechnungen und dynamische Berechnungen hinzugefügt werden, die das Ausfüllen von Formularen noch einfacher und benutzerfreundlicher machen. Die Kombination von interaktiven Formularen und JavaScript macht PDF-Dokumente zu einem vielseitigen und leistungsstarken Werkzeug für die Erstellung von elektronischen Formularen und Dokumenten.

Voraussetzungen

Um JavaScript zu PDF-Dokumenten hinzufügen zu können, benötigt man ein geeignetes Werkzeug, das dies unterstützt. Mit Adobe Acrobat Pro ist es es beispielsweise möglich, interaktive Formulare mit JavaScript zu erstellen und andern Usern bereitzustellen. Man benötigt also eine Lizenz für Adobe Acrobat Pro, um JavaScript zu PDF-Dokumenten hinzuzufügen.

Darüber hinaus erfordert die Verwendung von JavaScript in PDF-Dokumenten auch grundlegende Kenntnisse der Programmiersprache JavaScript sowie der Funktionsweise von PDF-Formularen. Dies umfasst beispielsweise das Verständnis von Variablen, Bedingungen und anderen grundlegenden Programmiertechniken. Auf einige dieser Elemente wird in diesem Artikel eingegangen.

Nicht alle PDF-Viewer unterstützen PDF-Formulare und JavaScript. Deshalb funktionieren möglicherweise die hier vorgestellten Punkte nicht auf allen Geräten oder Plattformen. Es ist wichtig, die Kompatibilität und Funktionalität von PDF-Formularen mit JavaScript sorgfältig zu testen, bevor sie an Benutzer*innen verteilt werden. Benutzer*innen können sich jedoch für die unterschiedlichen Betriebssysteme den kostenlosen Acrobat Reader herunterladen.

In diesem Artikel wird nicht dargestellt, wie Formulare zum Beispiel mit Microsoft Word, LibreOffice oder anderen Programmen erstellt werden. Eine Anleitung findet man u.a. bei Heise unter Tipps & Tricks. PDF-Formulare können aber auch aus eingescannten Formularen erstellt werden. Mit dem Adobe Acrobat Pro können die mit Textverarbeitungsprogrammen oder mit Layoutprogrammen erstellten Formulare eingelesen werden. Die Felder werden automatisch erkannt und hinzugefügt. Alternativ lassen sich Formulare auch komplett mit dem Adobe Acrobat Pro erstellen.

Eine Anleitung zu den Grundlagen von PDF-Formularen findet sich zum Beispiel auf den Hilfeseiten von Adobe.

Damit Sie diesem Artikel folgen und die beschriebenen Funktionen ausprobieren können, können Sie sich die Datei Beispielformular.docx herunterladen.

Formular erstellen

Öffnen Sie einfach die Datei Beispielformular.docx in Microsoft Word und wandeln Sie diese Datei in eine PDF-Datei um. Am einfachsten geht das über Datei => Exportieren => PDF/XPS-Dokument erstellen. Vergeben Sie einen Dateinamen, zum Beispiel Beispielformular.pdf.

Nun öffnen Sie die neue PDF-Datei in Adobe Acrobat Pro.

Das noch leere Formular.

Wählen Sie aus den Werkzeugen Formulare aus. Wenn dieses Werkzeug noch nicht in der Werkzeugpalette hinzugefügt ist, können Sie über Mehr Werkzeuge unter der Rubrik Formulare und Signaturen das Werkzeug zur Palette hinzufügen oder das Werkzeug öffnen.

Das Formularwerkzeug hilft dabei die Formularfelder zu erzeugen.

Nach dem Öffnen des Formularwerkzeugs können Sie auswählen, ob Sie die geöffnete PDF-Datei bearbeiten oder ein Dokument scannen wollen. Wählen Sie Ihre PDF-Datei aus und klicken Sie auf Start. Adobe Acrobat Pro interpretiert nun das Dokument und zeigt die erkannten Felder an.

Es wurden auch Felder an Stellen erkannt, wo keine Felder sein sollen. Diese müssen gelöscht werden.

Die nicht benötigten Felder können ausgewählt und gelöscht werden.

Das bereinigte Formular.

Bei den Feldern handelt es sich ausschließlich um Felder, die Eurobeträge enthalten sollen. Deshalb können nun über die Eigenschaften der Felder die Formate festgelegt werden. Mit der rechten Maustaste klickt man dazu auf ein Feld und wählt den Punkt Eigenschaften aus dem Kontextmenü aus. Das muss leider für jedes Feld einzeln getan werden. Im Eigenschaftsfenster wählt man den Reiter Format und nimmt dort die nötigen Einstellungen vor:

  • Formatkategorie: Zahlen
  • Symbolposition: Danach mit Leerzeichen

Anschließend klickt man auf Schließen und wählt das nächste Feld aus und öffnet die Einstellungen. Adobe Acrobat Pro hat sich die Einstellungen gemerkt und man muss nur unter Format auf die Kategorie Zahlen wechseln.

Wenn diese Einstellungen bei allen Feldern vorgenommen wurden, kann man nun alle Felder markieren (Strg + a). Dann kann man wieder über das Kontextmenü das Eigenschaftenfenster öffnen. Es werden nun weniger Reiter angezeigt. Wechseln Sie auf den Reiter Optionen und wählen bei der Ausrichtung Rechts aus. Schließen Sie das Fenster wieder. Ein paar Felder im Formular sollen noch schreibgeschützt werden. Auch das geht über das Eigenschaftsfenster. Dazu wählt man die fünf Summenfelder und das Feld mit dem maximalen Förderbetrag aus (Strg-Taste gedrückt halten und mit der Maus die fünf Felder anklicken). Über den Reiter Allgemein kann man nun das Häkchen bei Schreibgeschützt setzen und das Fenster wieder schließen.

Jetzt ist das Formular soweit vorbereitet und wir können uns anschauen, wie nun Summen berechnet werden.

Summen bilden

Summen kann Adobe Acrobat Pro ganz einfach berechnen. Die Funktion dafür erreicht man auch wieder über das Eigenschaftsfenster. Nehmen wir uns das Feld Summe Sachkosten vor.

1. Rechtsklick auf das Feld

2. Im Kontextmenü auf Eigenschaften klicken.

3. Im Reiter Berechnung auf Wert ist klicken und im Dropdownfeld die Summe (+) auswählen.

4. Über den Button Auswählen kann man nun die Felder wählen, die in die Summe einfließen sollen: Material, Fahrtkosten, Öffentlichkeitsarbeit und Inv Anschaffungen.

5. Das Fenster kann dann wieder geschlossen werden.

Bei den Feldern Summe Personalkosten, Ausgaben gesamt und Summe Einnahmen geht man ähnlich vor. Die auszuwählenden Felder sind:

  • Summe Personalkosten: Honorare
  • Ausgaben gesamt: Summe Sachkosten, Summe Personalkosten
  • Summe Einnahmen: Eintritte, Senden, Sonstige Mittel

Das Feld Einnahmen gesamt bekommt noch keine Summenformel zugewiesen, da wir hier auf das Ergebnis der Berechnung für die Förderung zugreifen müssen und Adobe Acrobat die Summe nicht mehr korrekt aktualisiert.

Als nächstes muss natürlich noch die Förderung berechnet werden. Dafür nehmen wir Folgendes an:

  • die Förderung beträgt maximal 1500 Euro und
  • maximal 70 % der Gesamtausgaben

Problem: Es gibt nur fünf verschiedene Berechnungsmöglichkeiten:

  • die Summe (+)
  • das Produkt (x)
  • der Durchschnitt
  • das Minimum
  • das Maximum

Lösung: Über den Acrobat kann man benutzerdefinierte Berechnungsskripte einfügen (Reiter Berechnung im Eigenschaftsfenster). Das sind JavaScripts über die man komplexere Berechnungen ausführen kann. Darum soll es nun gehen. Allerdings werden in diesem Artikel nur ein paar Grundlagen erklärt. Weitere Informationen findet man dann in den verlinkten Dokumenten.

Werte aus den Feldern verarbeiten

Damit nun in einem benutzerdefinierten Berechnungsskript auf die Werte der Felder zugegriffen werden kann, schauen wir uns zunächst an, wie die Felder ausgelesen bzw. dann auch wieder beschrieben werden können.

this.getField("<Feldname>").value;
  • this ist das Objekt des aktuellen Dokuments.
  • getField(“<Feldname”>) ist die Methode, mit der auf das Feld zugegriffen wird
  • value greift dann den Wert aus dem Feld zu (lesend oder schreibend, je nach Kontext im Script)
// Wert aus einem Feld in einer Variablen sichern
var varName = this.getField("<Feldname>").value;
// Wert in ein Feld schreiben
this.getField("<Feldname").value = varName;

Damit lässt sich jetzt ein Script aufbauen, das die maximale Förderung berechnet. Mit der rechten Maustaste klickt man auf das Feld max 70 und wählt aus dem Kontextmenü Eigenschaften. Im Reiter Berechnung wählt man den unteren Punkt Benutzerdefiniertes Berechnungsskript und anschließend Bearbeiten … Im JavaScript-Editor kann nun das Script eingegeben werden. Leider ist der Editor nicht sehr komfortabel.

// Definieren der maximalen Fördersumme
var foerderbetrag_max = 1500;
var foerdersatz = 0.7;
// Werte der Felder in Variablen speichern
var ausgaben_gesamt = this.getField("Ausgaben gesamt").value;
var einnahmen_summe = this.getField("Summe Einnahmen").value;
// Förderbetrag berechnen
var foerderbetrag_berechnet = ausgaben_gesamt * foerdersatz;
// Entscheiden, wie hoch die Förderung ausfällt
// der jeweils kleinere Betrag wird angesetzt (Math.min(Wert1, Wert2) gibt den kleineren der beiden Werte zurück)
var foerderbetrag = Math.min(foerderbetrag_max, foerderbetrag_berechnet);
// Prüfen, ob der Förderbetrag die Differenz zwischen den Gesamtausgaben und den Einnahmen überschreiten würde
// der kleinere der beiden Werte wird zurückgegeben
foerderbetrag = Math.min(ausgaben_gesamt - einnahmen_summe, foerderbetrag);
// Prüfen, ob der Förderbetrag < 0 wäre => in diesem Fall wird 0 zurückgegeben
foerderbetrag = Math.max(foerderbetrag, 0); // negative Förderung ausschließen
// Förderbetrag ins Formular eintragen
this.getField("max 70").value = foerderbetrag;

Wenn das Skript eingegeben ist, klickt man auf OK. Wurde im Skript ein Fehler erkannt, lässt sich das Fenster nicht schließen und die ungefähre Fundstelle wird angegeben. Hat alles geklappt, kann auch das Eigenschaftsfenster geschlossen werden.

Nun muss noch die Formel für die Gesamteinnahmen eingegeben werden. Gesamtausgaben und Gesamteinnahmen sollen dabei auf Ausgeglichenheit geprüft werden. Wenn die Werte nicht gleich sind, soll ein Fehler markiert werden. Eine einfache Lösung dafür ist die Rückgabe des Werts 99999,99.

Im Skript braucht man dafür die Möglichkeit, zwei Werte zu vergleichen und abhängig vom Ergebnis einen Befehl auszuführen oder den Befehl nicht auszuführen. Dazu gibt es die Anweisung if (Bedingung) Befehl. Der Variablen einnahmen_gesamt soll der Wert 99999.99 zugewiesen werden, wenn einnahmen_gesamt ungleich ausgaben_gesamt ist. Ungleichheit wird mit dem Operator != geprüft. Dabei steht das ! für nicht und das = für gleich. != bedeutet also nicht gleich.

Hier nun das Skript für die Berechnung des Feldes Einnahmen gesamt:

// Felder übernehmen
var einnahmen_summe = this.getField("Summe Einnahmen").value;
var foerderung_max = this.getField("max 70").value;
var ausgaben_gesamt = this.getField("Ausgaben gesamt").value;
// Gesamteinnahmen berechnen
var einnahmen_gesamt = einnahmen_summe + foerderung_max;
// Prüfen, ob sich die Gesamteinnahmen von den Gesamtausgaben unterscheiden
// wenn die Werte unterschiedlich sind, wird 99999.99 zurückgegeben
if (einnahmen_gesamt != ausgaben_gesamt) {
    einnahmen_gesamt = 99999.99;
}
this.getField("Einnahmen gesamt").value = einnahmen_gesamt;

Geschafft! Jetzt kann es ans Testen gehen. Dazu schließt man die Formularbearbeitung oben rechts mit Schließen oder Vorschau. In den einzelnen Feldern können nun Werte eingetragen werden und getestet werden, ob das Formular das tut, was es soll.

In der PDF-Datei Beispielformular – Lösung.pdf sind die Einstellungen und Berechnungen enthalten, die in diesem Artikel beschrieben wurden.

Nun kann man loslegen und sich tief in die Dokumentationen zu PDF-Dateien und JavaScripts in PDF-Dateien einarbeiten.

Viel Erfolg!


0 Kommentare

Schreibe einen Kommentar

Avatar-Platzhalter

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Skip to content
Datenschutz
, Inhaber: (Firmensitz: Deutschland), würde gerne mit externen Diensten personenbezogene Daten verarbeiten. Dies ist für die Nutzung der Website nicht notwendig, ermöglicht aber eine noch engere Interaktion mit Ihnen. Falls gewünscht, treffen Sie bitte eine Auswahl:
Datenschutz
, Inhaber: (Firmensitz: Deutschland), würde gerne mit externen Diensten personenbezogene Daten verarbeiten. Dies ist für die Nutzung der Website nicht notwendig, ermöglicht aber eine noch engere Interaktion mit Ihnen. Falls gewünscht, treffen Sie bitte eine Auswahl: