Dokumentation
7-PDF Attach Extract And Remove Files – GUI & CLI Dokumentation
Bedienung per Reiter-GUI oder Kommandozeile
Das Tool 7-PDF Attach Extract And Remove Files bietet zwei komfortable Bedienwege:
- eine intuitive GUI mit Reiterstruktur für visuelle Bedienung
- eine mächtige CLI (Command Line Interface) zur Automatisierung und Integration
Die Benutzeroberfläche erlaubt alle Hauptfunktionen per Klick – ideal für Einzelverarbeitung. Die CLI ermöglicht Stapelverarbeitung und professionelle Workflows in automatisierten Umgebungen wie WaWi, ERP, Druckdienste usw.

Videotutorial zu 7-PDF Attach Extract & Remove - noch ohne den Reiter "PDF-Rechnung in PDF ZUGFeRD"
Das Video illustriert die Reiter "Anfügen" "Extraktion" und "Löschen" von Dateianhängen an PDF Dokumenten. Der Reiter "PDF-Rechnung in PDF ZUGFeRD" fehlt hier noch, die Bedienung ist aber zu den anderen Reitern identisch.
Wie "PDF-Rechnung in PDF ZUGFeRD" mit Word und Excel oder aus anderen Anwendungen heraus genutzt werden kann, zeigen wir Ihnen in einer kurzen Step-by-Step Anleitung hier...
🖱️ GUI-Reiter und Funktionen im Überblick
Reiter | Funktion |
---|---|
Datei an PDF anhängen | Bindet externe Dateien in eine PDF/A-3-Datei ein (z. B. XML nach ZUGFeRD) |
Datei aus PDF extrahieren | Extrahiert gezielt eingebettete Dateien aus der PDF |
Datei aus PDF entfernen | Entfernt eingebettete Dateien nach Typ oder Name |
PDF-Rechnung in PDF ZUGFeRD | Startet die ZUGFeRD-Konvertierung über den integrierten Webservice |
Datenschutz | Einwilligung zur Verarbeitung bei Nutzung des Webservices |
Lizenz/Infos | Lizenzstatus einsehbar |
🔐 Lizenzierung & Freirechnungsläufe für die Umwandlung von PDF zu ZUGFeRD
- 25 kostenfreie ZUGFeRD-Umwandlungen bei Vollversion
- Lizenz- oder API-Key wird automatisch erkannt
- Ihr Freikontingent ist aufgebraucht? Kein Problem – direkt im Tool erhalten Sie einen Hinweis, wie Sie bequem ein API-Token für die dauerhafte Nutzung aktivieren können.
📍 PDF-Rechnung in ZUGFeRD umwandeln - Weitere Hinweise
- Nur PDF/A-3b Dateien werden unterstützt (ISO 19005-3)
Keine Sorge: 👉 Hier geht’s zur Anleitung, wie Sie Ihre Rechnung mit 7-PDF Printer Professional ganz einfach konform ausgeben. Danach einfach erneut „drucken“ – fertig ist Ihre ZUGFeRD-konforme PDF-Rechnung. - 🎯 Die GUI bietet Drag & Drop und visuelles Feedback
- ⚙️ Ideal auch für die Automatisierung per CLI im Hintergrund
💡 CLI-Modus – Command Line Bedienung
Für Poweruser, Automatisierung und Integration in Druckserver, ERP, Batch-Verarbeitung.
Start über:
PDFAttachExtractAndRemoveFiles.exe -mode "console" -usage "attach" -inpdf "Rechnung.pdf" -infile "factur-x.xml"
Verfügbare CLI-Parameter
Parameter | Beschreibung |
---|---|
-mode | gui (Standard), console , hidden |
-usage | attach , extract , remove , generate |
-inpdf | Pfad zur Eingabedatei (PDF/A-3) |
-infile | Datei zum Anhängen (z. B. XML) |
-outpath | Zielpfad für Extraktion |
-fileext | Dateityp-Filter (z. B. .xml ) |
-byName | Einzeldatei nach Name extrahieren oder löschen |
-estandard | ZUGFeRD Version: ZF1 , ZF2 , ZF21 |
-apiToken | API-Token zur Nutzung des KI-Webservices |
-logfile | Optional: Logausgabe in Datei (bei hidden ) |
Beispielbefehle
:: Datei anhängen:
PDFAttachExtractAndRemoveFiles.exe -mode "console" -usage "attach" -inpdf "rechnung.pdf" -infile "factur-x.xml" -estandard "ZF2"
:: Datei extrahieren:
PDFAttachExtractAndRemoveFiles.exe -mode "console" -usage "extract" -inpdf "rechnung.pdf" -outpath "C:\Output" -fileext ".xml"
:: Datei entfernen:
PDFAttachExtractAndRemoveFiles.exe -mode "console" -usage "remove" -inpdf "rechnung.pdf" -byName "factur-x.xml"
:: PDF in ZUGFeRD konvertieren:
PDFAttachExtractAndRemoveFiles.exe -mode "console" -usage "generate" -inpdf "rechnung.pdf" -apiToken "IHR_TOKEN"
🔌 API-Zugriff via FastAPI & CURL
Mit dem Pro, Team oder Enterprise Abo erhalten Sie zusätzlich zur komfortablen Nutzung per GUI auch vollen API-Zugriff auf unseren FastAPI-basierten Invoice Extractor. Damit lassen sich PDF-Rechnungen direkt über eigene Anwendungen, DMS-, ERP- oder Websysteme automatisiert in ZUGFeRD E-Rechnungen umwandeln.
Der Zugriff erfolgt über einen gesicherten Token-basierten HTTP POST Endpoint und liefert strukturierte JSON- und XML-Ergebnisse – ideal für Entwickler, Integratoren und automatisierte Rechnungsverarbeitung.
Der Upload erfolgt verschlüsselt per HTTPS. Die Verarbeitung geschieht direkt auf der eigenen Server-Infrastruktur in Deutschland. Die Antwort enthält bei Erfolg automatisch das generierte ZUGFeRD XML
.
Nutzen Sie hierfür unsere moderne und dokumentierte REST-API via /extract-invoice/
Endpunkt.
Beispiel: PDF nach ZUGFeRD XML per CURL konvertieren
curl -X POST https://generator.7-pdf.de/extract-invoice/ \
-H "accept: application/json" \
-H "Authorization: Bearer [[ T O K E N - C O D E ]]" \
-H "Content-Type: multipart/form-data" \
-F "file=@/Users/benutzername/Documents/Invoice.pdf"
Antwort (Auszug):
{ "success": true, "invoice_number": "2825056", "xml": "<?xml version=\"1.0\" ?>\n<rsm:CrossIndustryInvoice ...", "validation_file": "passed", "validation_string": "passed" }
Sie können diesen API-Aufruf auch bequem mit Tools wie Postman testen oder in Skripte integrieren.
Powershell-Beispiel: PDF nach ZUGFeRD XML konvertieren unter Windows
Auch unter Windows kann der API-Endpunkt bequem über ein PowerShell-Skript mit curl.exe
aufgerufen werden. Das ermöglicht die direkte Umwandlung einer PDF Rechnung in eine factur-x.xml (E-Rechnung XML). Nachfolgend ein Beispielskript:
# Store that Script Code under: GetFacturXFromPDF.ps1 # Call: .\GetFacturXFromPDF.ps1 # Params: -PdfPath "C:\inv\2025-05-17.pdf" -ApiToken "[[ T O K E N - C O D E ]]" param ( [Parameter(Mandatory = $true)] [string]$PdfPath, [Parameter(Mandatory = $true)] [string]$ApiToken ) # 1. Send PDF to "7-PDF Invoice Extractor" - FastAPI curl.exe -X POST "https://generator.7-pdf.de/extract-invoice/" ` -H "accept: application/json" ` -H "Authorization: Bearer $ApiToken" ` -H "Content-Type: multipart/form-data" ` -F "file=@$PdfPath" ` -o response.json # 2. Read JSON Response $json = Get-Content -Raw -Path .\response.json | ConvertFrom-Json # 3. Extract and store ZUGFeRD XML $json.xml | Set-Content -Encoding UTF8 -Path .\factur-x.xml
Aufruf-Beispiel in einem Powershell Fenster:
.\GetFacturXFromPDF.ps1 "C:\inv\2025-05-17.pdf" -ApiToken "[[ T O K E N - C O D E ]]"
Tipp: Entsperren Sie das Skript ggf. mit Unblock-File .\GetFacturXFromPDF.ps1
, falls Windows eine Ausführungswarnung zeigt.
Hinweis: Ersetzen Sie [[ T O K E N - C O D E ]]
mit Ihrem gültigen persönlichen API-Token. Der Endpunkt akzeptiert PDF-Dateien und liefert Ihnen strukturierte Rechnungsdaten als JSON sowie optional die konforme ZUGFeRD XML-Datei.
Powershell-Beispiel: Alle PDF Rechnungen eines Verzeichnisses in ZUGFeRD PDF konvertieren
Das nachfolgende Powershell Script nutzt unseren 7-PDF Invoice Extractor um alle PDF Rechnungen vollautomatisch in eine PDF ZUGFeRD Rechnung (E-Rechnungen) zu konvertieren.
Das ZUGFeRD XML wird hier mit 7-PDF Attach Extract and Remove angefügt. Da wird PDF/A3-b benötigen, werden die normalen PDF Rechnungen zuvor über unseren 7-PDF Printer Professional in selbiges Format konvertiert. Es müssen also beide Programme auf dem System installiert sein, damit es läuft. Für den Zugriff auf den 7-PDF Invoice Extractor wird zudem ein API Token benötigt!
Das Script erwartet 3 Parameter:
-InputFolder "[Pfad zu den normalen PDF Rechnungen]"
-OutputFolder "[Ausgabepfad der ZUGFeRD PDF Rechnungen]"
-ApiToken "**[[ T O K E N - C O D E ]]"
** Hinweis: Im Trailmode von 7-PDF Attach Extract and Remove, einfach ein Leerzeichen als API-Token nutzen
Hier nun der PowerShell Code:
param ( [Parameter(Mandatory = $true)] [string]$InputFolder, [Parameter(Mandatory = $true)] [string]$OutputFolder, [Parameter(Mandatory = $true)] [string]$ApiToken ) function Get-7PdfPrinterAppPath { $key = 'HKLM:\SYSTEM\CurrentControlSet\Control\Print\Printers' $printers = Get-ChildItem -Path $key -ErrorAction SilentlyContinue foreach ($printer in $printers) { $desc = Get-ItemProperty -Path "$key\$($printer.PSChildName)" -ErrorAction SilentlyContinue if ($desc.Description -like "*7-PDF Printer*") { $appFolder = $desc.AppFolder if ($appFolder -and (Test-Path $appFolder)) { return $appFolder } } } return $null } function Escape-PathForPostScript { param ([string]$Path) return ($Path -replace '\\', '/' -replace ' ', '\\ ') } function Save-PostScriptForPdfA3 { param ( [string]$TargetFilePath, [string]$ICCPath, [string]$Title = "PDF Title", [string]$Author = "PDF Author", [string]$Subject = "PDF Subject", [string]$Keywords = "PDF/A, ZUGFeRD", [string]$Producer = "7-PDF Printer", [string]$Creator = "7-PDF Printer" ) $iccUnix = Escape-PathForPostScript $ICCPath $postScriptText = @" %! % This is a sample prefix file for creating a PDF/A document. % Users should modify entries marked with "Customize". % This assumes an ICC profile resides in the file (srgb.icc), % in the current directory unless the user modifies the corresponding line below. % Define entries in the document Info dictionary : [ /Title ($Title) /Author ($Author) /Subject ($Subject) /Keywords ($Keywords) /Producer ($Producer) /Creator ($Creator) /DOCINFO pdfmark % Define an ICC profile : /ICCProfile ($iccUnix) % Customize def [/_objdef {icc_PDFA} /type /stream /OBJ pdfmark [{icc_PDFA} << %% ----------8<--------------8<-------------8<--------------8<---------- systemdict /ColorConversionStrategy known { systemdict /ColorConversionStrategy get cvn dup /Gray eq { pop /N 1 false }{ dup /RGB eq { pop /N 3 false }{ /CMYK eq { /N 4 false }{ (\tColorConversionStrategy not a device space, falling back to ProcessColorModel, output may not be valid PDF/A.\n)= true } ifelse } ifelse } ifelse } { (\tColorConversionStrategy not set, falling back to ProcessColorModel, output may not be valid PDF/A.\n)= true } ifelse { currentpagedevice /ProcessColorModel get dup /DeviceGray eq { pop /N 1 }{ dup /DeviceRGB eq { pop /N 3 }{ dup /DeviceCMYK eq { pop /N 4 } { (\tProcessColorModel not a device space.)= /ProcessColorModel cvx /rangecheck signalerror } ifelse } ifelse } ifelse } if %% ----------8<--------------8<-------------8<--------------8<---------- >> /PUT pdfmark [ {icc_PDFA} {ICCProfile (r) file} stopped { (\n\tFailed to open the supplied ICCProfile for reading. This may be due to\n) print (\t an incorrect filename or a failure to add --permit-file-read=<profile>\n) print (\t to the command line. This PostScript program needs to open the file\n) print (\t and you must explicitly grant it permission to do so.\n\n) print (\tPDF/A processing aborted, output may not be a PDF/A file.\n\n) print cleartomark } { /PUT pdfmark [/_objdef {OutputIntent_PDFA} /type /dict /OBJ pdfmark [{OutputIntent_PDFA} << /Type /OutputIntent /S /GTS_PDFA1 /DestOutputProfile {icc_PDFA} /OutputConditionIdentifier (sRGB) % Customize >> /PUT pdfmark [{Catalog} << /OutputIntents [ {OutputIntent_PDFA} ]>> /PUT pdfmark } ifelse "@ Set-Content -Path $TargetFilePath -Value $postScriptText -Encoding ASCII } function Convert-ToPdfA3b { param ( [string]$InputPdf, [string]$PrinterAppPath ) $gsExe = Join-Path $PrinterAppPath "gs\gswin64c.exe" $iccFile = Join-Path $PrinterAppPath "icc\sRGB_IEC61966-2-1_no_black_scaling.icc" $dir = Split-Path $InputPdf $psFile = Join-Path $dir "lib_PDFA_def.ps" $tempPdfa = Join-Path $dir ("A_" + [System.IO.Path]::GetFileName($InputPdf)) if (-not (Test-Path $gsExe)) { Write-Warning "Ghostscript not found: $gsExe" return $false } if (-not (Test-Path $iccFile)) { Write-Warning "ICC profile missing: $iccFile" return $false } Save-PostScriptForPdfA3 -TargetFilePath $psFile -ICCPath $iccFile # Ghostscript-Args $args = @( "--permit-file-read=$iccFile", "-sDEVICE=pdfwrite", "-dPDFACompatibilityPolicy=1", "-dPDFA=3", "-sColorConversionStrategy=RGB", "-o", "`"$tempPdfa`"", "`"$psFile`"", "`"$InputPdf`"" ) & "$gsExe" @args 2>&1 | Tee-Object "$env:TEMP\gs_pdfa3b.log" if (Test-Path $tempPdfa) { Move-Item $tempPdfa $InputPdf -Force Remove-Item $psFile -Force -ErrorAction SilentlyContinue return $true } else { Write-Warning "PDF/A conversion failed for: $InputPdf (see $env:TEMP\gs_pdfa3b.log)" return $false } } # Tool path to ZUGFeRD processor $toolPath = "C:\Program Files (x86)\7-PDF\7-PDF Attach Extract And Remove Files\PDFAttachExtractAndRemoveFiles.exe" if (-not (Test-Path $toolPath)) { Write-Error "ZUGFeRD processor not found: $toolPath" exit 1 } if (-not (Test-Path $OutputFolder)) { Write-Host "Creating output folder: $OutputFolder" New-Item -ItemType Directory -Path $OutputFolder | Out-Null } $appPath = Get-7PdfPrinterAppPath if (-not $appPath) { Write-Error "7-PDF Printer not found in registry." exit 1 } $successCount = 0 $errorCount = 0 Get-ChildItem -Path $InputFolder -Filter *.pdf | ForEach-Object { $inputFile = $_.FullName $basename = $_.BaseName $outputFile = Join-Path $OutputFolder "$basename.pdf" Write-Host "Processing: $inputFile -> $outputFile" Copy-Item $inputFile $outputFile -Force if (-not (Convert-ToPdfA3b -InputPdf $outputFile -PrinterAppPath $appPath)) { $errorCount++ return } $argLine = "-mode `"hidden`" -usage `"generate`" -inpdf `"$outputFile`" -apiToken `"$ApiToken`"" $proc = Start-Process -FilePath "$toolPath" -ArgumentList $argLine -Wait -NoNewWindow -PassThru if ($proc.ExitCode -eq 0) { $successCount++ } else { Write-Warning "ZUGFeRD processing failed (ExitCode $($proc.ExitCode)): $outputFile" $errorCount++ } } Write-Host "" Write-Host "Script finished." Write-Host "Successfully processed: $successCount file(s)" Write-Host "Failed: $errorCount file(s)"
Aufruf-Beispiel in einem Powershell Fenster:
.\convert-pdfs-to-pdf-zugferd.ps1 -InputFolder "pdfs_in" -OutputFolder "pdfs_out" -ApiToken "[[ T O K E N - C O D E ]]"
Ihre Vorteile mit direktem API-Zugriff
- Automatisierte Verarbeitung von PDF-Rechnungen in DMS, ERP, oder Webanwendungen
- Keine manuelle Interaktion notwendig – 100% Serververarbeitung
- Integration in bestehende Softwarelösungen möglich (z. B. CURL, Postman, Python, PHP etc.)
- Sichere Token-Authentifizierung
Aktuell ist eine technische Sperre zwar noch nicht aktiv – ein gelegentlicher Test mit
Starter
oder Basic
funktioniert ggf. dennoch. Der direkte API-Zugriff ist aber ausdrücklich Kunden mit erweiterten Abos vorbehalten.
Tool herunterladen API-Token erwerben
Registrierung des Lizenzschlüssels in der Anwendung
Ihr persönlicher Lizenzkey kann nach dem Lizenzerwerb in das bereits installierte Programm direkt über den Button "Lizenzschlüssel erfassen, ..." im Tab/Basisreiter "Lizenz/Info" als Vollversion freigeschaltet werden. Zur Veranschaulichung nachfolgende Grafik, welche die Schaltfläche "Lizenzschlüssel erfassen,..." innerhalb der Software zeigt:
Hinweis: Bei Erfassung des Lizenzkeys wird dieser über das Internet validiert und freigeschaltet (via SSL). Achten sie daher auf eine aktive Internetverbindung für den einmaligen Registrierungsprozess der Anwendung! In seltenen Fällen blockieren lokal installierte Applikationsfirewalls von Drittherstellern ggf. dem Programm den Zugriff auf das Internet. Achten sie, bei Nutzung derartiger Dritt-Firewalls darauf, für den einmaligen Registrierungsprozess der Anwendung entsprechende nötige Rechte für den Zugriff auf das Internet zu gewähren.
Leider ist das Thema Softwarepiraterie auch für uns schädlich und wir müssen dieser Piraterie entgegentreten. Nur so ist es uns möglich ihnen auch weiterhin dauerhaft die Bereitstellung von Wartungs- oder Supportleistungen kostenlos zu ermöglichen. Das Internet ist einzig und allein nur für den Registrierungsprozess einmalig nötig! Das was auf ihren Systemen gespeichert ist, bleibt auch auf ihren Systemen!
Automatische Lizenzverteilung bei 7-PDF Attach Extract and Remove
Eine Lizenzierung kann, neben der manuellen Erfassung im installierten Programm, auch automatisiert im Kontext eines Deployments erfolgen. Hierfür setzt man einen entsprechenden Registry Eintrag.
Für die Lizenzierung im Zuge eines Deployments auf "vielen" (!) PCs, Citrix und TS Systemen, gleichzeitig kontaktieren sie uns bitte. Denn hierfür wird ein spezieller Schlüssel (!) benötigt den sie direkt verteilen können, entweder per INI-Datei oder besser per Registry Eintrag. Ihr erworbener Lizenzkey ist kein SpecialKey, daher bringt es nichts diesen "plain" in die Registry zu erfassen.
Der nachfolgende Screenshot zeigt den Pfad zum Erfassen des Lizenzkeys innerhalb der Registry (SpecialKey).
Durch ein Setzen des Lizenzkeys im Schlüssel „Code“ startet die Software danach als Vollversion.
Unter Citrix und TS Systemen hingegen reicht es in der Regel aus die Anwendung mit „Als Administrator ausführen“ zu Starten und einmal den durch sie erworbenen Lizenzkey manuell als Admin in der Anwendung zur Lizenzierung zu erfassen. Der oben in der Abbildung gezeigte Registryschlüssel wird in diesem Szenario von der Anwendung selbst gesetzt. Dieser Schritt ist allerdings für jeden Terminalserver einzeln manuell durchzuführen. Haben sie eine hohe Anzahl an Terminalservern, empfiehlt es sich uns diesbezüglich ebenfalls zu kontaktieren. Wie beim Deployment auf vielen PCs gleichzeitig, wird für dieses Szenario ebenfalls ein spezieller Schlüssel benötigt den sie direkt und automatisiert verteilen können.
Automatisches Deployment / Softwareverteilung
Zur Verteilung der Software unterstützt das Setup die Installationsparameter /SILENT
und /VERYSILENT
.
Haben Sie weitere Fragen zum Programm, dann wenden Sie sich bitte direkt an unseren kostenlosen eMail-Support. Ansonsten wünschen wir Ihnen viel Freude mit PDF Attach Extract And Remove Files!