У вас есть папки с PDF-отчётами, банковскими выписками или регуляторными отчётами с таблицами, запертыми внутри них — и эти числа нужны вам в Excel, чтобы можно было сортировать, фильтровать и применять формулы. Копирование из PDF редко сохраняет столбцы выровненными, а ручное переформатирование сотен файлов — это не работа, а наказание. Total PDF Converter X извлекает таблицы из PDF-файлов в книги XLS из командной строки, пакетно, без графического интерфейса и без установленного Microsoft Excel. Установите его на сервер Windows, вызывайте из скрипта или через ActiveX, и он будет работать автоматически.
*.pdf), и конвертер обработает все подходящие файлы за один запуск-EachPageSeparate для записи каждой страницы PDF на свой лист или объедините все страницы в одну
(30 дней, без email)
(серверная лицензия, бессрочная)
Windows 7/8/10/11 • Server 2008/2012/2016/2019/2022
PDF — формат документа в окончательной форме. Страница зафиксирована, макет заморожен, и данные на ней предназначены для чтения, печати или хранения — не для пересчёта. Банковская выписка в PDF показывает вам баланс; она не позволяет изменить процентное допущение и наблюдать, как обновляется столбец. Таблицы внутри PDF выглядят как таблицы, но под ними — просто текст, размещённый в координатах на странице.
XLS — рабочий формат. Каждое значение находится в ячейке со строкой, столбцом и типом данных. Вы можете сортировать, фильтровать, делать сводные таблицы, добавлять формулы, рисовать графики и подавать результат в нижестоящую модель. Когда табличные данные приходят в виде PDF, а следующий шаг — анализ, данные должны сначала стать XLS.
| XLS | ||
|---|---|---|
| Назначение | Окончательный вывод для чтения и печати | Рабочий формат для анализа и пересчёта |
| Ячейки и формулы | Нет — текст, размещённый на странице | Родные ячейки, формулы, ссылки, графики |
| Сортировка и фильтрация | Не поддерживается | Встроенная |
| Сводные таблицы | Невозможны | Родная функция Excel |
| Точность копирования | Столбцы часто схлопываются в один | Столбцы остаются раздельными |
| Аудитория | Читатели, архивы, регуляторы | Аналитики, бухгалтеры, контролёры |
Скачайте установщик по ссылке выше и запустите его на вашем сервере или рабочей станции Windows. Установка занимает меньше минуты. Браузер или установка Microsoft Excel не требуются — конвертер парсит текстовый слой PDF собственным движком и пишет XLS-файл напрямую.
Откройте cmd.exe или PowerShell. Исполняемый файл конвертера — PDFConverter.exe, расположенный в папке установки (обычно C:\Program Files\CoolUtils\TotalPDFConverterX\). Добавьте его в системную переменную PATH или используйте полный путь в командах.
Простейшая команда конвертирует все PDF-файлы в папке в XLS:
PDFConverter.exe C:\Reports\*.pdf C:\Output\ -c XLS
Эта команда обрабатывает каждый файл .pdf в папке C:\Reports\ и сохраняет полученные книги XLS в C:\Output\. Каждый PDF создаёт один XLS-файл с тем же базовым именем.
Управляйте выводом книги с помощью дополнительных флагов:
PDFConverter.exe C:\Reports\*.pdf C:\Output\ -c XLS -EachPageSeparate -log C:\Logs\pdf2xls.log
-EachPageSeparate — разместить каждую страницу PDF на отдельном листе внутри книги-log C:\Logs\pdf2xls.log — записать лог конвертации для проверкиСохраните команду в файле .bat и запланируйте его через Планировщик задач Windows:
@echo off "C:\Program Files\CoolUtils\TotalPDFConverterX\PDFConverter.exe" C:\Incoming\*.pdf C:\Archive\XLS\ -c XLS -EachPageSeparate -log C:\Logs\pdf2xls.log
Эта команда запускает извлечение каждую ночь (или с любым заданным интервалом) и записывает лог-файл, чтобы вы могли проверить результаты.
Total PDF Converter X включает полный интерфейс ActiveX. Вы можете вызывать конвертер из любой COM-совместимой среды — .NET, VBScript, PHP, Python, Ruby или ASP. Это позволяет встроить извлечение PDF в XLS в ваше веб-приложение, интранет-портал или бухгалтерский рабочий процесс без запуска командной строки.
Пример (C#/.NET):
PDFConverterX Cnv = new PDFConverterX();
Cnv.Convert("C:\\Reports\\statement.pdf", "C:\\Output\\statement.xls", "-c XLS -EachPageSeparate -log c:\\Logs\\pdf.log");
Пример (PHP):
$c = new COM("PDFConverter.PDFConverterX");
$c->convert("C:\\Reports\\statement.pdf", "C:\\Output\\statement.xls", "-c XLS -EachPageSeparate -log c:\\Logs\\pdf.log");
Тот же вызов работает из ASP.NET, VBScript, Python, Ruby, Perl и JavaScript (Windows Script Host). Ваше веб-приложение может принимать загруженные PDF-файлы и возвращать книги Excel пользователю в реальном времени.
| Функция | Онлайн-конвертеры | Total PDF Converter X |
|---|---|---|
| Пакетная обработка | По одному файлу за раз | Неограниченное количество файлов за раз |
| Конфиденциальность файлов | Выписки загружаются на сторонний сервер | Файлы не покидают ваш компьютер |
| Выравнивание столбцов | Часто схлопывает столбцы в одну ячейку | Распознаёт границы столбцов из текстового слоя |
| Многостраничные книги | Один лист, без управления | -EachPageSeparate для одного листа на страницу |
| Автоматизация | Только вручную | Командная строка, .bat, Планировщик задач, ActiveX |
| Серверное развёртывание | Невозможно | Разработан для серверов, GUI не требуется |
| Требуется установленный Excel | Не применимо | Нет |
| Требуется интернет | Да | Нет |
Конвертер пишет валидные XLS-файлы напрямую. Вам не нужен Microsoft Office, LibreOffice или любой другой табличный редактор, установленный на сервере. Это позволяет избежать расходов на лицензии и хорошо известной нестабильности автоматизации Excel в автоматических сценариях.
Total PDF Converter X разработан для автоматической работы. Никаких окон GUI, диалоговых окон, запросов подтверждения. Он работает тихо из командной строки или как часть сервиса — именно то, что нужно серверу в продакшене.
Выходной XLS содержит настоящие ячейки с настоящими типами данных. Числа — численные, столбцы остаются столбцами, и функции Excel — сортировка, фильтрация, формулы, сводные таблицы, графики — работают сразу. Это не текст, сваленный в одну ячейку с разделителями — это настоящая книга.
Тот же инструмент командной строки конвертирует PDF в DOC, XLSX, CSV, HTML, TIFF, JPEG, TXT и другие форматы. Одна установка покрывает все ваши потребности в извлечении из PDF. Замените -c XLS на -c CSV, и вы получите вывод CSV с теми же функциями пакетной обработки и автоматизации. Обратите внимание, что конвертер работает с текстовыми PDF — сканированные PDF только из изображений требуют сначала OCR, который не входит в этот продукт.
(30 дней, без email и кредитной карты)
(серверная лицензия, бессрочная)
Windows 7/8/10/11 • Server 2008/2012/2016/2019/2022
"Мы обрабатываем около 180 счетов поставщиков и банковских выписок ежемесячно, все приходят в PDF. Total PDF Converter X превращает их в XLS за ночь одним .bat-заданием. Столбцы выстраиваются корректно, итоги совпадают с источником, а наш макрос сверки читает книги так же, как файлы, экспортированные из ERP. Флаг -EachPageSeparate стал решающей функцией — многостраничные выписки теперь разносятся по одному листу на счёт."
Caroline Whitfield Senior Accountant, Regional Manufacturing Group
"Пакеты на конец квартала от наших аудиторов возвращаются в виде PDF-отчётов. Перетаскивание их в Excel вручную было двухдневной работой. Мы подключили конвертер к нашему внутреннему инструменту отчётности через интерфейс ActiveX; команда теперь загружает PDF и за секунды получает рабочий XLS. Сводные таблицы и наши существующие аналитические формулы работают прямо на выводе. Без установки Office на сервере, чего хотели и финансы, и IT."
Tobias Lindgren Financial Controller, Logistics SaaS
"Прайс-листы поставщиков приходят в PDF каждую неделю примерно от тридцати продавцов. Копирование таблиц вручную было ненадёжным — столбцы постоянно схлопывались. Конвертер из командной строки подтягивает каждый список в XLS как часть нашей еженедельной загрузки, и границы столбцов корректно распознаются у всех, кроме одного из поставщиков (его PDF использует странный макет). Для остальных книги напрямую питают нашу ценовую модель. Документация по флагам распознавания столбцов могла бы быть подробнее, но поддержка ответила в тот же день."
Priya Ramanathan Pricing Analyst, B2B Distributor
PDFConverter.exe C:\Reports\*.pdf C:\Output\ -c XLS. Она конвертирует каждый PDF-файл в исходной папке в XLS. Добавьте -EachPageSeparate, чтобы разместить каждую страницу PDF на отдельном листе, или -log для записи лога проверки.-EachPageSeparate, и конвертер создаст многолистовую книгу с одним листом на каждую страницу PDF. Без этого флага все страницы объединяются в один лист. Полезно для месячных выписок, где каждая страница покрывает отдельный счёт или период.
string src = @"C:\test\Source.pdf";
string dest = @"C:\test\Dest.docx";
var cnv = new PDFConverterX();
cnv.Convert(src, dest, "-cDOC -log c:\\test\\PDF.log");
if (!string.IsNullOrEmpty(cnv.ErrorMessage))
throw new Exception(cnv.ErrorMessage);
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 srcPath = $@"{assemblyDirectoryPath}\src\sample.pdf";
var outPath = Path.GetTempFileName() + ".docx";
startInfo.FileName = executablePath;
if (File.Exists(outPath))
{
File.Delete(outPath);
}
if (File.Exists(executablePath) && File.Exists(srcPath))
{
sbLogs.AppendLine("files exists...");
}
else
sbLogs.AppendLine("EXE & source files NOT exists...");
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.Arguments = $"\"{srcPath}\" \"{outPath}\" -cDOC";
using (Process exeProcess = Process.Start(startInfo))
{
sbLogs.AppendLine($"wait...{DateTime.Now.ToString()}");
exeProcess.WaitForExit();
sbLogs.AppendLine($"complete...{DateTime.Now.ToString()}");
}
sbLogs.AppendLine("Conversion complete.");
}
catch (Exception ex)
{
sbLogs.AppendLine(ex.ToString());
}
return new OkObjectResult(sbLogs);
}
}
dim C
Set C=CreateObject("PDFConverter.PDFConverterX")
C.Convert "c:\test\source.pdf", "c:\test\dest.docx", "-cDOC -log c:\test\PDF.log"
Response.Write C.ErrorMessage
set C = nothing
dim C
Set C=CreateObject("PDFConverter.PDFConverterX")
Response.Clear
Response.AddHeader "Content-Type", "binary/octet-stream"
Response.AddHeader "Content-Disposition", "attachment; filename=test.docx"
Response.BinaryWrite C.ConvertToStream("C:\www\ASP\Source.pdf", "C:\www\ASP", "-cDOC -log c:\html.log")
set C = nothing
$src="C:\\test\\test.pdf";
$dest="C:\\test\\test.docx";
if (file_exists($dest)) unlink($dest);
$c= new COM("PDFConverter.PDFConverterX");
$c->convert($src,$dest, "-cDOC -log c:\\test\\PDF.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.docx"
c.convert(src, dest, "-cDOC -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.docx"
c.convert(src, dest, "-cDOC -log c:\\test\\PDF.log")
if not os.path.exists(dest):
print(c.ErrorMessage)
uses Dialogs, Vcl.OleAuto;
var
c: OleVariant;
begin
c := CreateOleObject('PDFConverter.PDFConverterX');
c.Convert('c:\test\source.pdf', 'c:\test\dest.docx', '-cDOC -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.docx", "-cDOC");
if (c.ErrorMessage != "")
alert(c.ErrorMessage)
use Win32::OLE; my $src = "C:\\test\\test.pdf"; my $dest = "C:\\test\\test.docx"; my $c = CreateObject Win32::OLE 'PDFConverter.PDFConverterX'; $c->convert($src, $dest, "-cDOC -log c:\\test\\PDF.log") print $c->ErrorMessage if -e $dest;
Скачайте пробную версию и конвертируйте файлы за считанные минуты.
Не требуется ни банковская карта, ни email.