Tips & Tricks

So fügen Sie einem ausfüllbaren PDF-Formular Felder für die automatische Berechnung hinzu

Ein ausfüllbares PDF-Formular, das Einzelposten addiert, Steuern berechnet oder eine Rechnung automatisch summiert, ist ein grundlegend anderes Dokument als ein Dokument, bei dem der Empfänger die Berechnungen selbst durchführen muss. Felder für die automatische Berechnung verwandeln ein statisches Formular in einen funktionierenden Taschenrechner. Der Empfänger gibt Mengen und Tarife ein und das Formular berechnet die Gesamtsummen in Echtzeit vor seinen Augen. Bei Rechnungen, Bestellungen, Spesenabrechnungen und allen Formularen, in denen Zahlen korrekt addiert werden müssen, ist die automatische Berechnung der Unterschied zwischen einem Formular, das dem Benutzer hilft, und einem Formular, das zusätzliche Arbeit verursacht.

Das Hinzufügen von Berechnungsfeldern zu einer PDF-Datei erfordert einen Formulareditor, der JavaScript-basierte Feldskripte unterstützt, da PDF-Berechnungen auf einer vereinfachten Version von JavaScript ausgeführt werden, die in jedem gängigen PDF-Viewer integriert ist. Die Einrichtung umfasst drei Schritte: Erstellen der Eingabefelder, in die Benutzer Zahlen eingeben, Erstellen des Ausgabefelds, in dem das Ergebnis angezeigt wird, und Schreiben des Berechnungsskripts, das sie miteinander verknüpft. Nach der Konfiguration wird die Berechnung automatisch ausgeführt, sobald der Benutzer einen Wert ändert. Kein Speichern, kein Aktualisieren, kein Klicken auf eine Schaltfläche erforderlich.

How to Add Auto-Calculation Fields in a Fillable PDF Form

PDF-Feldtypen und ihre Zusammenarbeit verstehen

Bevor Sie ein Berechnungsskript schreiben, müssen Sie die drei Feldtypen verstehen, die an einer Berechnung beteiligt sind. Textfelder akzeptieren eingegebene Eingaben des Benutzers. Sie können so konfiguriert werden, dass sie nur Zahlen, nur Datumsangaben oder beliebigen Text akzeptieren. Bei Berechnungsformularen sind reine Zahlentextfelder der Standardeingabetyp. Jedes Feld hat einen eindeutigen Namen, auf den das Berechnungsskript verweist. Konsistente Benennung, wie „Artikel1_Menge“, "Item1_Rate" "Item1_Total" macht die Berechnungslogik lesbar und wartbar.

Dropdown-Listen und Optionsfelder können ebenfalls in Berechnungen einfließen. Über ein Dropdown-Menü kann der Benutzer möglicherweise ein Produkt auswählen und der entsprechende Preis wird automatisch in ein Preisfeld aus einer Nachschlagetabelle eingetragen. Mithilfe von Kontrollkästchen können Sie festlegen, ob eine optionale Gebühr enthalten ist. Das Schlüsselkonzept besteht darin, dass jedes Feld mit einem Wert Teil einer Berechnung sein kann. Das Skript liest den aktuellen Wert jedes Eingabefelds, führt die Berechnung durch und schreibt das Ergebnis in das Ausgabefeld.

Ausgabefelder sind normalerweise schreibgeschützt, damit der Benutzer das berechnete Ergebnis nicht versehentlich überschreiben kann. Ein schreibgeschütztes berechnetes Feld schafft eine saubere Trennung zwischen den Zahlen, die der Benutzer steuert, und den Zahlen, die das Formular steuert. Diese Unterscheidung ist wichtig für die Formintegrität. Wenn der Benutzer die Summe bearbeiten könnte, wäre die Berechnung möglicherweise auch nicht vorhanden.

WukongPDF

Versuchen Sie es mit „PDF bearbeiten“.

Keine Installation erforderlich. Funktioniert direkt in Ihrem Browser.

Jetzt starten →

Schritt-für-Schritt: Erstellen eines einfachen automatischen Berechnungsformulars

Beginnen Sie mit der Erstellung Ihrer Eingabefelder. Wählen Sie im Editor PDF-Formulare das Formularfeld-Tool aus und platzieren Sie Textfelder für jeden Wert, den der Benutzer eingeben muss. Bei einer Rechnung kann dies ein Mengenfeld und ein Einzelpreisfeld für jede Position sein. Geben Sie jedem Feld einen klaren, eindeutigen Namen. Vermeiden Sie Leerzeichen und Sonderzeichen in Feldnamen, da JavaScript sie als Variablennamen referenziert. Verwenden Sie stattdessen Unterstriche oder CamelCase: "item1_qty" nicht „Artikel 1 Menge.“

Als nächstes erstellen Sie das Ausgabefeld, in dem die berechnete Summe angezeigt wird. Platzieren Sie es an einer logischen Position, normalerweise am Ende einer Zahlenspalte oder in einem Summenabschnitt. Setzen Sie dieses Feld in den Feldeigenschaften auf schreibgeschützt. Das ist wichtig. Ein bearbeitbares Berechnungsfeld untergräbt den gesamten Zweck der Automatisierung der Mathematik.

Öffnen Sie nun die Berechnungseigenschaften für das Ausgabefeld. Wählen Sie im Editor von WukongPDF das Summenfeld aus, öffnen Sie in den Feldeigenschaften die Registerkarte „Berechnen“ und wählen Sie „Benutzerdefiniertes Berechnungsskript“. Dadurch wird ein Skripteditor geöffnet, in dem Sie das JavaScript schreiben, das die Berechnung durchführt. Eine einfache Einzelpostensumme sieht folgendermaßen aus: event.value = this.getField("item1_qty").value * this.getField("item1_rate").value;. Der "event.value" ist das im Feld angezeigte Ergebnis. "this.getField()" Ruft den aktuellen Wert eines anderen Felds nach Namen ab. Sie können mehrere Berechnungen verketten und zu einer Gesamtsumme addieren: event.value = this.getField("line1_total").value + this.getField("line2_total").value + this.getField("line3_total").value;.

Nachdem Sie das Skript geschrieben haben, testen Sie es sofort. Speichern Sie das Formular, öffnen Sie es in einem PDF-Viewer, geben Sie Zahlen in die Eingabefelder ein und beobachten Sie, wie das berechnete Feld aktualisiert wird. Drücken Sie die Tabulatortaste, um zwischen den Feldern zu wechseln, wodurch die Neuberechnung ausgelöst wird. Geben Sie einen Buchstaben in ein Zahlenfeld ein und sehen Sie, was passiert. Das Skript sollte nicht-numerische Eingaben verarbeiten oder ordnungsgemäß ignorieren. Wenn die Gesamtsumme "NaN" (Keine Zahl) enthält eines der Eingabefelder etwas, das keine Zahl ist, und das Skript benötigt eine Validierungsprüfung. Fügen Sie eine Schutzklausel wie folgt hinzu: var qty = Number(this.getField("item1_qty").value) || 0; Dadurch wird der Feldwert in eine Zahl umgewandelt und der Standardwert auf Null gesetzt, wenn die Konvertierung fehlschlägt, wodurch verhindert wird, dass NaN die Berechnung kaskadiert.

Umgang mit Randfällen: Leere Felder, negative Zahlen und Division durch Null

Ein Berechnungsskript, das perfekt mit Testdaten funktioniert, kann auf peinliche Weise fehlschlagen, wenn ein echter Benutzer das Formular ausfüllt. Der häufigste Fehler ist das leere Feld. Wenn ein Benutzer noch nichts in ein Feld eingegeben hat, ist sein Wert eine leere Zeichenfolge und nicht Null. Die Multiplikation einer leeren Zeichenfolge mit einer Zahl ergibt NaN, das dann auf jede Berechnung übertragen wird, die von diesem Ergebnis abhängt.

Die Lösung besteht darin, jeden Eingabewert auf Null zu normalisieren, wenn er leer ist. Rufen Sie oben in jedem Berechnungsskript jeden Feldwert ab und konvertieren Sie ihn: var qty = this.getField("qty").value; if (qty === "" || isNaN(qty)) qty = 0; Dieses Muster, das konsistent auf jedes Eingabefeld angewendet wird, beseitigt das Problem leerer Felder. Es behandelt auch den Fall, dass ein Benutzer versehentlich einen Buchstaben in ein numerisches Feld eingibt, was andernfalls zu NaN führen würde.

Negative Zahlen erfordern eine politische Entscheidung. Sollte das Formular negative Mengen akzeptieren? In den meisten Geschäftsformularen lautet die Antwort „Nein“, und das Berechnungsskript sollte Folgendes erzwingen: if (qty < 0) qty = 0;. Die Division durch Null ist ein subtileres Problem, das bei Prozent- und Ratenberechnungen auftritt. Wenn ein Feld, das als Nenner dient, Null sein kann, muss das Skript vor der Division prüfen: if (denominator !== 0) { result = numerator / denominator; } else { result = 0; }. Diese Schutzklauseln fügen einige Codezeilen hinzu und verhindern, dass das Formular dem Benutzer verwirrende Fehlerwerte anzeigt.

Erweiterte Berechnungen: Bedingte Logik und Nachschlagetabellen

Grundlegende Arithmetik verarbeitet Einzelpostensummen und Gesamtsummen. Anspruchsvollere Formulare erfordern bedingte Berechnungen, die sich je nach Benutzerauswahl ändern. Ein häufiges Beispiel ist die Steuerberechnung, bei der der Steuersatz vom ausgewählten Staat oder der ausgewählten Provinz abhängt. Das Berechnungsskript liest den Wert eines Dropdown-Felds und wendet die entsprechende Rate an: var state = this.getField("state").value; Var-Rate = 0; if (state === "CA") rate = 0,0725; sonst wenn (state === "NY") rate = 0,04; event.value = Zwischensumme * Rate;

Bei größeren Nachschlagetabellen mit vielen Optionen ist eine Switch-Anweisung oder ein Nachschlageobjekt sauberer als eine Kette von if-else-Bedingungen. var rate = { "CA": 0,0725, "NY": 0,04, "TX": 0,0625, "FL": 0,06 }; var rate = rate[state] || 0; Dieses Muster lässt sich auf Dutzende von Einträgen skalieren, ohne unlesbar zu werden. Der Standardwert Null, bereitgestellt von || Der Operator behandelt Zustände, die nicht in der Nachschlagetabelle enthalten sind, ordnungsgemäß.

Rabattstufen sind ein weiterer häufiger bedingter Anwendungsfall. Wenn die Zwischensumme einen Schwellenwert überschreitet, wenden Sie einen prozentualen Rabatt an: var discount = 0; if (Zwischensumme > 1000) Rabatt = Zwischensumme * 0,10; sonst wenn (Zwischensumme > 500) Rabatt = Zwischensumme * 0,05; event.value = Zwischensumme – Rabatt + Steuer;. Die Berechnung wird jedes Mal ausgeführt, wenn sich ein Feld ändert, sodass der Rabatt automatisch aktualisiert wird, wenn der Benutzer Artikel hinzufügt oder entfernt. Der Benutzer sieht die Preisanpassung in Echtzeit. Dies ist genau das interaktive Erlebnis, das ein Ausfüllbares PDF-Formular wie eine Bewerbung und nicht wie ein Blatt Papier erscheinen lässt.

Testen Sie Ihr Berechnungsformular vor dem Versenden

Eine Berechnungsform, die nicht getestet wurde, ist eine Form, die falsche Zahlen liefert. Durch systematisches Testen werden Fehler erkannt, bevor sie einen Kunden erreichen. Testen Sie zunächst mit Normalwerten: Geben Sie Zahlen ein, die Sie in Ihrem Kopf berechnen können, und überprüfen Sie, ob die Ausgabe übereinstimmt. Testen Sie dann Grenzfälle: Lassen Sie die Felder leer, geben Sie Null ein, geben Sie negative Zahlen ein, wenn die Geschäftsregeln sie ablehnen sollten, geben Sie sehr große Zahlen ein, um auf Überlauf zu prüfen, und geben Sie Text in numerische Felder ein.

Testen Sie es mit mehreren PDF-Viewern. Ein Formular, das in Adobe Acrobat korrekt berechnet wird, verhält sich möglicherweise in der Vorschau auf dem Mac, im integrierten PDF-Viewer eines Webbrowsers oder in einer mobilen PDF-App anders. Jeder Betrachter implementiert die JavaScript-Engine etwas anders. Einige mobile Viewer unterstützen PDF-JavaScript überhaupt nicht und zeigen die Formularfelder ohne Berechnungsfunktion an. Wenn Ihre Zielgruppe mobile Benutzer umfasst, fügen Sie im Formular einen Hinweis hinzu, dass für Berechnungen ein Desktop-PDF-Viewer erforderlich ist, oder stellen Sie als Ersatz eine vorberechnete Referenztabelle bereit.

Testen Sie abschließend den Benutzerworkflow von Anfang bis Ende. Öffnen Sie das Formular, als wären Sie der Empfänger. Füllen Sie es in der Reihenfolge aus, in der ein echter Benutzer es tun würde. Speichern Sie es. Öffnen Sie die gespeicherte Kopie erneut und überprüfen Sie, ob die Berechnungen noch korrekt sind. Drucken Sie es aus und stellen Sie sicher, dass die berechneten Werte auf dem Papier erscheinen. Ein Formular, das auf dem Bildschirm korrekt aussieht, aber leere berechnete Felder ausgibt, ist ein überraschend häufiger Fehlermodus, der dadurch verursacht wird, dass die Druckmaschine Feldwerte anders verarbeitet als der Bildschirmrenderer. Die Stunde, die für gründliche Tests aufgewendet wird, ist nichts im Vergleich zu dem Schaden, der entsteht, wenn man 500 Kunden ein Rechnungsformular schickt, das ihre Gesamtbeträge falsch berechnet.

Wenn eine Tabellenkalkulation das bessere Werkzeug ist

PDF-Formularberechnungen sind leistungsstark, weisen jedoch Einschränkungen auf, die dazu führen können, dass eine Tabellenkalkulation die geeignetere Wahl ist. PDF-Berechnungen können nicht auf externe Datenquellen verweisen. Sie können keine Live-Wechselkurse, Aktienkurse oder Datenbankwerte abrufen. Sie können keine iterativen Berechnungen wie Zielsuch- oder Löserfunktionen durchführen. Sie können aus den eingegebenen Daten keine Diagramme oder Pivot-Tabellen erstellen. Wenn Ihr Formular eine dieser Funktionen erfordert, erstellen Sie die Berechnungslogik in Excel oder Google Sheets und exportieren Sie das Ergebnis in eine PDF-Datei, anstatt zu versuchen, die Tabellenkalkulationsfunktionalität in einer PDF-Datei zu replizieren.

PDF-Berechnungen eignen sich ideal für Formulare, bei denen die Mathematik einfach ist und die Eingaben begrenzt sind: Rechnungen mit festen Einzelposten, Bestellformulare mit bekannten Produktpreisen, Spesenabrechnungen mit vordefinierten Kategorien und Stundenzettel mit Standardstundensätzen. Das Formular leistet eines: Es erledigt es zuverlässig und erfordert keine Schulung für den Empfänger. Der PDF-Editor von WukongPDF bewältigt diesen Sweet Spot gut, indem er die Erstellung von Formularfeldern mit der Unterstützung von JavaScript-Berechnungen in einem einzigen browserbasierten Tool kombiniert. Für den richtigen Anwendungsfall macht ein gut aufgebautes PDF-Berechnungsformular Folge-E-Mails zu Rechenfehlern überflüssig, beschleunigt die Bearbeitungszeit und bietet ein professionelleres Erlebnis als ein statisches Formular mit separatem Taschenrechner.

WukongPDF

Versuchen Sie es mit „PDF bearbeiten“.

Keine Installation erforderlich. Funktioniert direkt in Ihrem Browser.

Jetzt starten →