37 Advanced Features
37.1 Command Line Parameters
The PDF Processor (PDFProcessor.exe) can be controlled via command line parameters. This enables integration into scripts, scheduled tasks, or operation as a Windows service.
Available Parameters
| Parameter |
Short Form |
Description |
--headless |
-h |
Starts in headless mode (without GUI dependency) |
--service |
-s |
Starts as native Windows service (Service Control Manager) |
--run_once |
-r |
Performs a single processing run, then exits |
--quit |
-q |
Terminates a running instance |
--profile "Name" |
-p "Name" |
Execute only the specified profile |
--profiles [A,B,C] |
-ps [A,B,C] |
Execute only the specified profiles (comma-separated) |
Examples
# Single processing run
PDFProcessor.exe --run_once
# Short form
PDFProcessor.exe -r
# Start as Windows service
PDFProcessor.exe --service
# Start as headless console (endless loop)
PDFProcessor.exe --headless
# Terminate running instance
PDFProcessor.exe --quit
# Headless with single processing
PDFProcessor.exe --headless --run_once
# Process only a specific profile
PDFProcessor.exe --headless --run_once --profile "Invoice Import"
# Process multiple profiles
PDFProcessor.exe -h -r --profiles [Invoices,Archive,Backup]
Profile Selection
With the --profile and --profiles parameters, you can limit processing to specific profiles. This is particularly useful for Windows Task Scheduler when different scheduled tasks should execute different profiles.
Single Profile:
PDFProcessor.exe -h -r -p "Invoice Import"
PDFProcessor.exe --headless --run_once --profile "Orders"
Multiple Profiles:
PDFProcessor.exe -h -r -ps [Invoices,Orders,Archive]
PDFProcessor.exe --headless --run_once --profiles [NightProcessing,Backup]
Profile Names with Commas:
If a profile name itself contains a comma, it must be enclosed in quotes. Both double and single quotes are supported:
# Profile name "Invoices, Import" contains a comma
PDFProcessor.exe -h -r --profiles ["Invoices, Import",Archive]
# With single quotes
PDFProcessor.exe -h -r --profiles ['Invoices, Import',Archive]
# Multiple profiles with commas
PDFProcessor.exe -h -r --profiles ["Invoices, Incoming","Orders, Outgoing",Backup]
# Mixed: profiles with and without commas
PDFProcessor.exe -h -r --profiles [Normal,"With, Comma",AlsoNormal]
Behavior: - Profile names are not case-sensitive ("Invoices" = "invoices" = "INVOICES") - Non-existent profiles are skipped (with warning in console) - Inactive profiles are also skipped (Active flag takes precedence) - Without profile specification, all active profiles are processed (default behavior)
Console Output:
[08:00:00] Profiles filter: Invoices, Archive
or for all profiles:
[08:00:00] Processing all active profiles
Combinations
| Combination |
Behavior |
--headless |
Autonomous continuous operation without GUI (console mode) |
--service |
Native Windows service (continuous operation) |
--run_once |
Process once, then exit |
--headless --run_once |
Process once without GUI, then exit |
--quit |
Terminate running instance |
Exit Codes
| Code |
Meaning |
| 0 |
Successful termination |
| 1 |
Unhandled exception |
| 2 |
License expired or invalid |
| 3 |
Configuration error |
| 4 |
Another instance already active |
37.2 Headless Mode / Service Operation
In headless mode, PDFProcessor runs without dependency on the GUI application. This is ideal for server operation or running as a Windows service.
Use Cases
| Scenario |
Recommended Parameters |
| Windows Service (SC) |
--service or no parameter |
| Windows Service (NSSM) |
--headless |
| Docker Container |
--headless |
| Scheduled Task (one-time) |
--run_once |
| Script Integration |
--headless --run_once |
Installation as Windows Service
Tip - set up directly in the program: The easiest way to set up the service is via the program interface: Menu > Options > Windows Service > "Set up service...". This automatically configures the program path, autostart, restart attempts after a crash, and the "Log on as a service" right correctly (one administrator confirmation). The following sections describe the manual command-line approach.
Service Account (important!)
The service must run under the same Windows user account under which you also open the program interface — not under Local System account (SYSTEM) and not under a separate service account.
Reason: Communication between the interface and the service (heartbeat signal, status messages, action triggers) runs through the user registry (HKEY_CURRENT_USER) and the user's AppData folder. Both are separate per Windows account. If the service runs under SYSTEM, it writes its signals to a hive that the interface cannot see. The interface then shows "External processor not active" even though the service is running correctly.
Changing the account after installation:
- Open
services.msc, locate the PDFProcessor service → right-click → Properties
- Log On tab → select This account → enter your Windows user account with password
- Stop and restart the service
The interface should then detect the service as active.
The user account is also required for access to network drives — the SYSTEM account typically has no network permissions.
Network Drives in Service Operation
A Windows service cannot see the network drives that you connected in your Windows logon session - not even if it runs under the same account. It only reaches a path such as Y:\Documents if the program knows which share the drive letter belongs to. The program window remembers this mapping for the network drives of your logon session, and the service under the same account uses it.
If the mapping is missing - typically after importing profiles from another computer or with a service under a different account -, the tasks fail with a message such as "Could not find a part of the path ...". The program then adds a note to the message.
- Recommended: Enter the network path of the share in the profiles, for example
\\server\share\documents - or the local path if the folder is on the computer itself.
- Without changing the profiles: Connect the drive under the account of the service (with "Reconnect at sign-in") and then open the program window once under this account.
- When saving a profile and after an import, the program names the folders the service cannot resolve. The backup for support (section 2.6.4) contains the stored mapping and the drives of your logon session for this.
- Files that were not processed in the meantime can be caught up afterwards (section 37.4).
With SC (Windows Service Control) — recommended
PDFProcessor automatically detects when it is started by the Service Control Manager. The -s parameter is optional:
# Create service (automatic detection)
sc create PDFProcessor binPath= "\"C:\Program Files\Automatic PDF Processor\PDFProcessor.exe\""
# Alternatively: Create service with explicit service parameter
sc create PDFProcessor binPath= "\"C:\Program Files\Automatic PDF Processor\PDFProcessor.exe\" -s"
# Set startup type to "Automatic (Delayed Start)"
# (recommended: with a domain service account, the network is often not yet available
# right after booting - the delayed start avoids logon error 1069)
sc config PDFProcessor start= delayed-auto
# Recommended: Configure automatic restart attempts after a crash of the service process
# (only takes effect if the running service process ends unexpectedly - not on
# startup failures such as logon error 1069)
sc failure PDFProcessor reset= 86400 actions= restart/60000/restart/60000/restart/60000
# Start service
sc start PDFProcessor
# Stop service
sc stop PDFProcessor
# Remove service
sc delete PDFProcessor
Important: There must be a space after each equals sign (e.g., binPath= "..."). Paths containing spaces (such as "Program Files") must additionally be wrapped in escaped inner quotation marks (\"...\") - otherwise, starting the service will later fail with "The system cannot find the file specified".
With NSSM (Non-Sucking Service Manager)
NSSM manages the process externally and therefore requires headless mode (--headless):
# Install service
nssm install PDFProcessor "C:\...\PDFProcessor.exe" --headless
# Start service
nssm start PDFProcessor
# Stop service
nssm stop PDFProcessor
# Remove service
nssm remove PDFProcessor
Difference: --service vs. --headless
| Mode |
Usage |
Description |
--service / -s |
SC, Windows Services |
Registers with the Service Control Manager. Required for native Windows services. |
--headless / -h |
NSSM, Docker, Scripts |
Console headless mode without GUI dependency. For all other scenarios. |
Note: When PDFProcessor is started by the Service Control Manager, it detects this automatically — even without the -s parameter. The parameter serves as an explicit safeguard.
Diagnostics
If problems occur with the Windows service, a diagnostic file is automatically created:
- File:
ServiceDiagnostics.log in the application data folder of the account the service runs under (%APPDATA%\Automatic PDF Processor 2)
- Content: Start messages, error messages, mode detection
Setting Up Scheduled Tasks
For regular processing without continuous operation:
- Open Task Scheduler (taskschd.msc)
- Create New Task
- Action: Start program →
PDFProcessor.exe -r
- Trigger: As needed (e.g., hourly, daily)
# Example: Daily processing at 8:00 AM (all active profiles)
schtasks /create /sc daily /tn "PDFProcessor" /tr "\"C:\...\PDFProcessor.exe\" -r" /st 08:00
# Example: Daily invoice processing at 9:00 AM (specific profile only)
schtasks /create /sc daily /tn "PDF Invoices" /tr "\"C:\...\PDFProcessor.exe\" -h -r -p \"Invoice Import\"" /st 09:00
# Example: Nightly archiving at 2:00 AM (multiple profiles)
schtasks /create /sc daily /tn "PDF NightArchive" /tr "\"C:\...\PDFProcessor.exe\" -h -r --profiles [Archive,Backup,Cleanup]" /st 02:00
Tip: With different scheduled tasks for different profiles, you can set up flexible processing scenarios - e.g., invoices hourly during the day, archiving once nightly.
Console Output
In headless mode, the processor outputs status information:
[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: [Invoices, Archive]
[08:00:00] Profiles filter: Invoices, Archive
[08:00:00] Culture: en-US
[08:00:00] AppData: C:\Users\...\AppData\...
Configuration
Headless mode uses the same configuration as the GUI application: - Configuration Path: %APPDATA%\Automatic PDF Processor 2\ - Profiles: Profiles.json - Options: Options.json
Note: With centralized profile management, the path configured in options is used.
37.3 Processing Time Diagnostics
The diagnostics window provides an overview of processing times and program activity.
Access: Menu button → Other → Processing Time Diagnostics...
Tab: Runtime
Shows program activity for the last 7 days.
| Column |
Description |
| Date |
Day of activity |
| Start |
Program start time |
| End |
End time (or last known activity) |
| Duration |
Total runtime |
Tab: Global Processing Times
Shows the global time window settings configured in program options: - Active weekdays - Processing period (From/To) - Next scheduled time
Tab: Profile-Specific Processing Times
Lists all profiles that use their own processing times:
| Column |
Description |
| Profile |
Profile name |
| Status |
Active/Inactive in current time window |
| Next Window |
When the next time window begins |
| Processed Today |
Number of files processed today |
Tab: Waiting Files
Shows files waiting for their time window:
| Column |
Description |
| File |
Path to the waiting file |
| Profile |
Assigned profile |
| Waiting Until |
Start of the next time window |
37.4 Catch-Up Processing
The "Catch Up" function allows applying one or more profiles to all PDF files from a specific time period.
How It Works
- Select Profiles: Mark the desired profiles in the profile list (multiple selection with Ctrl+Click or Shift+Click possible)
- Start Catch-Up: Click Catch Up in the toolbar above the profile list
- Set Time Period: If needed, you can restrict the time period (From/To)
- Processing: The selected profiles are applied to all PDF files in their monitored folders
Dialog Options
| Option |
Description |
| From/To |
Restrict time period (based on file modification date) |
| Without Restriction |
Process all files in monitored folders |
Use Cases
- Historical Data: Migrate existing files to a new archive
- Error Correction: Reprocess files after profile adjustment
- Manual Trigger: Process files from another source folder
- Test: Test new profiles with existing files
37.5 Retry on Errors
The retry system enables automatic repetition of failed processing.
Configuration (per Profile)
The retry settings can be found in the Profile Settings on the Advanced page under Retries on Errors (Section 8.3.2).
| Setting |
Default |
Description |
| Active |
No |
Enable retries |
| Maximum Attempts |
3 |
Number of retry attempts |
| Period |
1 hour |
Attempts are distributed within this period |
Interval Calculation
Attempts are distributed evenly over the period:
| Attempts |
Period |
Interval Between Attempts |
| 3 |
1 hour |
20 minutes |
| 3 |
3 hours |
1 hour |
| 5 |
1 hour |
12 minutes |
Period Options
| Unit |
Usage |
| Seconds |
For quick retries (e.g., network issues) |
| Minutes |
For medium-term retries |
| Hours |
For longer-term retries (default) |
| Days |
For very long retry periods |
Process Flow
- Error during processing → File is added to retry list
- Wait → System waits for calculated interval
- Retry → Processing is attempted again. Only the tasks that were still pending run; tasks already completed successfully (such as sending an email) are not executed again, even if the profile has been changed in the meantime
- On success → File is removed from retry list
- On another error → Next attempt after another interval
Automatic Cleanup
- 7-Day Rule: Entries whose last error was more than 7 days ago are automatically removed
- Maximum Attempts: No further retry is performed after reaching maximum attempts
- File no longer present: If the file of a retry is missing, the program removes the entry. If only its folder is temporarily unreachable, for example during a NAS outage, the entry is kept
- Deleted profile: The program removes retries of a deleted profile and notes this in the diagnostic log
- Processing the file again: If the file is processed again before the next attempt - with "Reprocess file" in the log or during catch-up processing -, its pending retry is dropped, because this processing runs all tasks of the profile. If it fails, a new retry starts
- Unreadable entries: If a retry file cannot be read, the program moves it to the "Unreadable" subfolder of the "RetryInfos" folder in the application data and notes this in the diagnostic log
Retry Status in Log
Errors with active retry function show additional information:
| Information |
Description |
| Next Attempt |
Time of next retry attempt |
| Remaining |
Number of remaining attempts |
Use Cases
| Scenario |
Recommended Configuration |
| Network Printer |
3 attempts, 10 minutes |
| Email Server |
3 attempts, 30 minutes |
| External Storage |
5 attempts, 1 hour |
| Batch Processing |
3 attempts, 2 hours |
Example
Configuration: - Maximum attempts: 3 - Period: 1 hour
Process on error at 10:00: 1. First error: 10:00 2. Second attempt: 10:20 3. Third attempt: 10:40 4. Final attempt: 11:00
After the final attempt, the file is marked as "failed" and appears in the log under "Failed Retries".
Notification on Exhausted Attempts
In the profile notification settings, you can enable email notification when all retry attempts have failed.
37.6 Tips and Notes
Service Operation
- Service account: The service must run under the same user account as the interface, otherwise "External processor not active" will be shown. See section 37.2 → Service Account (important!).
- Logging: In headless and service mode, errors are written to the console and error log. Additionally,
ServiceDiagnostics.log is created in the application data folder.
- Configuration Changes: Changes to profiles are automatically applied.
Retry Strategy
- Temporary Errors: Short intervals (minutes) for network issues, printer availability
- External Dependencies: Longer intervals (hours) for external systems that may be under maintenance
- Not Too Many Attempts: Too many retries can burden the system
Catch-Up Processing
- Multiple Profiles: You can select multiple profiles at once to apply them together to a time period
- Consider Filters: Only files matching profile filters are processed
- Large Time Periods: Processing may take longer for very large time periods
37.7 Several users on one computer (terminal server)
On a terminal server or another computer with several users, each user account works with its own profiles, settings and license entry. Since version 2.11.1, several user accounts also process files at the same time.
- One processing per user account: If the program is open under the same account in a second session, or if the processing runs as a Windows service under this account, the program does not start a second processing. The status bar then shows "Processing runs in another Windows session or in the service".
- Each folder is processed by one account only: This way, no file is processed twice. The account that processes a folder first keeps it; the other one skips it and shows the notice "... processed by another user account on this computer" below the profile list. If one account monitors a folder including its subfolders and another account monitors one of these subfolders, the subfolder belongs to the account that monitors it itself.
- Catch-up processing: Catch-up processing also skips folders that another account processes.
- The same folders for several users: If the files of the same folders are to be processed for several users, set up the profiles in one user account or use the Windows service (section 37.2).
- Limits: This coordination is not possible between different computers - a monitored folder should always be processed by one installation only. The same folder under different network names, such as server name and IP address, counts as different.
37.8 Data Protection: Stored Data and Connections
This overview helps with assessing the program under data protection law. Automatic PDF Processor is a Windows application installed locally. Processing takes place on the computer on which the program runs and at the destinations you define in the profiles, for example folders, printers, email recipients or databases. The program sends neither the contents of your files nor error reports to us; the connections it establishes to our servers are listed below under "Connections". Text recognition and barcode recognition run on the computer itself.
Storage Locations
All data is stored in the user profile of the Windows account under which the program runs - when operated as a Windows service, in the profile of the service account.
| Data |
Location |
| Configuration, log, protocols and status data |
%APPDATA%\Automatic PDF Processor 2\ |
| Automatic backups (unless you specify a folder) |
%APPDATA%\Automatic PDF Processor 2 - Backups\ |
| Intermediate files during processing |
%LOCALAPPDATA%\GillmeisterSoftware\ or the working directory (section 36.2), some also in the Windows temp folder (%TEMP%) or next to the target file; they are deleted again after the operation, leftovers of an interruption after a few hours |
| Sign-in to Microsoft 365 (Exchange Online) |
%LOCALAPPDATA%\GillmeisterSoftware\APP\ |
| Status information for the display, including the processing details (see below) |
Windows registry under HKEY_CURRENT_USER\SOFTWARE\Gillmeister Software\Automatic PDF Processor 2 |
Stored Data and Retention
Which personal data occurs depends on your documents and profiles.
| Data |
Content |
Retention |
| Log |
Per processed file: file name and folder, size and date, PDF metadata (for example author, title, subject, names of embedded attachments), profile name, result and error messages of the tasks including destination paths. When sending email, the recipient addresses, not the subject and text. For "Replace Content" and "Insert Barcode", the values found or inserted. |
365 days by default (section 36.7). Expired entries are deleted at startup and then once a day. "Delete Log Database" (section 2.6.7) clears the log completely. |
| Processing log (CSV, only if enabled) |
Time, profile, status, folder and file name, tasks with details such as recipients and destinations |
30 days by default (section 36.8) |
| Already processed files |
Path, size and modification date, so that no file is processed twice |
90 days by default after the file was last present in the monitored folder (section 36.3) |
| Error log |
Technical error messages, some with file paths |
7 days |
| Status and diagnostic log |
Progress messages with file paths, profile names and the recipients of notifications |
Status log 14 days, diagnostic log limited in size (section 36.13) |
| Notices in the main window |
Message texts, some with file paths |
7 days |
| Processing details |
Recently processed files with their tasks |
3 days, at most 1000 entries |
| Retries |
File, profile and error messages of failed processing |
Until successful, at most 7 days after the last error |
| Email drafts (SMTP and Exchange Online with "Do not send message, but only save it in the draft folder") |
Complete message with attachments |
Until sent or deleted in the "Email Drafts" window |
| Configuration |
Profiles and program options, including email addresses of recipients and accounts, paths and filter terms |
Until you change them |
Passwords: The program stores passwords for email accounts and PDF files encrypted, as well as the password and connection string of the task "Save to Database". With the option "Store passwords in Windows Credential Manager" (section 36.2), the passwords of the program options are stored in the Windows Credential Manager of your user account instead. The program does not know your Microsoft 365 (Exchange Online) password: you sign in directly with Microsoft in the browser, and only the sign-in for later sending is stored.
Backups, Support Backup and Error Report
- Automatic backups (section 36.9; every 4 hours by default, the latest 50 are kept) contain the configuration, the protocols, the list of already processed files, retries and email drafts, but not the log and the passwords in Windows Credential Manager. They are ZIP files - store them in a protected location.
- The backup for support (section 2.6.4) is only created when you create it yourself. The program removes passwords, account names and license files from the options and profiles. It also contains an overview of the profiles, optionally with a test run of the sample files, and an excerpt of the log of the last 14 days. Saved email drafts are not included.
- An error report (text file on the desktop, section 2.6.1) is created by the program on request and after an unexpected program error. It contains the program versions and the error messages.
- None of this is sent to us automatically. We only receive data if you send it to us, for example with a support request.
Connections
| Connection |
When |
Data transmitted |
| Update check (www.gillmeister-software.de) |
When the main window opens |
No program data; the list of current versions is retrieved |
| License update (www.gillmeister-software.de) |
About every 14 days, immediately if the license file is missing or invalid |
A hash value of the license key and a pseudonymous installation ID - not the license key and not the license name |
| Language packs for text recognition (www.gillmeister-software.com) |
When a profile uses a language that is not installed, or when you install a language (chapter 38) |
Name of the language |
| Email sending and databases |
During processing |
Only to the servers you set up (SMTP server, Microsoft 365, database); Outlook is accessed on the computer itself |
As with any access to a web page, the usual connection data accrues on our servers; details are given in our privacy policy (www.gillmeister-software.com/privacy.aspx). Online help, ordering and downloads only open in the browser when you click them.
Access
The Windows user under which the program runs and the administrators of the computer have access to the local data; the program has no user management of its own. You define in the profiles who receives files and messages. We as the manufacturer have no access to your data.