Vous avez des dossiers de rapports PDF, de relevés bancaires ou de déclarations réglementaires avec des tableaux verrouillés à l'intérieur — et vous avez besoin de ces chiffres dans Excel pour pouvoir trier, filtrer et appliquer des formules. Le copier-coller depuis un PDF maintient rarement les colonnes alignées, et reformater des centaines de fichiers à la main n'est pas du travail, c'est une punition. Total PDF Converter X extrait les tableaux des fichiers PDF vers des classeurs XLS depuis la ligne de commande, en lot, sans interface graphique et sans installation de Microsoft Excel. Installez-le sur un serveur Windows, appelez-le depuis un script ou via ActiveX, et laissez-le fonctionner de manière autonome.
*.pdf) et le convertisseur traite chaque fichier correspondant en une seule exécution-EachPageSeparate pour écrire chaque page PDF sur sa propre feuille, ou fusionnez toutes les pages en une seule
(30 jours, sans e-mail)
(licence serveur, perpétuelle)
Windows 7/8/10/11 • Server 2008/2012/2016/2019/2022
PDF est un format de document final. La page est fixe, la mise en page est figée, et les données qu'elle contient sont destinées à être lues, imprimées ou archivées — pas recalculées. Un relevé bancaire en PDF vous montre un solde ; il ne vous laisse pas modifier une hypothèse de taux d'intérêt et observer la colonne se mettre à jour. Les tableaux dans un PDF ressemblent à des tableaux, mais en dessous, ce ne sont que du texte positionné à des coordonnées sur une page.
XLS est un format de travail. Chaque chiffre se trouve dans une cellule avec une ligne, une colonne et un type de données. Vous pouvez trier, filtrer, faire des tableaux croisés dynamiques, ajouter des formules, dessiner des graphiques et alimenter le résultat dans un modèle en aval. Lorsque des données tabulaires arrivent au format PDF et que l'étape suivante est l'analyse, les données doivent d'abord devenir du XLS.
| XLS | ||
|---|---|---|
| Objectif | Sortie finale pour lecture et impression | Format de travail pour analyse et recalcul |
| Cellules et formules | Aucune — texte positionné sur une page | Cellules natives, formules, références, graphiques |
| Tri et filtre | Non pris en charge | Intégré |
| Tableaux croisés dynamiques | Impossible | Fonctionnalité native d'Excel |
| Fidélité du copier-coller | Les colonnes s'effondrent fréquemment en une seule | Les colonnes restent séparées |
| Public | Lecteurs, archives, régulateurs | Analystes, comptables, contrôleurs |
Téléchargez l'installateur depuis le lien ci-dessus et lancez-le sur votre serveur ou poste de travail Windows. L'installation prend moins d'une minute. Aucune installation de navigateur ou de Microsoft Excel n'est requise — le convertisseur analyse la couche de texte du PDF avec son propre moteur et écrit le fichier XLS directement.
Ouvrez cmd.exe ou PowerShell. L'exécutable du convertisseur est PDFConverter.exe, situé dans le dossier d'installation (généralement C:\Program Files\CoolUtils\TotalPDFConverterX\). Ajoutez-le à votre PATH système ou utilisez le chemin complet dans vos commandes.
La commande la plus simple convertit tous les fichiers PDF d'un dossier en XLS :
PDFConverter.exe C:\Reports\*.pdf C:\Output\ -c XLS
Cela traite chaque fichier .pdf dans C:\Reports\ et enregistre les classeurs XLS résultants dans C:\Output\. Chaque PDF produit un fichier XLS avec le même nom de base.
Contrôlez la sortie du classeur avec des indicateurs supplémentaires :
PDFConverter.exe C:\Reports\*.pdf C:\Output\ -c XLS -EachPageSeparate -log C:\Logs\pdf2xls.log
-EachPageSeparate — place chaque page PDF sur sa propre feuille à l'intérieur du classeur-log C:\Logs\pdf2xls.log — écrire un journal de conversion pour vérificationEnregistrez votre commande dans un fichier .bat et planifiez-la avec le Planificateur de tâches Windows :
@echo off "C:\Program Files\CoolUtils\TotalPDFConverterX\PDFConverter.exe" C:\Incoming\*.pdf C:\Archive\XLS\ -c XLS -EachPageSeparate -log C:\Logs\pdf2xls.log
Cela exécute l'extraction chaque nuit (ou à l'intervalle que vous définissez) et écrit un fichier journal pour que vous puissiez vérifier les résultats.
Total PDF Converter X inclut une interface ActiveX complète. Vous pouvez appeler le convertisseur depuis tout environnement compatible COM — .NET, VBScript, PHP, Python, Ruby ou ASP. Cela vous permet d'intégrer l'extraction PDF vers XLS dans votre propre application web, portail intranet ou flux de travail comptable sans passer par un processus en ligne de commande.
Exemple (C#/.NET) :
PDFConverterX Cnv = new PDFConverterX();
Cnv.Convert("C:\\Reports\\statement.pdf", "C:\\Output\\statement.xls", "-c XLS -EachPageSeparate -log c:\\Logs\\pdf.log");
Exemple (PHP) :
$c = new COM("PDFConverter.PDFConverterX");
$c->convert("C:\\Reports\\statement.pdf", "C:\\Output\\statement.xls", "-c XLS -EachPageSeparate -log c:\\Logs\\pdf.log");
Le même appel fonctionne depuis ASP.NET, VBScript, Python, Ruby, Perl et JavaScript (Windows Script Host). Votre application web peut accepter des PDF téléchargés et renvoyer des classeurs Excel à l'utilisateur en temps réel.
| Fonctionnalité | Convertisseurs en ligne | Total PDF Converter X |
|---|---|---|
| Traitement par lots | Un fichier à la fois | Fichiers illimités par lot |
| Confidentialité des fichiers | Relevés envoyés sur un serveur tiers | Les fichiers ne quittent jamais votre machine |
| Alignement des colonnes | Effondre souvent les colonnes en une seule cellule | Détecte les limites des colonnes à partir de la couche de texte |
| Classeurs multi-pages | Feuille unique, sans contrôle | -EachPageSeparate pour une feuille par page |
| Automatisation | Manuelle uniquement | Ligne de commande, .bat, Planificateur de tâches, ActiveX |
| Déploiement serveur | Impossible | Conçu pour les serveurs, sans interface graphique |
| Nécessite Excel installé | N/A | Non |
| Nécessite Internet | Oui | Non |
Le convertisseur écrit des fichiers XLS valides directement. Vous n'avez pas besoin de Microsoft Office, LibreOffice ou de tout autre tableur installé sur le serveur. Cela évite les coûts de licence et l'instabilité bien connue de l'automatisation d'Excel dans des scénarios sans surveillance.
Total PDF Converter X est conçu pour un usage sans surveillance. Pas de fenêtres d'interface graphique, pas de boîtes de dialogue, pas de demandes de confirmation. Il fonctionne silencieusement depuis la ligne de commande ou dans le cadre d'un service — exactement ce dont un serveur de production a besoin.
La sortie XLS contient de vraies cellules avec de vrais types de données. Les nombres sont numériques, les colonnes restent dans les colonnes, et les fonctionnalités d'Excel — tri, filtre, formules, tableaux croisés dynamiques, graphiques — fonctionnent immédiatement. Ce n'est pas du texte déversé dans une seule cellule avec des délimiteurs — c'est un véritable classeur.
Le même outil en ligne de commande convertit PDF en DOC, XLSX, CSV, HTML, TIFF, JPEG, TXT et bien d'autres formats. Une seule installation couvre tous vos besoins d'extraction PDF. Changez -c XLS en -c CSV et vous obtenez une sortie CSV avec les mêmes fonctionnalités de traitement par lots et d'automatisation. Notez que le convertisseur fonctionne sur des PDF basés sur du texte — les PDF scannés en image uniquement nécessitent d'abord une OCR, qui n'est pas incluse dans ce produit.
(30 jours, sans e-mail ni carte bancaire)
(licence serveur, perpétuelle)
Windows 7/8/10/11 • Server 2008/2012/2016/2019/2022
"Nous traitons environ 180 factures fournisseurs et relevés bancaires chaque mois, tous arrivant au format PDF. Total PDF Converter X les transforme en XLS pendant la nuit avec une seule tâche .bat. Les colonnes s'alignent correctement, les totaux correspondent à la source, et notre macro de réconciliation lit les classeurs de la même manière qu'elle lit les fichiers exportés depuis l'ERP. L'indicateur -EachPageSeparate a été la fonctionnalité décisive — les relevés multi-pages tombent maintenant sur une feuille par compte."
Caroline Whitfield Senior Accountant, Regional Manufacturing Group
"Les dossiers de fin de trimestre de nos auditeurs reviennent sous forme de rapports PDF. Les transférer dans Excel à la main représentait deux jours de travail. Nous avons branché le convertisseur dans notre outil de reporting interne via l'interface ActiveX ; l'équipe télécharge maintenant un PDF et obtient un XLS fonctionnel en quelques secondes. Les tableaux croisés dynamiques et nos formules d'analyse existantes fonctionnent directement sur la sortie. Pas d'installation Office sur le serveur, ce que la finance et l'IT voulaient toutes les deux."
Tobias Lindgren Financial Controller, Logistics SaaS
"Les listes de prix des fournisseurs arrivent au format PDF chaque semaine d'environ trente vendeurs. Copier les tableaux à la main était peu fiable — les colonnes s'effondraient sans cesse. Le convertisseur en ligne de commande extrait chaque liste en XLS dans le cadre de notre chargement hebdomadaire, et les limites de colonnes sont correctement détectées chez tous sauf un des fournisseurs (leur PDF utilise une mise en page bizarre). Pour les autres, les classeurs alimentent directement notre modèle de tarification. La documentation sur les indicateurs de détection de colonnes pourrait être un peu plus détaillée, mais le support a répondu le même jour."
Priya Ramanathan Pricing Analyst, B2B Distributor
PDFConverter.exe C:\Reports\*.pdf C:\Output\ -c XLS. Cela convertit chaque fichier PDF du dossier source en XLS. Ajoutez -EachPageSeparate pour placer chaque page PDF sur sa propre feuille, ou -log pour écrire un journal de vérification.-EachPageSeparate et le convertisseur crée un classeur multi-feuilles avec une feuille par page PDF. Sans l'indicateur, toutes les pages sont fusionnées en une seule feuille. Utile pour les relevés mensuels où chaque page couvre un compte ou une période différents.
string src="C:\\test\\Source.PDF";
string dest="C:\\test\\Dest.TIFF";
PDFConverterX Cnv = new PDFConverterX();
Cnv.Convert(src, dest, "-c TIFF -log c:\\test\\PDF.log");
MessageBox.Show("Convert complete!");
//Travailler avec des formulaires
Cnv.LoadFromFile(src);
Cnv.SetFormFieldValue(0, "Test Name");
Cnv.SaveToFile(src);
Télécharger .NET PDF Convertisseur exemple
public static class Function1
{
[FunctionName("Function1")]
public static async Task Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
ILogger log)
{
StringBuilder sbLogs = new StringBuilder();
sbLogs.AppendLine("started...");
try
{
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.CreateNoWindow = true;
startInfo.UseShellExecute = false;
var assemblyDirectoryPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
assemblyDirectoryPath = assemblyDirectoryPath.Substring(0, assemblyDirectoryPath.Length - 4);
var executablePath = $@"{assemblyDirectoryPath}\Converter\PDFConverterX.exe";
sbLogs.AppendLine(executablePath + "...");
var msgPath = $@"{assemblyDirectoryPath}\MSG\MSG.pdf";
var outPath = Path.GetTempFileName() + ".tiff";
startInfo.FileName = executablePath;
if (File.Exists(outPath))
{
File.Delete(outPath);
}
if (File.Exists(executablePath) && File.Exists(msgPath))
{
sbLogs.AppendLine("files exists...");
}
else
sbLogs.AppendLine("EXE & MSG files NOT exists...");
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.Arguments = $"{msgPath} {outPath}";
using (Process exeProcess = Process.Start(startInfo))
{
sbLogs.AppendLine($"wait...{DateTime.Now.ToString()}");
exeProcess.WaitForExit();
sbLogs.AppendLine($"complete...{DateTime.Now.ToString()}");
}
int sleepCounter = 10;
while(!File.Exists(outPath) && sleepCounter > 0)
{
System.Threading.Thread.Sleep(1000);
sbLogs.AppendLine("sleep...");
sleepCounter--;
}
if (File.Exists(outPath))
sbLogs.AppendLine("Conversion complete successfully.");
}
catch (Exception ex)
{
sbLogs.AppendLine(ex.ToString());
}
return new OkObjectResult(sbLogs);
}
}
#include <windows.h>
static const CLSID CLSID_PDFConverterX =
{0x6B411E7E, 0x9503,0x4793,{0xA2, 0x87, 0x1F, 0x3B, 0xA8, 0x78, 0xB9, 0x1C}};
static const IID IID_IPDFConverterX =
{0xEF633BED, 0xC414,0x49B0,{0x91, 0xFB, 0xC3, 0x9C, 0x3F, 0xE0, 0x08, 0x0D}};
#undef INTERFACE
#define INTERFACE IPDFConverterX
DECLARE_INTERFACE_(IPDFConverterX, IDispatch)
{
STDMETHOD(QueryInterface)(THIS_ REFIID, PVOID*) PURE;
STDMETHOD(Convert)(THIS_ LPCTSTR, LPCTSTR, LPCTSTR) PURE;
STDMETHOD(About)(THIS) PURE;
//const SourceFile: WideString; const DestFile: WideString; const Params: WideString; safecall;
};
typedef HRESULT (__stdcall *hDllGetClassObjectFunc) (REFCLSID, REFIID, void **);
int main () {
HRESULT hr;
if (CoInitialize(NULL)) {
printf ("Error in CoInitialize.");
return -1;
}
LPCTSTR lpFileName = "PDFConverter.dll";
HMODULE hModule;
hModule = LoadLibrary (lpFileName);
printf ("hModule: %d\n", hModule);
if (hModule == 0) {
printf ("Error in LoadLibrary.");
return -1;
}
hDllGetClassObjectFunc hDllGetClassObject = NULL;
hDllGetClassObject = (hDllGetClassObjectFunc) GetProcAddress (hModule, "DllGetClassObject");
if (hDllGetClassObject == 0) {
printf ("Error in GetProcAddress.");
return -1;
}
IClassFactory *pCF = NULL;
hr = hDllGetClassObject (&CLSID_PDFConverterX, &IID_IClassFactory, (void **)&pCF);
/* Can't load with different ID */
printf ("hr hDllGetClassObject: %d\n", hr);
if (!SUCCEEDED (hr)) {
printf ("Error in hDllGetClassObject.");
return -1;
}
IPDFConverterX *pIN;
hr = pCF->lpVtbl->CreateInstance (pCF, 0, &IID_IPDFConverterX, (void **)&pIN);
printf ("hr CreateInstance: %d\n", hr);
if (!SUCCEEDED (hr)) {
printf ("Error in hDllGetClassObject.");
return -1;
}
hr = pCF->lpVtbl->Release (pCF);
printf ("hr Release: %d\n", hr);
if (!SUCCEEDED (hr)) {
printf ("Error in Release.");
return -1;
}
hr = pIN->lpVtbl->About (pIN);
printf ("hr About: %d\n", hr);
if (!SUCCEEDED (hr)) {
printf ("Error in About.");
return -1;
}
hr = pIN->lpVtbl->Convert (pIN, "test.pdf", "test.html","-cHTML");
printf ("hr Convert: %d\n", hr);
if (!SUCCEEDED (hr)) {
printf ("Error in Convert.");
return -1;
}
return 0;
}
dim C
Set C=CreateObject("PDFConverter.PDFConverterX")
C.Convert "c:\source.PDF", "c:\dest.HTML", "-cHTML -log c:\pdf.log"
set C = nothing
dim C
Set C=CreateObject("PDFConverter.PDFConverterX")
Response.Clear
Response.AddHeader "Content-Type", "binary/octet-stream"
Rresponse.AddHeader "Content-Disposition", "attachment; filename=test.TIFF"
Response.BinaryWrite c.ConvertToStream("C:\www\ASP\Source.PDF", "C:\www\ASP", "-cTIFF -log c:\PDF.log")
set C = nothing
$src="C:\\test.pdf";
$dest="C:\\test.tiff";
if (file_exists($dest)) unlink($dest);
$c= new COM("PDFConverter.PDFConverterX");
$c->convert($src,$dest, "-c TIFF -log c:\doc.log");
if (file_exists($dest)) echo "OK"; else echo "fail:".$c->ErrorMessage;
require 'win32ole'
c = WIN32OLE.new('PDFConverter.PDFConverterX')
src="C:\\test\\test.pdf";
dest="C:\\test\\test.tiff";
c.convert(src,dest, "-c TIFF -log c:\\test\\PDF.log");
if not File.exist?(dest)
puts c.ErrorMessage
end
import win32com.client
import os.path
c = win32com.client.Dispatch("PDFConverter.PDFConverterX")
src="C:\\test\\test.pdf";
dest="C:\\test\\test.tiff";
c.convert(src, dest, "-c TIFF -log c:\\test\\PDF.log");
if not os.path.exists(file_path):
print(c.ErrorMessage)
uses Dialogs, Vcl.OleAuto;
var
c: OleVariant;
begin
c:=CreateOleObject('PDFConverter.PDFConverterX');
C.Convert('c:\test\source.pdf', 'c:\test\dest.tiff', '-c TIFF -log c:\test\PDF.log');
IF c.ErrorMessage<> Then
ShowMessage(c.ErrorMessage);
end;
var c = new ActiveXObject("PDFConverter.PDFConverterX");
c.Convert("C:\\test\\source.pdf", "C:\\test\\dest.tiff", "-c TIFF");
if (c.ErrorMessage!="")
alert(c.ErrorMessage)
use Win32::OLE; my $src="C:\\test\\test.pdf"; my $dest="C:\\test\\test.tiff"; my $c = CreateObject Win32::OLE 'PDFConverter.PDFConverterX'; $c->convert($src,$dest, "-c TIFF -log c:\\test\\PDF.log"); print $c->ErrorMessage if -e $dest;
Téléchargez la version d'essai gratuite et convertissez vos fichiers en quelques minutes.
Aucune carte de crédit ou email requis.