Documentation
7-PDF Attach Extract And Remove Files – Documentation GUI & CLI
Utilisation par interface graphique à onglets ou ligne de commande
L’outil 7-PDF Attach Extract And Remove Files offre deux modes d’utilisation :
- Une interface graphique intuitive à onglets
- Une interface en ligne de commande (CLI) puissante pour l’automatisation et l’intégration
L’interface utilisateur permet toutes les fonctions principales par simple clic – idéale pour un usage manuel. La CLI permet un traitement par lots dans des environnements automatisés comme ERP, solutions d'impression ou systèmes de gestion.

Tutoriel vidéo – onglet "Facture PDF vers ZUGFeRD" non encore inclus
Cette vidéo montre les onglets "Joindre", "Extraire" et "Supprimer" des pièces jointes dans des fichiers PDF. L'onglet "Facture PDF vers ZUGFeRD" n’est pas encore représenté, mais son utilisation est identique aux autres.
Comment utiliser "Facture PDF vers ZUGFeRD" avec Word, Excel ou d'autres logiciels est expliqué ici dans un guide pas à pas…
🖱️ Aperçu des onglets et des fonctions GUI
Onglet | Fonction |
---|---|
Joindre un fichier au PDF | Intègre des fichiers externes dans un PDF/A-3 (ex. XML ZUGFeRD) |
Extraire un fichier du PDF | Extrait des pièces jointes spécifiques du PDF |
Supprimer un fichier du PDF | Supprime des pièces jointes par nom ou type |
Facture PDF vers PDF ZUGFeRD | Lance la conversion ZUGFeRD via le service Web intégré |
Protection des données | Consentement requis pour l’utilisation du service Web |
Licence / Infos | Affiche le statut de la licence |
🔐 Licence & Factures Gratuites pour la Conversion de PDF en ZUGFeRD
- 25 conversions gratuites ZUGFeRD avec la version complète
- Reconnaissance automatique du jeton API ou de la licence
- Une fois votre quota de factures gratuites utilisé, un message dans l'application vous indiquera comment activer facilement un jeton API pour une utilisation illimitée.
📍 Conversion de Factures PDF en ZUGFeRD – Informations Complémentaires
- Seuls les fichiers au format PDF/A-3b sont pris en charge (ISO 19005-3)
Pas d’inquiétude : 👉 Voir le guide ici pour créer votre facture avec 7-PDF Printer Professional. Il suffit de réimprimer votre facture (par ex. depuis Acrobat Reader) pour générer automatiquement un PDF ZUGFeRD conforme. - 🎯 L’interface graphique prend en charge le glisser-déposer et fournit un retour visuel
- ⚙️ Idéal pour l’automatisation en arrière-plan via CLI
💡 Mode CLI – Interface en ligne de commande
Pour les utilisateurs avancés, l’automatisation et l’intégration dans des processus (ERP, batch, impression).
Lancement via :
PDFAttachExtractAndRemoveFiles.exe -mode "console" -usage "attach" -inpdf "facture.pdf" -infile "factur-x.xml"
Paramètres disponibles en CLI
Paramètre | Description |
---|---|
-mode | gui (défaut), console , hidden |
-usage | attach , extract , remove , generate |
-inpdf | Chemin vers le fichier PDF source (PDF/A-3) |
-infile | Fichier à joindre (ex. XML) |
-outpath | Chemin cible pour l'extraction |
-fileext | Filtre d’extension (ex. .xml ) |
-byName | Extraire ou supprimer un fichier spécifique par nom |
-estandard | Version ZUGFeRD : ZF1 , ZF2 , ZF21 |
-apiToken | Jeton API pour accéder au Webservice |
-logfile | Fichier log en sortie (mode hidden ) |
Exemples de commandes
:: Joindre un fichier :
PDFAttachExtractAndRemoveFiles.exe -mode "console" -usage "attach" -inpdf "facture.pdf" -infile "factur-x.xml" -estandard "ZF2"
:: Extraire un fichier :
PDFAttachExtractAndRemoveFiles.exe -mode "console" -usage "extract" -inpdf "facture.pdf" -outpath "C:\Output" -fileext ".xml"
:: Supprimer un fichier :
PDFAttachExtractAndRemoveFiles.exe -mode "console" -usage "remove" -inpdf "facture.pdf" -byName "factur-x.xml"
:: Convertir en ZUGFeRD :
PDFAttachExtractAndRemoveFiles.exe -mode "console" -usage "generate" -inpdf "facture.pdf" -apiToken "VOTRE_TOKEN"
🔌 Accès à l’API via FastAPI & CURL
Avec un abonnement Pro, Team ou Enterprise, vous bénéficiez en plus d’un accès API complet à notre service FastAPI de conversion de factures PDF. Il permet de convertir automatiquement vos factures PDF en factures électroniques ZUGFeRD dans vos propres applications ou systèmes.
L’accès s’effectue via une requête POST HTTPS sécurisée avec jeton et retourne des données structurées JSON ou XML – idéal pour les développeurs ou intégrateurs.
Les données sont transférées de manière chiffrée (HTTPS) et traitées exclusivement sur notre infrastructure serveur en Allemagne.
Consultez notre REST API moderne via le point de terminaison /extract-invoice/
.
Exemple : conversion d’un PDF en ZUGFeRD XML via CURL
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/utilisateur/Documents/Facture.pdf"
Remarque : Remplacez [[ T O K E N - C O D E ]]
par votre jeton API personnel valide.
Réponse (extrait) :
{ "success": true, "invoice_number": "2825056", "xml": "<?xml version=\"1.0\" ?>\n<rsm:CrossIndustryInvoice ...", "validation_file": "passed", "validation_string": "passed" }
Vous pouvez tester cette API également via Postman ou intégrer l’appel dans vos scripts.
Exemple PowerShell : Convertir un PDF en XML ZUGFeRD sous Windows
Le point de terminaison de l'API peut également être appelé facilement sous Windows à l’aide d’un script PowerShell avec curl.exe
. Cela permet de convertir directement une facture PDF en factur-x.xml (facture électronique XML). Voici un exemple de script :
# 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
Exemple d’appel dans une fenêtre PowerShell :
.\GetFacturXFromPDF.ps1 "C:\inv\2025-05-17.pdf" -ApiToken "[[ T O K E N - C O D E ]]"
Astuce : Si Windows affiche un avertissement de sécurité, vous pouvez débloquer le script avec Unblock-File .\GetFacturXFromPDF.ps1
.
Remarque : Remplacez [[ T O K E N - C O D E ]]
par votre jeton API personnel valide. Le point de terminaison accepte les fichiers PDF et renvoie les données de facture structurées au format JSON ainsi que, facultativement, le fichier XML conforme à ZUGFeRD.
Exemple PowerShell : Convertir toutes les factures PDF d’un dossier en PDF ZUGFeRD
Le script PowerShell ci-dessous utilise notre 7-PDF Invoice Extractor pour convertir automatiquement toutes les factures PDF d’un dossier en factures électroniques ZUGFeRD valides (PDF/A-3).
Le fichier XML ZUGFeRD est ajouté via 7-PDF Attach Extract and Remove. Comme le format PDF/A-3b est requis, les factures PDF standard sont d’abord converties via notre 7-PDF Printer Professional. Les deux programmes doivent donc être installés sur le système. Un jeton API est également requis pour accéder au 7-PDF Invoice Extractor !
Le script attend 3 paramètres :
-InputFolder "[Chemin vers les factures PDF standard]"
-OutputFolder "[Dossier de sortie pour les factures PDF ZUGFeRD]"
-ApiToken "**[[ T O K E N - C O D E ]]"
** Remarque : en mode d'essai de 7-PDF Attach Extract and Remove, utilisez simplement un espace comme jeton d'API
Voici le code PowerShell :
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)"
Exemple d’appel dans une fenêtre PowerShell:
.\convert-pdfs-to-pdf-zugferd.ps1 -InputFolder "pdfs_in" -OutputFolder "pdfs_out" -ApiToken "[[ T O K E N - C O D E ]]"
Avantages de l’accès API direct
- Traitement automatisé des factures PDF dans DMS, ERP ou applications Web
- Pas d'interaction manuelle requise – 100% automatisé
- Facilement intégrable (ex. CURL, Postman, Python, PHP...)
- Authentification sécurisée par jeton
Il n’y a actuellement pas de blocage technique – des tests occasionnels peuvent fonctionner avec
Starter
ou Basic
. Mais un accès complet est uniquement destiné aux abonnements avancés.
Télécharger l’outil Acheter un jeton API
Enregistrement de la clé de licence dans l'application
Votre clé de licence personnelle peut être activée en tant que version full après avoir acquis la licence dans le programme déjà installé en utilisant le bouton "Insérer la clé de licence, ..." dans l'onglet "Info". À titre d'illustration, nous avons un graphique ci-dessous qui montre le bouton "Enter license key, ..." dans le logiciel:
Classe: Lorsque la clé de licence est saisie, elle est validée et activée sur Internet (via SSL). Par conséquent, assurez-vous que vous disposez d'une connexion Internet active pour le processus d'enregistrement unique de l'application! Dans de rares cas, des pare-feu d'applications tierces installés localement peuvent bloquer l'accès du programme à Internet. Lorsque vous utilisez ces pare-feu tiers, assurez-vous d'accorder les droits nécessaires pour accéder à Internet pour le processus d'enregistrement unique de l'application.
Malheureusement, le problème du piratage de logiciels nous est également préjudiciable et nous devons faire face à ce piratage. C'est la seule façon pour nous de continuer à vous fournir gratuitement des services de maintenance ou d'assistance. Internet n'est nécessaire qu'une seule fois pour le processus d'inscription! Ce qui est stocké sur vos systèmes reste sur vos systèmes!
Distribution automatique des licences avec la version complète de 7-PDF Attach Extract and Remove
En plus de la saisie manuelle dans le programme installé, les licences peuvent également être automatisées dans le cadre d'un déploiement. Pour cela, vous définissez une entrée de registre correspondante.
Pour une licence dans le cadre d'un déploiement sur « plusieurs » (!) PC, systèmes Citrix et TS, veuillez nous contacter en même temps. Cela nécessite une clé spéciale que (!) vous pouvez distribuer directement, soit via un fichier INI ou mieux via une entrée de registre. La clé de licence que vous avez achetée n’est pas une clé spéciale, il est donc inutile de la saisir directement dans le registre.
La capture d'écran ci-dessous montre le chemin pour capturer la clé de licence spéciale dans le registre (SpecialKey).
Le logiciel démarre ensuite en version complète en définissant la clé de licence dans la clé "Code".
Sur Citrix et TS Systems, il suffit généralement de démarrer l'application avec "Exécuter en tant qu'administrateur" et de saisir manuellement la clé de licence que vous avez acquise en tant qu'administrateur dans la demande de licence. La clé de registre illustrée dans la figure ci-dessus est définie par l'application elle-même dans ce scénario. Cependant, cette étape doit être effectuée manuellement pour chaque serveur Terminal Server. Si vous avez un grand nombre de serveurs Terminal Server, il est conseillé de nous contacter également. Ce scénario nécessite également une clé spéciale que vous pouvez distribuer automatiquement.
Déploiement automatique / distribution de logiciels
La configuration prend en charge les paramètres d'installation /SILENT
et /VERYSILENT
pour distribuer le logiciel.
Si vous avez d'autres questions sur le programme, veuillez contacter directement notre support par e-mail gratuit. Sinon, nous vous souhaitons beaucoup de plaisir avec PDF Attach Extract and Remove Files!