Tiene carpetas de informes PDF, extractos bancarios o presentaciones regulatorias con tablas atrapadas dentro — y necesita esos números en Excel para poder ordenarlos, filtrarlos y aplicarles fórmulas. Copiar y pegar desde un PDF rara vez mantiene las columnas alineadas, y reformatear cientos de archivos a mano no es trabajo, es castigo. Total PDF Converter X extrae tablas de archivos PDF a libros XLS desde la línea de comandos, en lote, sin interfaz gráfica y sin necesidad de instalar Microsoft Excel. Instálelo en un servidor Windows, llámelo desde un script o mediante ActiveX, y déjelo funcionar de forma desatendida.
*.pdf) y el conversor procesa todos los archivos coincidentes en una sola ejecución-EachPageSeparate para escribir cada página del PDF en su propia hoja, o fusione todas las páginas en una sola
(30 días, sin correo electrónico)
(licencia de servidor, perpetua)
Windows 7/8/10/11 • Server 2008/2012/2016/2019/2022
PDF es un formato de documento de salida final. La página es fija, el diseño está congelado y los datos están pensados para leerse, imprimirse o archivarse — no para recalcularse. Un extracto bancario en PDF le muestra un saldo; no le permite modificar una hipótesis de interés y ver cómo se actualiza la columna. Las tablas dentro de un PDF parecen tablas, pero por debajo solo son texto posicionado en coordenadas de una página.
XLS es un formato de trabajo. Cada cifra ocupa una celda con una fila, una columna y un tipo de dato. Puede ordenar, filtrar, dinamizar, agregar fórmulas, dibujar gráficos y alimentar el resultado en un modelo posterior. Cuando los datos tabulares llegan como PDF y el siguiente paso es el análisis, los datos primero deben convertirse a XLS.
| XLS | ||
|---|---|---|
| Propósito | Salida final para lectura e impresión | Formato de trabajo para análisis y recálculo |
| Celdas y fórmulas | Ninguna — texto posicionado en una página | Celdas, fórmulas, referencias, gráficos nativos |
| Ordenar y filtrar | No soportado | Integrado |
| Tablas dinámicas | No es posible | Función nativa de Excel |
| Fidelidad copiar-pegar | Las columnas suelen colapsar en una | Las columnas se mantienen separadas |
| Público | Lectores, archivos, reguladores | Analistas, contables, controladores |
Descargue el instalador desde el enlace anterior y ejecútelo en su servidor o estación de trabajo Windows. La instalación tarda menos de un minuto. No se requiere ningún navegador ni instalación de Microsoft Excel — el conversor analiza la capa de texto del PDF con su propio motor y escribe el archivo XLS directamente.
Abra cmd.exe o PowerShell. El ejecutable del conversor es PDFConverter.exe, ubicado en la carpeta de instalación (normalmente C:\Program Files\CoolUtils\TotalPDFConverterX\). Agréguelo a la variable PATH del sistema o use la ruta completa en sus comandos.
El comando más sencillo convierte todos los archivos PDF de una carpeta a XLS:
PDFConverter.exe C:\Reports\*.pdf C:\Output\ -c XLS
Esto procesa cada archivo .pdf en C:\Reports\ y guarda los libros XLS resultantes en C:\Output\. Cada PDF produce un archivo XLS con el mismo nombre base.
Controle la salida del libro con indicadores adicionales:
PDFConverter.exe C:\Reports\*.pdf C:\Output\ -c XLS -EachPageSeparate -log C:\Logs\pdf2xls.log
-EachPageSeparate — coloca cada página del PDF en su propia hoja dentro del libro-log C:\Logs\pdf2xls.log — escribe un registro de conversión para verificaciónGuarde su comando en un archivo .bat y prográmelo con el Programador de tareas de Windows:
@echo off "C:\Program Files\CoolUtils\TotalPDFConverterX\PDFConverter.exe" C:\Incoming\*.pdf C:\Archive\XLS\ -c XLS -EachPageSeparate -log C:\Logs\pdf2xls.log
Esto ejecuta la extracción cada noche (o en el intervalo que establezca) y escribe un archivo de registro para que pueda verificar los resultados.
Total PDF Converter X incluye una interfaz ActiveX completa. Puede llamar al conversor desde cualquier entorno compatible con COM — .NET, VBScript, PHP, Python, Ruby o ASP. Esto le permite integrar la extracción de PDF a XLS en su propia aplicación web, portal de intranet o flujo de trabajo contable sin recurrir a un proceso de línea de comandos externo.
Ejemplo (C#/.NET):
PDFConverterX Cnv = new PDFConverterX();
Cnv.Convert("C:\\Reports\\statement.pdf", "C:\\Output\\statement.xls", "-c XLS -EachPageSeparate -log c:\\Logs\\pdf.log");
Ejemplo (PHP):
$c = new COM("PDFConverter.PDFConverterX");
$c->convert("C:\\Reports\\statement.pdf", "C:\\Output\\statement.xls", "-c XLS -EachPageSeparate -log c:\\Logs\\pdf.log");
La misma llamada funciona desde ASP.NET, VBScript, Python, Ruby, Perl y JavaScript (Windows Script Host). Su aplicación web puede aceptar PDFs cargados y devolver libros de Excel al usuario en tiempo real.
| Característica | Conversores en línea | Total PDF Converter X |
|---|---|---|
| Procesamiento en lote | Un archivo a la vez | Archivos ilimitados por lote |
| Privacidad de archivos | Extractos subidos a servidor de terceros | Los archivos nunca salen de su equipo |
| Alineación de columnas | A menudo colapsa columnas en una sola celda | Detecta límites de columna desde la capa de texto |
| Libros multi-hoja | Una sola hoja, sin control | -EachPageSeparate para una hoja por página |
| Automatización | Solo manual | Línea de comandos, .bat, Programador de tareas, ActiveX |
| Despliegue en servidor | No es posible | Diseñado para servidores, sin interfaz gráfica |
| Requiere Excel instalado | N/A | No |
| Requiere internet | Sí | No |
El conversor escribe archivos XLS válidos directamente. No necesita Microsoft Office, LibreOffice ni ningún programa de hoja de cálculo instalado en el servidor. Esto evita los costes de licencia y la conocida inestabilidad de automatizar Excel en escenarios desatendidos.
Total PDF Converter X está diseñado para uso desatendido. Sin ventanas de interfaz, sin cuadros de diálogo, sin mensajes de confirmación. Se ejecuta silenciosamente desde la línea de comandos o como parte de un servicio — exactamente lo que un servidor de producción necesita.
La salida XLS contiene celdas reales con tipos de datos reales. Los números son numéricos, las columnas se mantienen en columnas y las funciones de Excel — ordenar, filtrar, fórmulas, tablas dinámicas, gráficos — funcionan inmediatamente. Esto no es texto volcado en una sola celda con delimitadores — es un libro real.
La misma herramienta de línea de comandos convierte PDF a DOC, XLSX, CSV, HTML, TIFF, JPEG, TXT y más. Una sola instalación cubre todas sus necesidades de extracción PDF. Cambie -c XLS por -c CSV y obtendrá salida CSV con las mismas funciones de lote y automatización. Tenga en cuenta que el conversor trabaja sobre PDFs basados en texto — los PDFs escaneados solo con imágenes requieren OCR primero, que no se incluye en este producto.
(30 días, sin correo electrónico ni tarjeta de crédito)
(licencia de servidor, perpetua)
Windows 7/8/10/11 • Server 2008/2012/2016/2019/2022
"Procesamos unas 180 facturas de proveedores y extractos bancarios al mes, todos llegan en PDF. Total PDF Converter X los convierte a XLS durante la noche con un solo trabajo .bat. Las columnas se alinean correctamente, los totales coinciden con la fuente y nuestra macro de conciliación lee los libros igual que los archivos exportados desde el ERP. El indicador -EachPageSeparate fue la función decisiva — los extractos multipagina ahora caen en una hoja por cuenta."
Caroline Whitfield Senior Accountant, Regional Manufacturing Group
"Los paquetes de cierre trimestral de nuestros auditores vuelven como informes PDF. Llevarlos a Excel a mano era un trabajo de dos días. Conectamos el conversor a nuestra herramienta interna de informes a través de la interfaz ActiveX; el equipo ahora sube un PDF y obtiene un XLS funcional en segundos. Las tablas dinámicas y nuestras fórmulas de análisis existentes funcionan directamente sobre la salida. Sin instalación de Office en el servidor, lo que finanzas y TI ambos querían."
Tobias Lindgren Financial Controller, Logistics SaaS
"Las listas de precios de proveedores llegan como PDF cada semana de unos treinta proveedores. Copiar las tablas a mano era poco fiable — las columnas se colapsaban. El conversor de línea de comandos lleva cada lista a XLS como parte de nuestra carga semanal, y los límites de columna se detectan correctamente en todos los proveedores excepto uno (su PDF usa un diseño extraño). Para el resto, los libros alimentan directamente nuestro modelo de precios. La documentación sobre los indicadores de detección de columnas podría ser un poco más extensa, pero el soporte respondió el mismo día."
Priya Ramanathan Pricing Analyst, B2B Distributor
PDFConverter.exe C:\Reports\*.pdf C:\Output\ -c XLS. Esto convierte todos los archivos PDF de la carpeta de origen a XLS. Añada -EachPageSeparate para colocar cada página del PDF en su propia hoja, o -log para escribir un registro de verificación.-EachPageSeparate y el conversor crea un libro multi-hoja con una hoja por cada página del PDF. Sin el indicador, todas las páginas se fusionan en una sola hoja. Útil para extractos mensuales en los que cada página cubre una cuenta o periodo distinto.
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!");
//Trabajando con formularios
Cnv.LoadFromFile(src);
Cnv.SetFormFieldValue(0, "Test Name");
Cnv.SaveToFile(src);
Descargar .NET PDF Converter ejemplo
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 en CoInitialize.");
return -1;
}
LPCTSTR lpFileName = "PDFConverter.dll";
HMODULE hModule;
hModule = LoadLibrary (lpFileName);
printf ("hModule: %d\n", hModule);
if (hModule == 0) {
printf ("Error en LoadLibrary.");
return -1;
}
hDllGetClassObjectFunc hDllGetClassObject = NULL;
hDllGetClassObject = (hDllGetClassObjectFunc) GetProcAddress (hModule, "DllGetClassObject");
if (hDllGetClassObject == 0) {
printf ("Error en GetProcAddress.");
return -1;
}
IClassFactory *pCF = NULL;
hr = hDllGetClassObject (&CLSID_PDFConverterX, &IID_IClassFactory, (void **)&pCF);
/* No se puede cargar con ID diferente */
printf ("hr hDllGetClassObject: %d\n", hr);
if (!SUCCEEDED (hr)) {
printf ("Error en 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 en hDllGetClassObject.");
return -1;
}
hr = pCF->lpVtbl->Release (pCF);
printf ("hr Release: %d\n", hr);
if (!SUCCEEDED (hr)) {
printf ("Error en Release.");
return -1;
}
hr = pIN->lpVtbl->About (pIN);
printf ("hr About: %d\n", hr);
if (!SUCCEEDED (hr)) {
printf ("Error en About.");
return -1;
}
hr = pIN->lpVtbl->Convert (pIN, "test.pdf", "test.html","-cHTML");
printf ("hr Convert: %d\n", hr);
if (!SUCCEEDED (hr)) {
printf ("Error en 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;
Descargue la versión de prueba y convierta sus archivos en minutos.
No se requiere tarjeta de crédito ni email.