Die Rechnung muss nicht zwingend als PDF gespeichert werden. Es muss lediglich sichergestellt sein, dass eine nachträgliche Veränderung durch den Benutzer ausgeschlossen ist (auch PDF's lassen sich ändern), oder eben, wenn dieser sich von "außen" an den Daten zu schaffen macht, diese Manipulation feststellbar ist. Ich löse diese mittels einer Checksumme und einem Hash über die kompletten Daten einer Rechnung.
Wichtig ist halt, dass du als Softwarehersteller über dein Programm dem Nutzer nicht die Möglichkeit der Manipulation fakturierter Rechnung in die Hand gibt's, und eben eine Manipulation ggf. feststellen kannst. Für die Sicherheit seiner Datenbank (o.ä.) ist der Nutzer selbst zuständig, in welcher Form (Zugriffsrechte etc.) er Manipulation durch Angestellte unterbindet.
Das ist ein interessanter Aspekt.
Aber was passiert, wenn deine Software eine Manipulation feststellt? Kommt dann einfach ein Warnhinweis? Kann man dann nicht trotzdem die Rechnung manipulieren und den Warnhinweis einfach ignorieren?