Die Idee zu diesem Artikel kam mir, weil ich mich beruflich und privat mit Formularen beschäftigt habe, bzw. damit konfrontiert wurde. Im Büro brauchten wir elektronische Formulare für Kasualien, das sind kirchliche Handlungen, wie Taufe, Segnung, Konfirmation, Trauung und Abdankung. Diese haben wir als PDF-Formulare umgesetzt, die (theoretisch) auf allen Rechnern funktionieren sollen, was nicht der Fall ist. Entweder werden sie falsch dargestellt oder, unter Apples iOS, sofort zerstört. Privat durfte ich für mehrere Jahre die Steuererklärung für unseren Verein GNU/Linux.ch ausfüllen. Auch diese PDF-Datei verhält sich, je nach PDF-Reader, völlig unterschiedlich.
Was sind Formulare?
Die Wikipedia definiert den Begriff "Formular" so:
Das Formular (oder Formblatt) ist in Wirtschaft und Verwaltung ein Schriftstück, welches ein auf die allgemeinen Merkmale einer Rechtshandlung zugeschnittenes Muster einer Erklärung enthält, das durch die Einfügung von Individualabreden konkretisiert werden muss.
Äh, das soll eine Definition sein? Das versteht doch kein Mensch. Hier ist meine Definition:
Das Formular ist eine Zusammenstellung von Eingabe- oder Auswahlfeldern, um Daten zu einem bestimmten Sachverhalt zu erfassen. Im Gegensatz zu einem Freitext, wird die das Formular ausfüllende Person bis zu einem bestimmten Grade angeleitet, wie das Formular auszufüllen ist. Das Formular kann in unterschiedlichen Erscheinungsformen vorliegen: als Papierformular, als Datei (z. B.: PDF-Formular, Office-Datei), Eingabemaske einer Computeranwendung oder als Webseite.
Welche Anforderungen sollte ein Formular erfüllen?
Bei der oben genannten breiten Definition, ist es nicht einfach, gemeinsame Anforderungen zu finden. Ich versuche es einmal:
- Ein Formular sollte eine umfangreiche Auswahl von Eingabefeldern unterstützen, wie: Text, mehrzeiliger Text, maskierter Text (E-Mail, Telefonnummer, Datum, etc.), binäre Auswahlen (Checkbox, Radio-Button), Kalender, Dropdown-Auswahl (einfach, mehrfach) usw.
- Die Formularfelder bestehen jeweils aus einem Namen (Label) und der Eingabe- oder Auswahlmöglichkeit und (falls nötig) aus einem erläuternden Text (Tool-Tipp).
- Formulare sollen übermittelt, bzw. referenziert werden können, z. B. per Post, als alleinstehende Datei oder als Link (URI).
- Ein (elektronisches) Formular sollte einem freien und anerkannten Standardformat folgen (DIN, ISO, IEEE, W3C, ODF).
- Der Code zur Darstellung und Verarbeitung des Formulars sollte unter einer freien Softwarelizenz stehen.
Was gibt es?
Ein Formular in Papierform lasse ich aus der nachfolgenden Betrachtung heraus. Ebenso sind Eingabemasken in GUIs irgendwelcher Anwendungen nicht geeignet, um die oben genannten Kriterien zu erfüllen. Wenn wir von Formulardateien reden, ist als Erstes das am weitesten verbreitete Format PDF zu nennen. Das Portable Document Format wird von der PDF Association verwaltet und ist mit der ISO-Norm 32000 spezifiziert. Meiner Meinung nach, ist das PDF-Format völlig überladen und enthält weit mehr als die Fähigkeit, Formulare darzustellen. Zwar gibt es mit dem Adobe Reader eine Referenzimplementierung, welche jedoch proprietär ist und somit die oben genannten Anforderungen nicht erfüllt.
Dann gibt es das OASIS Open Document Format for Office Applications (OpenDocument, ODF), welches ein international genormter quelloffener Standard für Dateiformate von Bürodokumenten wie Texten, Tabellendokumenten, Präsentationen, Zeichnungen, Bildern und Diagrammen ist. Wenige wissen, dass es beim Open Document Format den Untertyp XML-Formulardokument gibt. Zum Beispiel in LibreOffice kann man ein Formular in diesem Format erstellen und mit allen Anwendungen öffnen und bearbeiten, die das ODF-Format unterstützen (LibreOffice, ONLYOFFICE, Microsoft Office, usw.). Hierzu gibt es einen Artikel von uns.
Probiert es aus. Ihr werdet schnell graue Haare bekommen, weil die Formularerstellung weder intuitiv noch benutzerfreundlich ist.
Tatsächlich wird ein solches Formular nicht in einem eigenen Format, sondern als ODT (Textdokument) gespeichert.
ONLYOFFICE ermöglicht auch, Formulare zu erstellen. Doch diese werden als PDF-Dokumente gespeichert, womit wir wieder bei den Unzulänglichkeiten von PDF-Formularen angekommen sind. Meine Suche nach lokalen "Open Source Form Builder" in den Arch-Repos und im Internet hat keine sinnvollen Ergebnisse gebracht. Somit habe ich keine brauchbare Anwendung gefunden, mit der man einfach Formulare bauen kann. Ja, man kann mit Postscript oder Python Formulare bauen, aber solche Bemühungen laufen immer wieder auf das PDF-Format hinaus.
Wo sind die freien Formate und die freien Anwendungen, um auf dem Computer Formulare erstellen zu können?
Anscheinend gibt es keinen Bedarf dafür. Die einen geben sich mit PDF-Formularen zufrieden, die anderen weichen auf Weblösungen aus. Von letzteren gibt es mehr als genug. Etwa den Formular-Generator bei CryptPad.
Dieses Werkzeug ist kinderleicht zu bedienen und erlaubt das Teilen eines öffentlichen Links, damit die Zielpersonen das Formular ausfüllen können. Der Umfang der Formularelemente ist beschränkt,, aber ausreichend.
Selbstverständlich gibt es auch bei der Nextcloud eine App für das Erstellen von Formularen.
Das Nextcloud-Plugin heisst Nextcloud-Forms und erfüllt viele der oben genannten Anforderungen. Die Auswahl an Formularelementen entspricht in etwa dem, was wir vorhin bei CryptPad gesehen haben:
Was hier fehlt, ist die Möglichkeit, Freitext einzugeben und zu formatieren. Das mag euch als Nebensache erscheinen, zeigt jedoch einen wichtigen Unterschied zwischen Formular und Umfrage auf. Mit dem CryptPad-Formular kann man (mit Einschränkungen) ein richtiges Formular erstellen, weil es nicht nur Abfrageelemente gibt und weil (in Grenzen) Markdown-Formatierung möglich ist. Nextcloud-Forms beschränkt sich nur auf Fragen und erlaubt keine Formatierung.
Der Vollständigkeit halber möchte ich die Server-Anwendung LimeSurvey erwähnen, wenn ihr an einem guten und umfangreichen Werkzeug interessiert seid, um professionelle Umfragen zu erstellen. Selbstverständlich kann man diesen Dienst selbst hosten.
Fazit
In diesem Artikel ging es mir darum, ein freies Format für Formulare zu finden. Idealerweise mit Anwendungen, die ein solches Format bearbeiten können. Ich habe weder das Format, noch die Anwendungen gefunden, was mich ein wenig ratlos zurücklässt. Als beste Varianten sehe ich in Web-basierten Lösungen wie CryptPad-Forms oder Nextcloud-Forms. Dabei gilt zu beachten, ob man Formulare oder Umfragen erstellen möchte, was nicht identisch sind.
Nun hoffe ich auf die Schwarmintelligenz der Community. Gibt es wirklich kein Open Forms Format (OFF) mit zugehörigen Anwendungen?
Titelbild: https://pixabay.com/photos/tax-office-accounting-invoice-233345/
Quellen: im Text







Hallo Ralf,
selbst wenn hier jetzt einer ein passendes Programm kennt, nutzt das nicht viel, solang die Behörden (zu mindesten hier in DE) nicht ansatzweise im 21 Jahrhundert angekommen sind. Mein Bruder (Bürgergeldempfänger wegen extremen Gesundheitsproblem), hat das erst Ende letzten Jahres erlebt.🙄
Wollte wegen seiner Kondition seinen neuen Antrag beim Amt online abgeben. Gibt auch ein Webformular dafür! Ausgefühl und dann am Ende die Meldung, das er das ganze jetzt bitte Ausdruckt und per FAX 🤦♂️🙄🙄 oder per Brief ans Amt schickt.😏
Ich kann das total nachvollziehen, ich leide auch an der Situation. Es gibt kaum Tools die zufriedenstellend sind und PDF-Formulare sind einfach nicht tot zu kriegen. Dokuemtenzentrierte Formulare sind nämlich nicht wirklich „digital“, sondern es entsteht ein Lücke zwischen den Daten und der Übertragung und deren Speicherung. Es müsste grundsätzlich eine standardisierte Schittstelle im Web (API) mit sicherer Datenübertragung (Transportverschlüsselung) geben, die man ggf. selber hosten kann. Nexcloud Forms geht schon fast in die Richtung, aber ich finde, hier fehlen noch Möglichkeiten, diese DSGVO-konform anzubieten. Vielleicht interesiert Dich (Ralf) noch der heise-Artikel (leider Paywall), den ich vor kurzen las, wie man PDF-Formulare mit bash-Script in einer Kombination pdfcpu, jq, curl die Daten als JSON ausließt und dann per REST-Api und curl an einen Server schickt. Aber auch hier bleibt die Lücke offen, da hätte man auch direkt ein Webformular verwenden können.
> Welche Anforderungen sollte ein Formular erfüllen?
Ich denke eine Anforderung, die ich noch hätte, wäre Validierung der Eingaben.
HTML eignet sich ziemlich gut für alle möglichen Arten von Formularen, kann gut validieren, siehe auch ausführliche Anleitung hier.
Aber, es fehlt ein bisschen die mögliche lokale Speicherung oder Bearbeitung, wenn Formulare nicht vollständig in einer Sitzung bearbeitet werden sollen. Obwohl … Ich habe es gerade mal lokal mit diesem Formular ausprobiert (in einer Datei
/tmp/test.html). Und es funktioniert, man kann die Formularfelder ausfüllen und mittels Browser die HTML-Datei speichern, und tatsächlich werden auch die eingegebenen Werte gespeichert. Ob es auch noch eine Lösung gibt, die lokal die Ergebnisse speichern kann? Ich denke dafür würde sich ein Format wie JSON eignen …Ansonsten, ist HTML gut unterstützt von verschiedensten Browsern, Hauptpunkt (aber sicher lösbar) ist die Übertragung der Eingaben, die oft als request zu einem Server funktioniert, aber auch anders gelöst werden könnte (z.B. JSON, oder HTML-Datei, oder Link, oder was auch immer).
SKIZZE: Ein "FORMULAR" ist Papier, auf dem –idealerweise– planmäßig, systematisch und strukturiert 'Information' erfasst wird. ABER: Leider könnte eine derartige Definition heute tatsächlich nicht länger hinreichend sein.
Zu trennen ist heute vermutlich der 'Datenteil' vom 'Anwendungs-' und 'Darstellungsteil', also eine "Datenbank" und/ oder XML oder JSON Datei, einer Komponente die es bearbeitet, sowie eine zur Darstellung als Text-/ PDF- (o.ä.) Datei, oder eben im Browser auf dem Bildschirm.
Ein hilfreiches Beispiel mag die "E-Rechnung" darstellen. Soweit ich es verstanden hätte, zählt dort aktuell -mehr oder weniger willkürlich- der reine Datenteil (XML) als Formulardokument.
Eventuell wäre demnach eine VIERTE Komponente nötig, die gewährleistet daß Daten, Anwendung und Darstellung "konsistent" sind, bzw. daß halt nicht "manipuliert" wird.
Also mir ist so ein Format auch nicht explizit bekannt.
Als "kleinsten gemeinsamen Nenner" würde ich Webformulare vorschlagen. Ob du das mit einer App oder in PHP o.ä. selbst baust, hängt von deinem Anwendungsfall ab. PHP-Formulare und eine Datenbank dahinter waren ja sonst immer beliebte Themen für Webentwicklung, Einstieg und so. Das Script kann aber mit den Eingaben auch ganz dynamisch vorgehen und in einzelne Dateien, beispielsweise Markdown mit Frontmatter abspeichern. Je nachdem, was du willst, würde ich in diese Richtung vorgehen.
Dann kann dir das Endgerät theoretisch egal sein. PDF ist eigentlich auch ein "kaputtes" Format. Viele Möglichkeiten, und jeder Softwarehersteller setzt es anders um. Versuche mal, PDFs in einem Reader mit Markierungen und eigenen Notizen zu versehen. Wenn du Glück hast, öffnet ein zweiter Reader das "versehentlich" (Ironie) und kann es zeigen. Wenn ich sowas bei PDFs brauche – lesen und Inhalte markieren – dann bleibe ich damit entweder auf dem Android Tablet (Import in Samsung Notes oder Bearbeiten mit "Right PDF Reader") oder bleibe unter KDE Okular damit. In der c't gab es kürzlich einen Artikel dazu, und es gibt wohl verschiedene Formular-Ansätze, die selbst Acrobat-Versionen nicht ganz beherrschen. In LibreOffice etc. habe ich das nie ausprobiert.
Glaube ebenfalls das HTML wahrscheinlich der kleinste und für die Aufgabe am besten geeignete gemeinsame Nenner ist. HTML ist frei und offen, also dadurch für alle Beteiligten wirklich recht gut geeignet. XML als Obermenge ist IMHO etwas schwieriger zu benutzen. Obwohl es zwar einen XML Standard gibt, haben sich dort leider unterschiedliche Dialekte herausgebildet ... ähnlich wie die Web Browser früher nicht alle oder zum Teil sogar unterschiedliche HTML Tags unterstützt haben.
Falls Du Anwendungen suchst um Formulare zu erstellen, dann guck bitte mal hier: https://neoxion.net/forms-formulars/
Falls Du Anwendungen suchst um Umfragen oder ein Quiz zu erstellen, dann guck bitte mal hier: https://neoxion.net/surveys-polls-quizzes/
Viele dieser Dienste sind kostenlos und einige basieren sogar explizit auf Open Source Code.