36 Erweiterte Funktionen
36.1 Kommandozeilenparameter
Der PDF-Prozessor (PDFProcessor.exe) kann über Kommandozeilenparameter gesteuert werden. Dies ermöglicht die Integration in Skripte, geplante Aufgaben oder den Betrieb als Windows-Dienst.
Verfügbare Parameter
| Parameter |
Kurzform |
Beschreibung |
--headless |
-h |
Startet im Headless-Modus (ohne GUI-Abhängigkeit) |
--service |
-s |
Startet als nativer Windows-Dienst (Service Control Manager) |
--run_once |
-r |
Führt einen einmaligen Verarbeitungslauf durch, dann beenden |
--quit |
-q |
Beendet eine laufende Instanz |
--profile "Name" |
-p "Name" |
Nur das angegebene Profil ausführen |
--profiles [A,B,C] |
-ps [A,B,C] |
Nur die angegebenen Profile ausführen (kommagetrennt) |
Beispiele
# Einmalige Verarbeitung
PDFProcessor.exe --run_once
# Kurzform
PDFProcessor.exe -r
# Als Windows-Dienst starten
PDFProcessor.exe --service
# Als Headless-Konsole starten (Endlosschleife)
PDFProcessor.exe --headless
# Laufende Instanz beenden
PDFProcessor.exe --quit
# Headless mit einmaliger Verarbeitung
PDFProcessor.exe --headless --run_once
# Nur ein bestimmtes Profil verarbeiten
PDFProcessor.exe --headless --run_once --profile "Rechnungen Import"
# Mehrere Profile verarbeiten
PDFProcessor.exe -h -r --profiles [Rechnungen,Archiv,Backup]
Profilauswahl
Mit den Parametern --profile und --profiles können Sie die Verarbeitung auf bestimmte Profile beschränken. Dies ist besonders nützlich für den Windows-Aufgabenplaner, wenn verschiedene geplante Aufgaben unterschiedliche Profile ausführen sollen.
Einzelnes Profil:
PDFProcessor.exe -h -r -p "Rechnungen Import"
PDFProcessor.exe --headless --run_once --profile "Bestellungen"
Mehrere Profile:
PDFProcessor.exe -h -r -ps [Rechnungen,Bestellungen,Archiv]
PDFProcessor.exe --headless --run_once --profiles [Nachtverarbeitung,Backup]
Profilnamen mit Kommas:
Wenn ein Profilname selbst ein Komma enthält, muss dieser in Anführungszeichen gesetzt werden. Sowohl doppelte als auch einfache Anführungszeichen werden unterstützt:
# Profilname "Rechnungen, Import" enthält ein Komma
PDFProcessor.exe -h -r --profiles ["Rechnungen, Import",Archiv]
# Mit einfachen Anführungszeichen
PDFProcessor.exe -h -r --profiles ['Rechnungen, Import',Archiv]
# Mehrere Profile mit Kommas
PDFProcessor.exe -h -r --profiles ["Rechnungen, Eingang","Bestellungen, Ausgang",Backup]
# Gemischt: Profile mit und ohne Kommas
PDFProcessor.exe -h -r --profiles [Normal,"Mit, Komma",AuchNormal]
Verhalten: - Profilnamen sind nicht case-sensitive (“Rechnungen” = “rechnungen” = “RECHNUNGEN”) - Nicht existierende Profile werden übersprungen (mit Warnung in der Konsole) - Inaktive Profile werden ebenfalls übersprungen (Active-Flag hat Vorrang) - Ohne Profilangabe werden alle aktiven Profile verarbeitet (Standardverhalten)
Konsolen-Ausgabe:
[08:00:00] Profiles filter: Rechnungen, Archiv
oder bei allen Profilen:
[08:00:00] Processing all active profiles
Kombinationen
| Kombination |
Verhalten |
--headless |
Autonomer Dauerbetrieb ohne GUI (Konsolen-Modus) |
--service |
Nativer Windows-Dienst (Dauerbetrieb) |
--run_once |
Einmalig verarbeiten, dann beenden |
--headless --run_once |
Einmalig ohne GUI verarbeiten, dann beenden |
--quit |
Laufende Instanz beenden |
Exit-Codes
| Code |
Bedeutung |
| 0 |
Erfolgreiche Beendigung |
| 1 |
Unbehandelte Ausnahme |
| 2 |
Lizenz abgelaufen oder ungültig |
| 3 |
Konfigurationsfehler |
| 4 |
Bereits eine Instanz aktiv |
36.2 Headless-Modus / Dienst-Betrieb
Im Headless-Modus läuft der PDFProcessor ohne Abhängigkeit von der GUI-Anwendung. Dies ist ideal für den Server-Betrieb oder die Ausführung als Windows-Dienst.
Einsatzszenarien
| Szenario |
Empfohlene Parameter |
| Windows-Dienst (SC) |
--service oder ohne Parameter |
| Windows-Dienst (NSSM) |
--headless |
| Docker-Container |
--headless |
| Geplante Aufgabe (einmalig) |
--run_once |
| Skript-Integration |
--headless --run_once |
Installation als Windows-Dienst
Dienst-Konto (wichtig!)
Der Dienst muss unter demselben Windows-Benutzerkonto laufen, unter dem Sie auch die Programmoberfläche öffnen — nicht unter Lokales Systemkonto (SYSTEM) und nicht unter einem separaten Service-Konto.
Grund: Die Kommunikation zwischen Oberfläche und Dienst (Heartbeat-Signal, Statusmeldungen, Aktions-Trigger) läuft über die Benutzer-Registry (HKEY_CURRENT_USER) sowie den Benutzer-AppData-Ordner. Beide sind pro Windows-Konto separat. Läuft der Dienst unter SYSTEM, schreibt er seine Signale in einen Hive, den die Oberfläche nicht sehen kann. Die Oberfläche zeigt dann “Externer Prozessor nicht aktiv”, obwohl der Dienst korrekt läuft.
Konto nach der Installation umstellen:
services.msc öffnen, den PDFProcessor-Dienst suchen → Rechtsklick → Eigenschaften
- Tab Anmelden → Dieses Konto wählen → Ihr Windows-Benutzerkonto mit Passwort eintragen
- Dienst beenden und neu starten
Danach sollte die Oberfläche den Dienst als aktiv erkennen.
Zusätzlich ist das Benutzerkonto für den Zugriff auf Netzlaufwerke nötig — das SYSTEM-Konto hat typischerweise keine Netzwerkberechtigungen.
Mit SC (Windows Service Control) — empfohlen
PDFProcessor erkennt automatisch, wenn es vom Service Control Manager gestartet wird. Der Parameter -s ist optional:
# Dienst erstellen (automatische Erkennung)
sc create PDFProcessor binPath= "C:\Program Files\Automatic PDF Processor\PDFProcessor.exe"
# Alternativ: Dienst erstellen mit explizitem Service-Parameter
sc create PDFProcessor binPath= "C:\Program Files\Automatic PDF Processor\PDFProcessor.exe -s"
# Starttyp auf automatisch setzen
sc config PDFProcessor start= auto
# Dienst starten
sc start PDFProcessor
# Dienst stoppen
sc stop PDFProcessor
# Dienst entfernen
sc delete PDFProcessor
Mit NSSM (Non-Sucking Service Manager)
NSSM verwaltet den Prozess extern und benötigt daher den Headless-Modus (--headless):
# Dienst installieren
nssm install PDFProcessor "C:\...\PDFProcessor.exe" --headless
# Dienst starten
nssm start PDFProcessor
# Dienst stoppen
nssm stop PDFProcessor
# Dienst entfernen
nssm remove PDFProcessor
Unterschied: –service vs. –headless
| Modus |
Verwendung |
Beschreibung |
--service / -s |
SC, Windows-Dienste |
Registriert sich beim Service Control Manager. Wird für native Windows-Dienste benötigt. |
--headless / -h |
NSSM, Docker, Skripte |
Konsolen-Headless-Modus ohne GUI-Abhängigkeit. Für alle anderen Szenarien. |
Hinweis: Wenn PDFProcessor vom Service Control Manager gestartet wird, erkennt es dies automatisch — auch ohne den -s Parameter. Der Parameter dient als explizite Absicherung.
Diagnose
Bei Problemen mit dem Windows-Dienst wird automatisch eine Diagnose-Datei erstellt:
- Datei:
ServiceDiagnostics.log (im selben Verzeichnis wie die PDFProcessor.exe)
- Inhalt: Startmeldungen, Fehlermeldungen, Modus-Erkennung
Geplante Aufgabe einrichten
Für regelmäßige Verarbeitungen ohne Dauerbetrieb:
- Aufgabenplanung öffnen (taskschd.msc)
- Neue Aufgabe erstellen
- Aktion: Programm starten →
PDFProcessor.exe -r
- Trigger: Nach Bedarf (z.B. stündlich, täglich)
# Beispiel: Tägliche Verarbeitung um 8:00 Uhr (alle aktiven Profile)
schtasks /create /sc daily /tn "PDFProcessor" /tr "\"C:\...\PDFProcessor.exe\" -r" /st 08:00
# Beispiel: Tägliche Rechnungsverarbeitung um 9:00 Uhr (nur bestimmtes Profil)
schtasks /create /sc daily /tn "PDF Rechnungen" /tr "\"C:\...\PDFProcessor.exe\" -h -r -p \"Rechnungen Import\"" /st 09:00
# Beispiel: Nächtliche Archivierung um 2:00 Uhr (mehrere Profile)
schtasks /create /sc daily /tn "PDF Nachtarchiv" /tr "\"C:\...\PDFProcessor.exe\" -h -r --profiles [Archiv,Backup,Bereinigung]" /st 02:00
Tipp: Mit verschiedenen geplanten Aufgaben für unterschiedliche Profile können Sie flexible Verarbeitungsszenarien einrichten - z.B. Rechnungen tagsüber stündlich, Archivierung nachts einmal täglich.
Konsolen-Ausgaben
Im Headless-Modus gibt der Prozessor Statusinformationen aus:
[08:00:00] Automatic PDF Processor 2.0.0 started
[08:00:00] Version: 2.0.0
[08:00:00] License: VALID
[08:00:00] Mode: Headless + RunOnce + Profiles: [Rechnungen, Archiv]
[08:00:00] Profiles filter: Rechnungen, Archiv
[08:00:00] Culture: de-DE
[08:00:00] AppData: C:\Users\...\AppData\...
Konfiguration
Der Headless-Modus verwendet dieselbe Konfiguration wie die GUI-Anwendung: - Konfigurationspfad: %APPDATA%\Gillmeister Software\Automatic PDF Processor 2\ - Profile: Profiles.json - Optionen: Options.json
Hinweis: Bei zentraler Profilverwaltung wird der in den Optionen konfigurierte Pfad verwendet.
36.3 Verarbeitungszeiten-Diagnose
Das Diagnose-Fenster bietet einen Überblick über Verarbeitungszeiten und Programmaktivität.
Aufrufen: Menü Extras → Verarbeitungszeiten-Diagnose…
Registerkarte: Laufzeiten
Zeigt die Programmaktivität der letzten 30 Tage.
| Spalte |
Beschreibung |
| Datum |
Tag der Aktivität |
| Start |
Startzeit des Programms |
| Ende |
Endzeit (bzw. letzte bekannte Aktivität) |
| Dauer |
Gesamtlaufzeit |
Registerkarte: Globale Verarbeitungszeiten
Zeigt die in den Programmoptionen konfigurierten globalen Zeitfenster: - Aktive Wochentage - Verarbeitungszeitraum (Von/Bis) - Nächster geplanter Zeitpunkt
Registerkarte: Profilspezifische Verarbeitungszeiten
Listet alle Profile auf, die eigene Verarbeitungszeiten verwenden:
| Spalte |
Beschreibung |
| Profil |
Profilname |
| Status |
Aktiv/Inaktiv im aktuellen Zeitfenster |
| Nächstes Zeitfenster |
Wann das nächste Zeitfenster beginnt |
| Heute verarbeitet |
Anzahl der heute verarbeiteten Dateien |
Registerkarte: Wartende Dateien
Zeigt Dateien, die auf ihr Zeitfenster warten:
| Spalte |
Beschreibung |
| Datei |
Pfad zur wartenden Datei |
| Profil |
Zugeordnetes Profil |
| Wartet bis |
Beginn des nächsten Zeitfensters |
36.4 Nachholverarbeitung (Nachholen)
Die Funktion “Nachholen” ermöglicht es, ein oder mehrere Profile auf alle PDF-Dateien eines bestimmten Zeitraums anzuwenden.
Funktionsweise
- Profile auswählen: Markieren Sie die gewünschten Profile in der Profilliste (Mehrfachauswahl mit Strg+Klick oder Umschalt+Klick möglich)
- Nachholen starten: Klicken Sie auf Nachholen in der Werkzeugleiste oberhalb der Profilliste
- Zeitraum festlegen: Bei Bedarf können Sie den Zeitraum einschränken (Von/Bis)
- Verarbeitung: Die ausgewählten Profile werden auf alle PDF-Dateien in ihren überwachten Ordnern angewendet
Optionen im Dialog
| Option |
Beschreibung |
| Von/Bis |
Zeitraum einschränken (basierend auf Änderungsdatum der Dateien) |
| Ohne Einschränkung |
Alle Dateien in den überwachten Ordnern verarbeiten |
Anwendungsfälle
- Historische Daten: Altbestand in ein neues Archiv migrieren
- Fehlerkorrektur: Nach Profilanpassung Dateien erneut verarbeiten
- Manuelle Trigger: Dateien aus einem anderen Quellordner verarbeiten
- Test: Neue Profile mit bestehenden Dateien testen
36.5 Wiederholungen bei Fehlern (Retry)
Das Retry-System ermöglicht die automatische Wiederholung fehlgeschlagener Verarbeitungen.
Konfiguration (pro Profil)
Die Retry-Einstellungen finden Sie in den Profileinstellungen unter Allgemein → Wiederholungen.
| Einstellung |
Standard |
Beschreibung |
| Aktiv |
Nein |
Wiederholungen aktivieren |
| Maximale Versuche |
3 |
Anzahl der Wiederholungsversuche |
| Zeitraum |
1 Stunde |
Innerhalb dieses Zeitraums werden die Versuche verteilt |
Intervallberechnung
Die Versuche werden gleichmäßig über den Zeitraum verteilt:
| Versuche |
Zeitraum |
Intervall zwischen Versuchen |
| 3 |
1 Stunde |
20 Minuten |
| 3 |
3 Stunden |
1 Stunde |
| 5 |
1 Stunde |
12 Minuten |
Zeitraum-Optionen
| Einheit |
Verwendung |
| Sekunden |
Für schnelle Wiederholungen (z.B. bei Netzwerkproblemen) |
| Minuten |
Für mittelfristige Wiederholungen |
| Stunden |
Für längerfristige Wiederholungen (Standard) |
| Tage |
Für sehr lange Wiederholungszeiträume |
Ablauf
- Fehler bei Verarbeitung → Datei wird in die Retry-Liste aufgenommen
- Wartezeit → System wartet das berechnete Intervall ab
- Wiederholung → Verarbeitung wird erneut versucht
- Bei Erfolg → Datei wird aus der Retry-Liste entfernt
- Bei erneutem Fehler → Nächster Versuch nach weiterem Intervall
Automatische Bereinigung
- 7-Tage-Regel: Einträge, deren letzter Fehler mehr als 7 Tage zurückliegt, werden automatisch entfernt
- Maximale Versuche: Nach Erreichen der maximalen Versuche wird keine weitere Wiederholung durchgeführt
Retry-Status im Protokoll
Fehler mit aktiver Retry-Funktion zeigen zusätzliche Informationen:
| Information |
Beschreibung |
| Nächster Versuch |
Zeitpunkt des nächsten Wiederholungsversuchs |
| Verbleibend |
Anzahl der verbleibenden Versuche |
Anwendungsfälle
| Szenario |
Empfohlene Konfiguration |
| Netzwerk-Drucker |
3 Versuche, 10 Minuten |
| E-Mail-Server |
3 Versuche, 30 Minuten |
| Externe Speicher |
5 Versuche, 1 Stunde |
| Batch-Verarbeitung |
3 Versuche, 2 Stunden |
Beispiel
Konfiguration: - Maximale Versuche: 3 - Zeitraum: 1 Stunde
Ablauf bei Fehler um 10:00: 1. Erster Fehler: 10:00 2. Zweiter Versuch: 10:20 3. Dritter Versuch: 10:40 4. Finaler Versuch: 11:00
Nach dem finalen Versuch wird die Datei als “fehlgeschlagen” markiert und erscheint im Protokoll unter “Erfolglose Wiederholungen”.
Benachrichtigung bei erschöpften Versuchen
In den Profil-Benachrichtigungseinstellungen können Sie eine E-Mail-Benachrichtigung aktivieren, wenn alle Wiederholungsversuche fehlgeschlagen sind.
36.6 Tipps und Hinweise
Dienst-Betrieb
- Dienst-Konto: Der Dienst muss unter demselben Benutzerkonto wie die Oberfläche laufen, sonst erscheint “Externer Prozessor nicht aktiv”. Siehe Abschnitt 36.2 → Dienst-Konto (wichtig!).
- Protokollierung: Im Headless- und Dienst-Modus werden Fehler in die Konsole und das Error-Log geschrieben. Zusätzlich wird
ServiceDiagnostics.log neben der EXE erstellt.
- Konfigurationsänderungen: Änderungen an Profilen werden automatisch übernommen.
Retry-Strategie
- Temporäre Fehler: Kurze Intervalle (Minuten) für Netzwerkprobleme, Drucker-Verfügbarkeit
- Externe Abhängigkeiten: Längere Intervalle (Stunden) für externe Systeme, die möglicherweise gewartet werden
- Nicht zu viele Versuche: Zu viele Wiederholungen können das System belasten
Nachholverarbeitung
- Mehrere Profile: Sie können mehrere Profile gleichzeitig auswählen, um diese gemeinsam auf einen Zeitraum anzuwenden
- Filter beachten: Nur Dateien, die den Profilfiltern entsprechen, werden verarbeitet
- Große Zeiträume: Bei sehr großen Zeiträumen kann die Verarbeitung länger dauern