Masz foldery z raportami PDF, wyciągami bankowymi lub zgłoszeniami regulacyjnymi, a dane tabelaryczne wewnątrz nich muszą trafić do bazy danych, arkusza kalkulacyjnego lub potoku analitycznego. Kopiowanie i wklejanie tabel z czytnika PDF do Excela niszczy strukturę wierszy i kolumn już w pierwszych trzech stronach. Total PDF Converter X wyodrębnia tabele z plików PDF do CSV z wiersza poleceń, wsadowo, bez GUI. Zainstaluj go na serwerze Windows, wywołaj ze skryptu lub przez ActiveX i pozwól mu działać bez nadzoru.
*.pdf), a konwerter przetworzy każdy pasujący plik w jednym przebiegu-CSVDelimiter, aby pasować do systemu docelowego-Encoding, aby czysto obsługiwać znaki spoza alfabetu łacińskiego-CSVQuotation, aby chronić przecinki wewnątrz wartości komórek
(30 dni, bez e-maila)
(licencja serwerowa, wieczysta)
Windows 7/8/10/11 • Server 2008/2012/2016/2019/2022
PDF to format o stałym układzie zaprojektowany do wizualnej dystrybucji i druku. Tabela wewnątrz PDF nie jest strukturalnym obiektem danych — to seria fragmentów tekstu umieszczonych w określonych współrzędnych x/y na stronie. Czytnik renderuje je w sposób, który wygląda jak tabela, ale w samym pliku nie ma wierszy, kolumn ani komórek. Dlatego ręczne kopiowanie i wklejanie z PDF rzadko daje czyste wyjście tabelaryczne.
CSV to format danych zwykłego tekstu z jednym rekordem na linię i polami oddzielonymi separatorem. Importuje się bezpośrednio do Excela, Google Sheets, baz danych SQL, ramek danych pandas, R, Power BI, Tableau i każdego istniejącego narzędzia ETL. Gdy dane uwięzione w PDF muszą wejść do procesu analitycznego lub księgowego, najpierw muszą stać się CSV.
| CSV | ||
|---|---|---|
| Cel | Wizualna dystrybucja, druk, archiwizacja | Pozyskiwanie i analiza danych |
| Struktura | Współrzędne strony, brak prawdziwych tabel | Wiersze i kolumny, natywnie |
| Edycja | Trudna, wymaga edytora PDF | Otwiera się w dowolnym edytorze tekstu lub arkuszu |
| Ręczne kopiuj-wklej | Traci strukturę tabeli | Zachowuje strukturę dokładnie |
| Proces pracy | Dokument na końcu potoku | Początek potoku danych |
Zastrzeżenie: automatyczna ekstrakcja PDF do CSV działa na PDF-ach tekstowych — tych wygenerowanych z systemów księgowych, silników raportów albo zapisanych jako PDF z arkusza kalkulacyjnego lub bazy danych. Skanowane PDF-y (obrazy papieru) nie zawierają warstwy tekstu i wymagają OCR jako oddzielnego kroku wstępnego, zanim jakakolwiek ekstrakcja CSV będzie możliwa.
Pobierz instalator z linku powyżej i uruchom go na serwerze lub stacji roboczej Windows. Instalacja trwa mniej niż minutę. Konwerter parsuje warstwę tekstu PDF bezpośrednio — nie potrzebuje żadnego zewnętrznego czytnika PDF, Acrobata ani instalacji pakietu Office.
Otwórz cmd.exe lub PowerShell. Plik wykonywalny konwertera to PDFConverter.exe, znajdujący się w folderze instalacyjnym (zwykle C:\Program Files\CoolUtils\TotalPDFConverterX\). Dodaj go do systemowej zmiennej PATH lub używaj pełnej ścieżki w poleceniach.
Najprostsze polecenie wyodrębnia tabele ze wszystkich plików PDF w folderze do CSV:
PDFConverter.exe C:\Reports\*.pdf C:\Output\ -c CSV
Przetwarza każdy plik .pdf w folderze C:\Reports\ i zapisuje wynikowe pliki CSV w C:\Output\. Każdy PDF tworzy jeden CSV o tej samej nazwie bazowej. Wielostronicowe PDF-y są domyślnie łączone w jeden plik CSV na plik źródłowy.
Kontroluj format CSV za pomocą dodatkowych flag:
PDFConverter.exe C:\Reports\*.pdf C:\Output\ -c CSV -CSVDelimiter ; -CSVQuotation " -Encoding UTF-8 -log C:\Logs\pdf2csv.log
-CSVDelimiter ; — separator pól (przecinek, średnik, tabulator, kreska pionowa)-CSVQuotation " — otaczaj pola tekstowe podwójnymi cudzysłowami, aby chronić przecinki wewnątrz komórek-Encoding UTF-8 — kodowanie wyjścia (UTF-8, UTF-16, ANSI) dla poprawnej obsługi znaków spoza alfabetu łacińskiego-log C:\Logs\pdf2csv.log — zapisz dziennik konwersji do weryfikacjiZapisz polecenie w pliku .bat i zaplanuj je za pomocą Harmonogramu zadań systemu Windows:
@echo off "C:\Program Files\CoolUtils\TotalPDFConverterX\PDFConverter.exe" C:\Incoming\*.pdf C:\Archive\CSV\ -c CSV -CSVDelimiter ; -Encoding UTF-8 -log C:\Logs\pdf2csv.log
Uruchamia ekstrakcję każdej nocy (lub z dowolną częstotliwością) i zapisuje plik dziennika, aby można było zweryfikować wyniki. Połącz to z następnym krokiem importującym pliki CSV do bazy danych lub hurtowni analitycznej.
Total PDF Converter X zawiera pełny interfejs ActiveX. Możesz wywoływać konwerter z dowolnego środowiska zgodnego z COM — .NET, VBScript, PHP, Python, Ruby lub ASP. Pozwala to osadzić ekstrakcję PDF do CSV we własnej aplikacji webowej, portalu intranetowym lub procesie dokumentowym bez uruchamiania osobnego procesu z wiersza poleceń.
Przykład (C#/.NET):
PDFConverterX Cnv = new PDFConverterX();
Cnv.Convert("C:\\Reports\\statement.pdf", "C:\\Output\\statement.csv", "-c CSV -CSVDelimiter ; -Encoding UTF-8 -log c:\\Logs\\pdf.log");
Przykład (PHP):
$c = new COM("PDFConverter.PDFConverterX");
$c->convert("C:\\Reports\\statement.pdf", "C:\\Output\\statement.csv", "-c CSV -CSVDelimiter ; -Encoding UTF-8 -log c:\\Logs\\pdf.log");
To samo wywołanie działa z ASP.NET, VBScript, Python, Ruby, Perl i JavaScript (Windows Script Host). Twoja aplikacja webowa może przyjmować przesyłane pliki PDF i zwracać użytkownikowi gotowe do importu dane CSV w czasie rzeczywistym.
| Funkcja | Konwertery online | Total PDF Converter X |
|---|---|---|
| Przetwarzanie wsadowe | Jeden plik naraz | Nieograniczona liczba plików na partię |
| Prywatność plików | Pliki wysyłane na serwer zewnętrzny | Pliki nigdy nie opuszczają Twojego komputera |
| Dane poufne | Ryzykowne — wyciągi bankowe, płace, zgłoszenia | Bezpieczne — przetwarzanie lokalne |
| Limity rozmiaru pliku | Typowy limit 5–25 MB | Brak narzuconego limitu |
| Kontrola separatora | Stały przecinek, bez wyboru | Przecinek, średnik, tabulator, kreska pionowa |
| Kontrola kodowania | Często tylko ANSI, łamie Unicode | UTF-8, UTF-16, ANSI do wyboru |
| Automatyzacja | Tylko ręcznie | Wiersz poleceń, .bat, Harmonogram zadań, ActiveX |
| Wdrożenie na serwerze | Niemożliwe | Zaprojektowany dla serwerów, bez GUI |
| Wymaga internetu | Tak | Nie |
Konwerter parsuje warstwę tekstu PDF i rekonstruuje strukturę wiersz-i-kolumna na podstawie współrzędnych i wyrównania. Wielokolumnowe układy raportów, scalone nagłówki i tabele ciągnące się przez wiele stron są obsługiwane w jednym przebiegu — nie jako ciąg rozproszonych słów.
Total PDF Converter X jest zaprojektowany do pracy bez nadzoru. Żadnych okien GUI, okien dialogowych, monitów potwierdzenia ani zależności od Acrobata. Działa cicho z wiersza poleceń lub jako część usługi — dokładnie to, czego potrzebuje produkcyjny potok ekstrakcji.
Wyciągi bankowe z niemieckimi umlautami, polskimi znakami diakrytycznymi, cyrylickimi nazwami sprzedawców lub chińskimi kontrahentami pozostają czytelne w wyjściu CSV. -Encoding UTF-8 w wierszu poleceń i wynikowy plik czysto importuje się do dowolnej nowoczesnej bazy danych albo narzędzia BI.
To samo narzędzie wiersza poleceń konwertuje PDF do DOC, XLS, HTML, TXT, TIFF, JPEG i wielu innych formatów. Jedna instalacja pokrywa każdy cel konwersji PDF, jakiego możesz potrzebować. Zmień -c CSV na -c XLS, a otrzymasz skoroszyt Excela z tymi samymi funkcjami wsadowymi i automatyzacji.
(30 dni, bez e-maila i karty kredytowej)
(licencja serwerowa, wieczysta)
Windows 7/8/10/11 • Server 2008/2012/2016/2019/2022
"Kwartalne wyniki przychodzą jako PDF-y, a my modelujemy je w Excelu. Total PDF Converter X działa z wiersza poleceń na całym folderze zgłoszeń 10-Q i produkuje czyste CSV w mniej niż minutę. Wielokolumnowe tabele i scalone nagłówki wychodzą poprawnie ustrukturyzowane, co było wykluczającym warunkiem przy dwóch wcześniejszych narzędziach, które próbowaliśmy. Separator średnika i flaga UTF-8 oznaczają, że europejscy emitenci już nie psują naszego importu."
Caroline Whitfield Senior Financial Analyst, Mid-Market Equity Research
"Pozyskujemy setki wyciągów bankowych dziennie do uzgadniania. Skrypt .bat owijający PDFConverter.exe upuszcza pliki CSV do gorącego folderu, a nasz potok ETL je odbiera. Zerowa obecność GUI na serwerze, żadnej licencji Acrobata, a plik dziennika daje nam ścieżkę audytu. Konfiguracja zajęła około godziny, w tym testy ActiveX z naszego wewnętrznego narzędzia C#."
Rohan Mehta Data Engineer, Banking Operations
"Zlecenia w terenie często wręczają nam księgi główne PDF z systemów klientów. Konwertowanie tego do CSV oznaczało żmudne kopiuj-wklej albo płacenie za importy IDEA. Teraz uruchamiamy konwerter na kopii zainstalowanej na USB i ładujemy CSV bezpośrednio do naszych analitycznych dokumentów roboczych. Skanowane PDF-y wciąż wymagają OCR po stronie wcześniejszej, ale dla natywnych PDF-ów wykrywanie tabel jest niezawodne. Dokumentacja mogłaby być bardziej szczegółowa, ale wsparcie odpowiedziało w ciągu dnia."
Anika Larsen Audit Specialist, Big Four Practice
PDFConverter.exe C:\Reports\*.pdf C:\Output\ -c CSV. Wyodrębnia to tabele z każdego PDF w folderze źródłowym i zapisuje je jako pliki CSV. Dodaj flagi takie jak -CSVDelimiter ;, -Encoding UTF-8 lub -log, aby kontrolować wyjście.-CSVDelimiter, po którym następuje znak. -CSVDelimiter ; dla średnika (popularne w lokalizacjach europejskich, gdzie przecinek jest separatorem dziesiętnym), -CSVDelimiter \t dla tabulatora albo -CSVDelimiter | dla kreski pionowej. Domyślnie jest przecinek.-Encoding UTF-8 do wiersza poleceń. Produkuje to pliki CSV w kodowaniu UTF-8, które zachowują niemieckie umlauty, polskie znaki diakrytyczne, cyrylicę, chiński, japoński i wszelkie inne znaki Unicode obecne w PDF. Obsługiwane są również UTF-16 i ANSI.-CSVQuotation ", aby otoczyć pola tekstowe podwójnymi cudzysłowami. Konwerter eskejpuje osadzone cudzysłowy zgodnie z RFC 4180, dzięki czemu wartości takie jak "Smith, John" przeżywają podróż w obie strony do Excela, pandas albo dowolnego standardowego parsera CSV bez łamania liczby kolumn.PDFConverter.PDFConverterX). Możesz wywoływać go z .NET, PHP, Python, VBScript, ASP, Ruby, Perl i dowolnego innego środowiska zgodnego z COM, aby osadzić ekstrakcję PDF do CSV bezpośrednio w aplikacji.
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;
Pobierz wersję próbną i konwertuj pliki w kilka minut.
Nie jest wymagana karta kredytowa ani e-mail.