ubuntuusers.de

Programm zum Erstellen von E-Rechnungen gesucht

Status: Ungelöst | Ubuntu-Version: Ubuntu 22.04 (Jammy Jellyfish)
Antworten |

banause

Anmeldungsdatum:
17. November 2009

Beiträge: 303

Hallo Forum,

ich suche ein Programm, mit dem ich ab Januar 2025 E-Rechnungen erstellen kann. Da ich aber pro Jahr maximal 10 (zehn) Rechnungen zu erstellen habe, möchte ich mir kivitendo nicht antun. Zum Stichwort gibt es hier im Forum lediglich 2 Hits.

Hat jemand einen Tipp für mich?

Vielen Dank.

Gruß,

banause

Stichworte E-Rechnung, XRechnung, Zugferd

Dimanche Team-Icon

Ikhayateam

Anmeldungsdatum:
20. Juli 2007

Beiträge: 2168

Ich kenne mich mit der Materie nicht aus, aber vll. helfen dir diese beiden Links weiter:

Linux Magazin online

Für Gründer

Lidux

Anmeldungsdatum:
18. April 2007

Beiträge: 16927

Hallo banause,

Es gibt für Libre Office ein "Script" mit Datenbankanbindung der dies realisieren könnte .....

Gruss Lidux

sh4711

Anmeldungsdatum:
13. Februar 2011

Beiträge: 1285

Lidux schrieb:

... Es gibt für Libre Office ein "Script" mit Datenbankanbindung der dies realisieren könnte .....

https://de.blog.documentfoundation.org/2024/02/22/mit-libreoffice-xrechnungen-auslesen-und-erstellen/

Auch interessant, recht aktuell zusammengefasst mit weiterführenden Links:
https://t3n.de/news/e-rechnung-pflicht-unternehmer-freelancer-2025-1646280/#Wer_muss_wann_mit_ERechnungen_umgehen_koennen

Lidux

Anmeldungsdatum:
18. April 2007

Beiträge: 16927

Hallo banause,

Online geht dieses auch mit pdf24-creator mit dem pdf24-tool .... vielleicht auch unter wine mit der .exe.

Gruss Lidux

banause

(Themenstarter)

Anmeldungsdatum:
17. November 2009

Beiträge: 303

Hallo Lidux, ich kam leider noch nicht dazu, zu antworten.

Auf Online-Dienste möchte ich hierbei verzichten.

Das Script für Libre-Office scheint nur die XRechnung zu beherrschen. Da wäre schon arg blöd, jedesmal einen Reader bemühen zu müssen. Ich hatte vergessen das zu schreiben, klar, ich möchte gerne Zugferd-Rechnungen erstellen, damit man die auch barrierefrei direkt ohne Lesehilfe lesen kann.

Danke und Gruß,

banause

Lidux

Anmeldungsdatum:
18. April 2007

Beiträge: 16927

Hallo banause,

Also FAKTURAMA oder PDF24-Creator mit Wine (falls dies funktioniert)

Gruss Lidux

shiro Team-Icon

Supporter

Anmeldungsdatum:
20. Juli 2020

Beiträge: 1392

Das Script für Libre-Office scheint nur die XRechnung zu beherrschen.

So schnell würde ich an deiner Stelle nicht aufgeben.

Das Datenbank-Macro der Libre-Office Lösung erstellt doch eine pdf Datei mit Hilfe des Templates und der in der DB abgelegten Daten. Somit werden dir bereits die pdf und xml Datei bereit gestellt. Mit PDF/A-3 kannst du doch beliebige Compound Documente erstellen. Das ZUGFeRD pdf ist doch auch nichts anderes, was du mit einem geeigneten pdf Reader oder "Quba" auch feststellen kannst.

Ich würde an deiner Stelle ein wenig "gs" einsetzen, um die erstellte pdf-Datei mit der erstellten xml Rechnung zu verquicken.

shiro Team-Icon

Supporter

Anmeldungsdatum:
20. Juli 2020

Beiträge: 1392

So, mich hat das Thema PDF/A-3 und die Compound Documents doch nun etwas mehr interessiert. Aus diesem Grund habe ich mir die Sachlage in Bezug auf ZUGFeRD und XRechnung etwas genauer angeschaut.

Beide Varianten verfolgen ja prinzipiell den gleichen Ansatz verwenden aber unterschiedliche XML Namespaces. Aus diesem Grund habe ich mir zwei Beispiele generiert.

  • ZUGFeRD-invoice ist eine normale pdf-Datei mit dazugehöriger xml, die den ZUGFeRD Namespace verwendet.

  • R-2023-0001_2023-11-11 sind 3 Dateien (odt,pdf,xml), die mit Hilfe des LibreOffice DB Macros und einer Template-Datei erstellt worden sind.

Nun ging es darum die jeweilige pdf Datei zu einer PDF/A-3 Datei mit eingebetteter xml Datei mittels "gs" zu konvertieren.

Für PDF/A-3 war der Farbraum zu definieren. Dies habe ich mit der default "rgb.icc" von "gs" gemacht. Da kann man sich dann nach Belieben austoben.

Der eigentliche Gehirnschmalz steckt in "zugferd.ps", dessen Aufbau in dieser Webseite sehr übersichtlich und leicht verständlich beschrieben ist (Klasse!!!).

Ich habe daher noch das folgende Script erstellt, was die "Rechnungsnummer" ($1) auswertet und eine compound PDF/A-3 Datei erzeugt.

#!/bin/bash
# Beispiel für die erstellung eines compound pdf documents analog zu ZUGFeRD
#
# Als Beispiel wird die erzeugte Rechnung mit dem LibreOffice DB Makro (siehe:
#   https://de.blog.documentfoundation.org/2024/02/22/
#                     mit-libreoffice-xrechnungen-auslesen-und-erstellen/ )
# verwendet. Dies sind die Dateien 
# - R-2023-0001_2023-11-11.{odt,xml,pdf}
# - rgb.icc (siehe /usr/share/color/icc/ghostscript/default_rgb.icc)
# - zugferd.ps (siehe https://git.ghostscript.com/
#                     ?p=ghostpdl.git;a=blob_plain;f=lib/zugferd.ps)
#
# $1 = Rechnungsnummer (default: R-2023-0001_2023-11-11)
#

zugferd=$HOME/Downloads/x/tst      # Anpassen !!!
rnr=${1:-R-2023-0001_2023-11-11}

gs --permit-file-read=$zugferd/          \
   -sDEVICE=pdfwrite                     \
   -dPDFA=3                              \
   -sColorConversionStrategy=RGB         \
   -sZUGFeRDXMLFile=$zugferd/$rnr.xml    \
   -sZUGFeRDProfile=$zugferd/rgb.icc     \
   -sZUGFeRDVersion=2p1                  \
   -sZUGFeRDConformanceLevel=BASIC       \
   -o $zugferd/$rnr.zugferd.pdf          \
   $zugferd/zugferd.ps                   \
   $zugferd/$rnr.pdf

Die erzeugte "$rnr.zugferd.pdf" kann man sich mit einem geeignetes PDF-Viewer (z.B. firefox oder Acrobat-Reader) anschauen und sich den "Anhang" (die xml-Datei) anzeigen lassen. Ich habe mir hierfür einen kleinen Launcher (Quba-Viewer) erstellt, damit dies auch einfach mit Mausklick im Datei-Explorer (hier: thunar) gemacht werden kann.

Der Quba-Viewer zeigt in einem geteilten Fenster links die pdf und rechts die xml Information an. Ein Beispiel mit dem einfachen Acrobat-Reader und Quba ist als Screenshot beigefügt.

Wie in der "zugferd.ps" beschrieben, wird in der pdf Datei der xml Anhang als "factur-x.xml" eingetragen (wegen der 2p1 Version). Das kann man aber nach Belieben anpassen.

Zum Nachspielen habe ich die erforderlichen "Testfiles" in einer zip Datei beigefügt. Der Aufruf für die ZUGFeRD Variante wäre

$ . gs-zugferd.sh ZUGFeRD-invoice

und der Aufruf für die Variante "XRechnung" wäre

$ . gs-zugferd.sh R-2023-0001_2023-11-11
gs-zugferd.zip (178.5 KiB)
Download gs-zugferd.zip
Bilder

shiro Team-Icon

Supporter

Anmeldungsdatum:
20. Juli 2020

Beiträge: 1392

...-Rechnungen erstellen, damit man die auch barrierefrei direkt ohne Lesehilfe lesen kann.

Ich bitte um Entschuldigung, dass ich mich für den internen Aufbau der ZUGFeRD Rechnung so interessiert hatte und die einfach Lösung für die XRechnung nicht erwähnt habe.

Wenn du eine PDF-Rechnung mit integrierter XRechnung versenden willst, damit die Person die pdf-Ausgabe leicht lesen kann und ihr die XRechnung (xml) als Attachment zur rechnergestützten Weiterverarbeitung beifügen willst, geht das natürlich auch ganz einfach mit Poppler:

$ # Beispiel XRechnung:
$ rnr=R-2023-0001_2023-11-11
$ pdfattach "$rnr.pdf" "$rnr.xml" "$rnr.comp.pdf"

Die "$rnr.comp.pdf" Datei ist nun eine normal lesbare pdf-Rechnung, die als Anhang die XRechnung "$rnr.xml" hat. Diese pdf Datei kann man dann per eMail versenden.

Wenn der Empfänger die .comp.pdf Datei öffnet (unter Windows mit dem Acrobat Reader oder unter Linux mit dem FireFox oder Quba), so kann er sich links den Anhang anschauen und speichern sowie mit einem Weiterverarbeitungsprogramm öffnen. Für ein automatisches Extrahieren der XRechnung kann ebenfalls Poppler (das gibt es auch unter Windows) verwendet werden:

$ pdfdetach -save 1 "$rnr.comp.pdf"

Lidux

Anmeldungsdatum:
18. April 2007

Beiträge: 16927

Hallo shiro,

Bei den X-Rechnung kannst du doch einfach das OpenXRechnungsTool nehmen und damit eine PDF erzeugen. Bei der ZUGFeRD Rechnung ist doch immer ein PDF enthalten ....

Habe mal mit WINE den PDF24 Creator installiert, d.h. leider lässt sich das PDF24Tool nicht aufrufen. Hier wird wahrscheinlich ein installierter Edge benötigt ....

PS: Die Erstellung einer E-Rechnung (beide Varianten) ist mit dem PDF24Tool unter Windows recht einfach und sehr gut gelöst. Auch mit Kappung der Internetverbindung funktioniert dies .... wie das Abgreifen der Daten bezüglich Firma (beim Online Tool werden die Rechnungen nämlich eine gewisse Zeit auf deren Server gespeichert) und Microsoft danach ist entzieht sich meiner Kenntnis.

Bei der Versendung per EMail liegen die Daten ja recht offen, d.h. wäre da eigentlich eine Verschlüsselung lt. DSGVO erforderlich (insbesondere die Rechnungen die über die Finanzämter bzw. "zentralen Stelle" gehen) ?

Gruss Lidux

sh4711

Anmeldungsdatum:
13. Februar 2011

Beiträge: 1285

banause schrieb:

... Das Script für Libre-Office scheint nur die XRechnung zu beherrschen. Da wäre schon arg blöd, jedesmal einen Reader bemühen zu müssen.

Neee, das ist nicht blöd. Du kannst ja einfach zwei Dateien versenden eine "MeineRechnungsnummer.pdf" und "MeineRechnungsnummer.xml".
Das müsste auch problemlos mit dem genannten libreoffice Script laufen, denn es heißt hier:

... Neben der Datenbank wird eine Writer-Vorlage für eine herkömmliche Rechnungserstellung über die Datenbank genutzt. Das Ganze ist mit einer ausführlichen Anleitung versehen. ...

Also bitte mal die Anleitung lesen.

Aber wenn du möchtest kannst du natürlich auch

... gerne Zugferd-Rechnungen erstellen, ...

Du müsstest dir das eigentlich auch mit einem calc Sheet ganz ohne Datenbak selber programmieren können. Mir liegt jetzt Zugpferd nicht vor ... mit xRechnung könntest du wie folgt dir einen String zusammen setzen und am Ende abspeichern ungefähr so:

Sub Main
Dim oSheet As Object
Dim xml As String

oSheet = ThisComponent.Sheets(0)

xml = "<?xml version=""1.0"" encoding=""UTF-8""?>" & Chr(10)
xml = xml & "<ubl:Invoice xmlns:cac=""urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2""" & Chr(10)
xml = xml & "             xmlns:cbc=""urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2""" & Chr(10)
xml = xml & "             xmlns:ubl=""urn:oasis:names:specification:ubl:schema:xsd:Invoice-2""" & Chr(10)
xml = xml & "             xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance""" & Chr(10)
xml = xml & "             xsi:schemaLocation=""urn:oasis:names:specification:ubl:schema:xsd:Invoice-2 http://docs.oasis-open.org/ubl/os-UBL-2.1/xsd/maindoc/UBL-Invoice-2.1.xsd"">" & Chr(10)
xml = xml & "   <cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0</cbc:CustomizationID>" & Chr(10)
xml = xml & "   <cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>" & Chr(10)
xml = xml & "   <cbc:ID>" & oSheet.getCellRangeByName("G9").String & "</cbc:ID>" & Chr(10)
xml = xml & "   <cbc:IssueDate>" & Format(oSheet.getCellRangeByName("G10").Value, "yyyy-mm-dd") & "</cbc:IssueDate>" & Chr(10)
xml = xml & "   <cbc:DueDate>" & Format(oSheet.getCellRangeByName("G11").Value, "yyyy-mm-dd") & "</cbc:DueDate>" & Chr(10)
xml = xml & "   <cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>" & Chr(10)  'hart codiert 
xml = xml & "   <cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>" & Chr(10)  'hart codiert 
xml = xml & "   <cbc:BuyerReference>" & oSheet.getCellRangeByName("G12").String & "</cbc:BuyerReference>" & Chr(10)
xml = xml & "</ubl:Invoice>" & Chr(10)

Dim fxml As Integer
fxml = FreeFile
' Open oSheet.getCellRangeByName("G9").String & ".xml" For Output As fxml
Open "/home/patrick/mydata.xml" For Output As fxml
Print #fxml, xml
Close fxml

MsgBox "XML exportiert!"
End Sub

Ist natürlich ziemliche Fleißarbeit und das mit der String Addition ist natürlich nicht schön und fehleranfällig ... eben quick and dirty

Lidux

Anmeldungsdatum:
18. April 2007

Beiträge: 16927

Hallo sh4711,

Irrtum meinerseits in meiner Antwort. Richtig: Zugpferd ist eine PDF in der die E-Rechnung "unsichtbar" eingebettet ist.

Gruss Lidux

shiro Team-Icon

Supporter

Anmeldungsdatum:
20. Juli 2020

Beiträge: 1392

Zugpferd ist eine PDF in der die E-Rechnung "unsichtbar" eingebettet ist.

Na ja, so ganz stimmt diese Aussage nicht. Die .xml Datei ist nicht "unsichtbar" (siehe Screenshot eines pdf-Viewers in meinem vorherigen Post).

Es ist ein normales pdf Attachment, dem man noch ein paar Metadaten spendiert hat, damit Tools wie "Quba-Viewer" diese bei der parallelen Ansicht akzeptieren.

Das ZUGFeRD xml verwendet den NameSpace 'rsm="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100"'. Die XRechnung verwendet 3 NameSpaces von "urn:oasis:names:specification:ubl:schema:xsd:{Invoice-2,CommonAggregateComponents-2,CommonBasicComponents-2}".

Beide xml Dateien kann mal als Attachment einer normalen pdf Datei anhängen, auch wenn man schon den Standard "PDF/A-3" verwenden sollte. Rechtlich relevant ist sowieso nur die xml Datei. Die pdf Darstellung ist nur für einige Menschen aber leichter lesbar. Wie ich oben gezeigt habe, kann man die pdf-Rechnung stets mit der xml Rechnung versehen und somit neben ZUGFeRD auch XRechnung als Compound Document in einer pdf-Datei verpackt verschicken. Natürlich kann man auch beide Dateien (pdf und xml) in einer Mail als Anhang beifügen.

Dimanche Team-Icon

Ikhayateam

Anmeldungsdatum:
20. Juli 2007

Beiträge: 2168

banause schrieb:

ich suche ein Programm, mit dem ich ab Januar 2025 E-Rechnungen erstellen kann. Da ich aber pro Jahr maximal 10 (zehn) Rechnungen zu erstellen habe, […]

Grade bei Heise gefunden. Da du vermutlich ein Kleinunternehmer bist, wird es dich sowohl interessieren wie auch betreffen.

Antworten |