PDF-Daten in einer Datenbank speichern

Schritt-für-Schritt-Anleitung: Rechnungsdaten automatisch in eine Datenbanktabelle schreiben

Diese Anleitung zeigt am Beispiel eines Rechnungseingangsbuchs, wie Automatic PDF Processor für jede eingehende Rechnung automatisch einen Datensatz in eine Datenbank schreibt: Rechnungsnummer, Rechnungsdatum, Betrag und der Ablageort der Datei landen ohne Handarbeit in einer Tabelle Ihrer Buchhaltungsdatenbank.

Die Verbindung erfolgt über ODBC. Damit funktioniert die Aufgabe mit praktisch jeder Datenbank, für die ein ODBC-Treiber existiert - Microsoft SQL Server, MySQL, MariaDB, PostgreSQL, Oracle, Microsoft Access und viele weitere. SQL-Kenntnisse sind für den hier gezeigten Weg nicht erforderlich: Sie wählen eine Tabelle und ordnen jeder Spalte einen Wert zu.

Auf einen Blick

  • Schwierigkeit: Fortgeschritten
  • Zeitbedarf: ca. 20 Minuten
  • Voraussetzungen: Automatic PDF Processor ab Version 2.9.0, eine erreichbare Datenbank mit Zieltabelle (oder die Rechte, eine anzulegen)
  • Ergebnis: Jede verarbeitete PDF-Datei erzeugt automatisch einen typgerechten Datensatz in Ihrer Datenbank

Hinweis: Diese Anleitung zeigt die Arbeitsweise "Tabelle befüllen" - den einfachsten Weg ohne SQL-Kenntnisse. Wer INSERT/UPDATE-Befehle oder gespeicherte Prozeduren einsetzen möchte, findet die Arbeitsweise "Eigener SQL-Befehl" am Ende der Anleitung sowie ausführlich in der Programmhilfe.

Video-Tutorial: PDF-Daten automatisch in einer Datenbank speichern (mit Sprachausgabe und optionalen Untertiteln)


Schritt 1: Zieltabelle in der Datenbank vorbereiten

Legen Sie in Ihrer Datenbank eine Tabelle an (oder verwenden Sie eine vorhandene), die die gewünschten Werte aufnimmt. Für das Rechnungseingangsbuch genügt zum Beispiel diese Tabelle (hier für Microsoft SQL Server):

CREATE TABLE dbo.Rechnungseingang (
    Id      INT IDENTITY(1,1) PRIMARY KEY,
    Nummer  NVARCHAR(50) NOT NULL,
    Datum   DATE,
    Betrag  DECIMAL(18,2),
    Ablage  NVARCHAR(260),
    Erfasst DATETIME DEFAULT GETDATE()
);

Zwei Spalten füllt die Datenbank später selbst: Id (automatische Nummerierung) und Erfasst (Standardwert "aktuelles Datum"). Diese Spalten bleiben in der Aufgabe einfach ohne Zuordnung.

Hinweis: Die Datentypen dürfen "echte" Datums- und Zahlenspalten sein. Automatic PDF Processor übergibt die Werte typgerecht - ein extrahiertes Datum als Datum, ein Betrag als Dezimalzahl - unabhängig davon, in welchem Format sie im PDF-Dokument stehen.

Schritt 2: Neues Profil erstellen

Erstellen Sie in Automatic PDF Processor ein neues Profil mit einem aussagekräftigen Namen wie "Rechnungseingangsbuch" und legen Sie den Ordner fest, in dem die eingehenden Rechnungen ankommen (z. B. C:\Dokumente\Eingang\Rechnungen).

Profil Rechnungseingangsbuch


Schritt 3: Extrahierungsregeln für die Werte anlegen

Legen Sie für jeden Wert, der in die Datenbank soll, eine Datenextrahierungsregel an. Für das Rechnungseingangsbuch sind das drei Regeln:

Regel Datentyp Beispiel-Ermittlung
Rechnungsnummer Text Schlüsselwort "Rechnungsnummer:", Daten rechts daneben
Rechnungsdatum Datum Schlüsselwort "Rechnungsdatum:", Daten rechts daneben
Betrag Zahl Schlüsselwort "Gesamt:", Daten rechts daneben

Extrahierungsregeln Rechnungsnummer, Rechnungsdatum und Betrag

Wichtig: Stellen Sie bei den Regeln den passenden Datentyp ein ("Datum" bzw. "Zahl"). Nur dann werden die Werte als Datum bzw. Dezimalzahl an die Datenbank übergeben - andernfalls kommen sie als Text an und passen nicht in Datums- oder Zahlenspalten.
Tipp: Fügen Sie dem Profil einige Beispieldateien hinzu. Die Live-Vorschau im Regeleditor zeigt sofort, ob die Regeln die richtigen Werte treffen - und die spätere Vorschau der Datenbank-Aufgabe nutzt dieselben Dateien.

Schritt 4: Aufgabe "In Datenbank speichern" hinzufügen und Verbindung einrichten

Wechseln Sie zur Seite Aufgaben und fügen Sie die Aufgabe "In Datenbank speichern" hinzu. Richten Sie zunächst die Datenbankverbindung ein:

Datenbankverbindung der Aufgabe In Datenbank speichern

Verbindungsart Wann verwenden
SQL Server Für Microsoft SQL Server: Server (z. B. SRV-SQL01 oder RECHNER\SQLEXPRESS) und Datenbank als Felder eingeben - den passenden ODBC-Treiber wählt das Programm automatisch.
ODBC-Datenquelle (DSN) Für eine in der Windows-ODBC-Verwaltung eingerichtete Datenquelle - die Auswahlliste zeigt die vorhandenen Datenquellen.
Verbindungszeichenfolge (ODBC) Für alle anderen Datenbanken, z. B. Driver={MySQL ODBC 8.0 Unicode Driver};Server=db01;Database=belege;UID=app;PWD=...;

Für das Beispiel genügt die Verbindungsart SQL Server mit Servername, Datenbank Buchhaltung und Windows-Anmeldung. Klicken Sie anschließend auf "Verbindung testen" - bei Erfolg werden Server, Version und Datenbank angezeigt.

Hinweis zu 64-Bit: Automatic PDF Processor ist ein 64-Bit-Programm und kann nur 64-Bit-ODBC-Treiber und -Datenquellen verwenden. Eine Datenquelle, die in der 32-Bit-ODBC-Verwaltung angelegt wurde, erscheint nicht in der Liste - legen Sie sie in der 64-Bit-Verwaltung (odbcad32.exe aus C:\Windows\System32) neu an.
Windows-Anmeldung und Windows-Dienst: Die Verbindung wird mit dem Konto aufgebaut, unter dem die Verarbeitung läuft. Läuft die Hintergrundverarbeitung als Windows-Dienst, muss das Dienstkonto Zugriff auf die Datenbank haben - sonst schlägt die Verbindung fehl, obwohl der Test in der Oberfläche erfolgreich war.

Schritt 5: Tabelle wählen und Spalten zuordnen

Im Bereich Datenbankziel ist die Arbeitsweise "Tabelle befüllen" bereits vorgewählt. Gehen Sie so vor:

  1. Tabelle: Klicken Sie auf "Tabellen laden" und wählen Sie dbo.Rechnungseingang aus der Liste.
  2. "Spalten aus Tabelle laden": Die Spalten erscheinen mit ihren Datentypen in der Liste. Pflichtspalten sind mit * markiert; automatisch vergebene Spalten wie Id erscheinen grau und bleiben ohne Zuordnung.
  3. Werte zuordnen: Wählen Sie eine Spalte, tragen Sie unter Wert den gewünschten Platzhalter ein (Schaltfläche "Platzhalter einfügen") und klicken Sie auf Übernehmen.
Spalte Wert
Nummer <RuleId:1(Rechnungsnummer)>
Datum <RuleId:2(Rechnungsdatum)>
Betrag <RuleId:3(Betrag)>
Ablage <ParentDirectory>\<FileName> (Ablageordner + Dateiname)

Datenbankziel: Tabelle befuellen mit Spaltenzuordnung

Tipp - automatische Zuordnung: Die Schaltfläche "Automatisch zuordnen" belegt alle noch leeren Spalten, deren Name dem Namen einer Extrahierungsregel entspricht - Groß-/Kleinschreibung, Präfixe wie fld_ und Umlaut-Schreibweisen spielen dabei keine Rolle. Bei vielen Regeln erspart das die Handarbeit.
Duplikatschutz: Markieren Sie die Spalte Nummer als Schlüsselspalte (Häkchen in der Spaltenliste) und wählen Sie als Verhalten "Überspringen". Wird dieselbe Rechnung ein zweites Mal verarbeitet - etwa durch die Wiederholungslogik nach einem Fehler -, entsteht so kein doppelter Datensatz.

Soll auch der endgültige Ablageort in der Datenbank stehen, fügen Sie dem Profil zusätzlich die Aufgabe "Verschieben" hinzu und platzieren Sie sie vor der Datenbank-Aufgabe. Die Platzhalter <ParentDirectory> und <FileName> liefern dann bereits den Ordner und Namen nach dem Verschieben.


Schritt 6: Vorschau prüfen und Testlauf starten

Klicken Sie auf "Vorschau mit Beispieldatei": Das Programm zeigt den fertigen Befehl mit den Werten einer Beispieldatei des Profils - inklusive Datentyp je Parameter (Text, Datum, Zahl oder NULL). Für die Vorschau wird nichts in die Datenbank geschrieben, Sie sehen aber exakt, was bei der Verarbeitung ankommen wird.

Speichern Sie das Profil und legen Sie eine Test-Rechnung in den überwachten Ordner. Nach der Verarbeitung finden Sie den neuen Datensatz in der Tabelle - mit echtem Datum in der Datumsspalte und echtem Dezimalbetrag in der Betragsspalte:

Id  Nummer         Datum       Betrag   Ablage                                   Erfasst
1   RE-2026-00147  2026-01-15  1425.62  C:\Dokumente\Archiv\2026\RE-Eingang.pdf  2026-09-02 14:31:07

Alternative: Eigener SQL-Befehl

Anwender mit SQL-Kenntnissen können statt der Tabellenzuordnung die Arbeitsweise "Eigener SQL-Befehl" wählen - etwa für UPDATE/MERGE-Befehle oder den Aufruf gespeicherter Prozeduren. Platzhalter werden direkt in den Befehl geschrieben, ohne Anführungszeichen:

INSERT INTO Rechnungseingang (Nummer, Datum, Betrag)
VALUES (<RuleId:1(Rechnungsnummer)>, <RuleId:2(Rechnungsdatum)>, <RuleId:3(Betrag)>)

Die Platzhalter werden dabei nicht als Text eingesetzt, sondern bei der Ausführung als typisierte Parameter übergeben. Apostrophe oder Sonderzeichen in den Werten sind dadurch unproblematisch, und der Befehl bleibt gegen SQL-Injection geschützt.


Häufige Probleme

Problem Lösung
Die ODBC-Datenquelle erscheint nicht in der Auswahlliste Sie wurde vermutlich in der 32-Bit-ODBC-Verwaltung angelegt. In der 64-Bit-Verwaltung (C:\Windows\System32\odbcad32.exe) neu anlegen.
Verbindungstest klappt, aber die Verarbeitung im Windows-Dienst meldet einen Verbindungsfehler Bei Windows-Anmeldung zählt das Konto der Verarbeitung: Dem Dienstkonto in der Datenbank Zugriff geben (oder Benutzername/Passwort in der Aufgabe hinterlegen).
"Tabellen laden" findet die Tabelle nicht Tabellenname mit Schema eingeben (z. B. dbo.Rechnungseingang) und prüfen, ob das verwendete Konto Leserechte auf die Tabelle hat.
Es entstehen doppelte Datensätze Eine oder mehrere Schlüsselspalten markieren (z. B. die Rechnungsnummer) und als Verhalten "Überspringen" oder "Vorhandenen Datensatz aktualisieren" wählen (siehe Schritt 5).
Datum oder Betrag kommt als Text an bzw. wird abgelehnt Bei der Extrahierungsregel den Datentyp auf "Datum" bzw. "Zahl" stellen - nur dann erfolgt die typgerechte Übergabe.
Der Datenbankserver ist nachts nicht erreichbar Kein Handlungsbedarf: Die Aufgabe meldet einen Fehler und die Wiederholungslogik des Profils verarbeitet die Datei zu den eingestellten Zeitpunkten erneut.

Weitere Schritt-für-Schritt-Anleitungen

Erste Schritte

Grundlegende Aufgaben

PDF-Bearbeitung

E-Rechnung & Archivierung

Betrieb & Server

Praxisbeispiele


Zur Automatic PDF Processor-Übersichtsseite
Automatic PDF Processor jetzt unverbindlich 30 Tage testen ...     Zum Download