In den nächsten Jahren wird es für immer mehr Unternehmen und Selbstständige zur Pflicht, E-Rechnungen ausstellen zu können. Große Unternehmen nutzen dafür maßgeschneiderte Software. Aber was können kleine Selbstständige und Freiberufler tun, die nur wenige Rechnungen im Monat schreiben, dies bisher manuell gemacht haben und auch weiterhin die Nutzung komplexer Software scheuen? Eine mögliche Lösung auf Basis von Libreoffice möchte ich hier vorstellen. Die Anleitung bezieht sich auf Linux Mint 22. Unter Windows soll die Lösung ebenfalls funktionieren.
Heutzutage erhalten wir Rechnungen häufig noch als von Menschen lesbare PDF-Dateien, deren Inhalt jedoch schlecht automatisch auszuwerten ist. Zukünftig werden diese "digitalisierten Papierrechnungen" vermutlich mehr und mehr durch strukturierte XML-Dateien nach dem XRechnung-Format ersetzt werden. Buchhaltungssoftware kann dann beispielsweise Überweisungen per Klick veranlassen, da auch die Kontoverbindungen maschinenlesbar hinterlegt sind.
Für die Übergangszeit wurde ZUGFeRD entwickelt (Zentraler User Guide des Forums elektronische Rechnung Deutschland). Ein Format, das die klassische PDF-Rechnung um eine XML-Datei ergänzt. Die XML-Datei mit den maschinenlesbaren Daten wird dabei unsichtbar in die PDF-Datei eingebettet und kann von entsprechender Software wie dem Quba-Viewer erkannt, ausgelesen und verarbeitet werden.
Wer auf dieser Seite die aktuelle Version der Datei XRechnung_Extension_xxxx.zip
herunterlädt und in einen neuen Ordner entpackt, enthält einerseits die Datenbank XRechnung_Extension.odb
für Libreoffice und daneben eine Rechnungsvorlage im ott
-Format sowie eine ausführliche Anleitung.
Da diese Erweiterung Makros nutzt, sollte zunächst in Libreoffice im Menüpunkt Extras —› Optionen der Punkt Sicherheit angeklickt werden, dann rechts auf die Schaltfläche Makrosicherheit geklickt und dort Mittel ausgewählt werden. Wer nicht bei jedem Start des Makros gefragt werden will, kann den Ordner mit den entpackten Dateien im Reiter Vertrauenswürdige Quelle unter Vertrauenswürdige Speicherorte hinzufügen.
Zudem muss sichergestellt sein, dass die nötigen Zusatzpakete installiert sind. Unter Linux Mint (Debian, Ubuntu) musste ich dafür das Paket libreoffice-sdbc-firebird
nachinstallieren. Für das Erstellen einer ZUGFerd-Datei ist zudem das Paket pdftk
notwendig.
Danach kann die odb
-Datei in Libreoffice geöffnet werden. Es erscheint im Idealfall eine Eingabemaske wie oben zu sehen. Oben links, wo in blauer Schrift Kunde XRechnung erweitert steht, kann zwischen verschiedenen Eingabemasken gewechselt werden. Im Punkt Einstellungen sind zunächst Angaben zur eigenen Firma einzutragen. In den mit Kunde beginnenden Punkten können im oberen Teil Angaben zu den eigenen Kunden eingepflegt werden. Dabei hängt es von den eigenen Bedürfnissen und Anforderungen ab, welche Variante gewählt wird (in vielen Fällen dürfte ZUGFeRD der XRechnung vorzuziehen sein). Alle Kunden erhalten ihren eigenen Datensatz. Die vorhandenen Beispielangaben können dafür überschrieben werden. Analog verhält es sich mit den Beispielrechnungen und ihren Rechnungsposten in der unteren Hälfte des Fensters.
Mit Klick auf Rechnung erstellen wird nun Writer aufgerufen und dort die fertige Rechnung generiert. Das Makro fragt per Dialogbox, ob die Rechnung gespeichert und an das Mailprogramm weitergeleitet werden soll. Für die Speicherung wird dabei automatisch im Ordner mit der Datenbank ein Unterordner Archiv angelegt und darin zeitlich sortiert die Rechnungen. Einmal als reine PDF-Datei, als PDF mit eingebettetem XML und als reine XML-Datei sowie im Original als odt
-Datei.
Tipp: Meine Erfahrung ist, die odb
-Datei regelmäßig zu sichern, um Datenverluste zu vermeiden. Sie enthält die Datenbank mit Kunden- und Rechnungsdaten. Zudem sollte klar sein, dass die Erstellung von Rechnungen mit dieser Erweiterung nur sehr bedingt die Buchhaltung ersetzt. Wer eine umfangreichere Lösung sucht, die dennoch quelloffen ist, relativ leicht verständlich ist und neben Windows und Mac OS X auch unter Linux läuft, sollte sich einmal Fakturama anschauen. Weitere Informationen zur Einrichtung von Fakturama für die E-Rechnung bietet beispielsweise diese externe Seite.
Das Aussehen der Rechnung kann angepasst werden, indem die Datei Vorlage_Rechnung_Extension.ott
geöffnet wird. Beispielsweise können Freiberufler ohne Mitarbeiter die Zeilen zu Mitarbeitern entfernen. Auch die Schriftart lässt sich ändern. Wichtig ist, die Daten anschließend wieder unter diesem Dateinamen als Vorlage zu speichern (im Speichern-Dialog unten rechts ott
-Datei auswählen), damit die Änderungen übernommen werden.
Mich persönlich störte, dass stets das Mailprogramm bei Rechnungserstellung geöffnet wurde. Dies muss im Quellcode des Makros manuell auskommentiert werden. Dafür (oder für andere Detailanpassungen) wechselt man ins Fenster von Libreoffice Base, das im Hintergrund bereits geöffnet sein sollte. Mit dem Menüpunkt Extras —› Makros —› Makros bearbeiten erscheint ein weiteres Fenster. Links lässt sich der Punkt XRechnung_Extension.odb
ausklappen. Darin öffnet man ZUGFeRD
und doppelklickt auf ein beliebiges Skript. Mit Strg-F lässt sich der Skriptcode nun durchsuchen. Die Zeile StartMail(oForm,stFile,stTarget)
ist auszukommentieren. Sie muss hinterher lauten:
REM StartMail(oForm,stFile,stTarget)
Danach den Editor mit dem Quelltext schließen.
Mit etwas Erfahrung lassen sich noch viele weitere Änderungen im Fenster von Libreoffice Base durchführen. Beispielsweise lassen sich durch Klick auf Tabellen und dann mit Doppelklick auf tbl_Anzahl_Code
die Einheiten für die eigenen Leistungen anpassen, z.B. die Anzeige von Stunden statt Stunde in der Rechnung.
Es gibt einige Validatoren für ZUGFeRD und XRechnung im Internet, mit denen die Gültigkeit der erstellten Rechnung geprüft werden kann. Ein Beispiel ist Winball. In meinem Fall war die Prüfung erfolgreich, jedoch übernehme ich keien Garantie dafür, dass die mit dieser Lösung erstellten Rechnungen tatsächlich allen rechtlichen Vorschriften genügen und korrekt ausgestellt werden.
Ob die XML-Daten in die PDF-Datei eingebettet wurden, lässt sich mit dem Kommandozeilenwerkzeug pdfdetach
prüfen. Es ist unter Debian-basierten Distributionen wie Linux Mint Bestandteil des Pakets poppler-utils
. Die Syntax lautet: pdfdetach -list Datei.pdf
.
This article describes how to write an invoice that includes all relevant values as structured XML data as required by German law (XRechnung format) using a Libreoffice extension. This data can also be embedded into the PDF file of the invoice itself (which is then the ZUGFeRD format). The XML structure follows an European norm.
The article aims at small businesses and freelancers who only write a few invoices a month and want to avoid using complex ERP software.
Sie finden hier Kontaktmöglichkeiten und weitere Informationen über mich.