Íçlerine kilitlenmiş tabloları olan klasörler dolusu PDF raporu, banka ekstresi veya mevzuat dosyanız var — ve bu sayıları sıralayabilmek, filtreleyebilmek ve formüller çalıştırabilmek için Excel'de bulundurmanız gerekiyor. PDF'den kopyala-yapıştır nadiren sütunları hizalı tutar ve elle yüzlerce dosyayı yeniden biçimlendirmek iş değil, cezadır. Total PDF Converter X, PDF dosyalarından tabloları komut satırından toplu olarak, GUI olmadan ve Microsoft Excel kurulumu gerektirmeden XLS çalışma kitaplarına çıkarır. Bir Windows sunucusuna kurun, bir betikten veya ActiveX üzerinden çağırın ve gözetimsiz çalıştırın.
*.pdf) geçirin ve dönüştürücü tek seferde eşleşen tüm dosyaları işler-EachPageSeparate kullanın veya tüm sayfaları bir tanesinde birleştirin
(30 gün, e-posta gerekmez)
(sunucu lisansı, kalıcı)
Windows 7/8/10/11 • Server 2008/2012/2016/2019/2022
PDF, son hal belge formatıdır. Sayfa sabittir, düzen dondurulmuştur ve içindeki veri okunmak, yazdırılmak veya dosyalanmak içindir — yeniden hesaplanmak için değil. PDF'deki bir banka ekstresi size bir bakiye gösterir; bir faiz varsayımını değiştirip sütunun güncellenmesini izlemenize izin vermez. PDF içindeki tablolar tablo gibi görünür, ancak altında yalnızca bir sayfada koordinatlarda konumlandırılmış metindir.
XLS bir çalışma formatıdır. Her rakam, bir satır, sütun ve veri türü olan bir hücrede yer alır. Sıralayabilir, filtreleyebilir, özet oluşturabilir, formül ekleyebilir, grafik çizebilir ve sonucu aşağı akışlı bir modele besleyebilirsiniz. Tablolu veriler PDF olarak geldiğinde ve bir sonraki adım analizse, verinin önce XLS'ye dönüşmesi gerekir.
| XLS | ||
|---|---|---|
| Amaç | Okuma ve yazdırma için son hal çıktı | Analiz ve yeniden hesaplama için çalışma formatı |
| Hücreler ve formüller | Yok — sayfada konumlandırılmış metin | Yerel hücreler, formüller, başvurular, grafikler |
| Sırala ve filtrele | Desteklenmez | Yerleşik |
| Özet tablolar | Mümkün değil | Yerel Excel özelliği |
| Kopyala-yapıştır sadakati | Sütunlar sıkça tek bir sütunda çöker | Sütunlar ayrı kalır |
| Hedef kitle | Okuyucular, arşivler, düzenleyiciler | Analistler, muhasebeciler, kontrolörler |
Yukarıdaki bağlantıdan yükleyiciyi indirin ve Windows sunucunuzda veya iş istasyonunuzda çalıştırın. Kurulum bir dakikadan kısa sürer. Tarayıcı veya Microsoft Excel kurulumu gerekmez — dönüştürücü, PDF metin katmanını kendi motoruyla ayrıştırır ve XLS dosyasını doğrudan yazar.
cmd.exe veya PowerShell'i açın. Dönüştürücü yürütülebilir dosyası PDFConverter.exe olup kurulum klasöründe bulunur (genellikle C:\Program Files\CoolUtils\TotalPDFConverterX\). Sistem PATH'inize ekleyin veya komutlarınızda tam yolu kullanın.
En basit komut, bir klasördeki tüm PDF dosyalarını XLS'ye dönüştürür:
PDFConverter.exe C:\Reports\*.pdf C:\Output\ -c XLS
Bu komut, C:\Reports\ içindeki her .pdf dosyasını işler ve sonuç XLS çalışma kitaplarını C:\Output\ klasörüne kaydeder. Her PDF, aynı temel ada sahip bir XLS dosyası üretir.
Ek bayraklarla çalışma kitabı çıktısını kontrol edin:
PDFConverter.exe C:\Reports\*.pdf C:\Output\ -c XLS -EachPageSeparate -log C:\Logs\pdf2xls.log
-EachPageSeparate — çalışma kitabı içinde her PDF sayfasını kendi sayfasına koyun-log C:\Logs\pdf2xls.log — doğrulama için bir dönüştürme günlüğü yazınKomutunuzu bir .bat dosyasına kaydedin ve Windows Görev Zamanlayıcısı ile zamanlama yapın:
@echo off "C:\Program Files\CoolUtils\TotalPDFConverterX\PDFConverter.exe" C:\Incoming\*.pdf C:\Archive\XLS\ -c XLS -EachPageSeparate -log C:\Logs\pdf2xls.log
Bu, çıkarımı her gece (veya belirlediğiniz aralıkta) çalıştırır ve sonuçları doğrulayabilmeniz için bir günlük dosyası yazar.
Total PDF Converter X tam bir ActiveX arayüzü içerir. Dönüştürücüyü herhangi bir COM uyumlu ortamdan çağırabilirsiniz — .NET, VBScript, PHP, Python, Ruby veya ASP. Bu sayede, PDF'den XLS'ye çıkarımı bir komut satırı işlemine yönlendirmeden kendi web uygulamanıza, intranet portalınıza veya muhasebe iş akışınıza gömebilirsiniz.
Örnek (C#/.NET):
PDFConverterX Cnv = new PDFConverterX();
Cnv.Convert("C:\\Reports\\statement.pdf", "C:\\Output\\statement.xls", "-c XLS -EachPageSeparate -log c:\\Logs\\pdf.log");
Örnek (PHP):
$c = new COM("PDFConverter.PDFConverterX");
$c->convert("C:\\Reports\\statement.pdf", "C:\\Output\\statement.xls", "-c XLS -EachPageSeparate -log c:\\Logs\\pdf.log");
Aynı çağrı ASP.NET, VBScript, Python, Ruby, Perl ve JavaScript (Windows Script Host) üzerinden de çalışır. Web uygulamanız yüklenen PDF'leri kabul edebilir ve kullanıcıya gerçek zamanlı olarak Excel çalışma kitapları döndürebilir.
| Özellik | Çevrimiçi Dönüştürücüler | Total PDF Converter X |
|---|---|---|
| Toplu işleme | Tek seferde bir dosya | Toplu işlemde sınırsız dosya |
| Dosya gizliliği | Ekstreler üçüncü taraf sunucuya yüklenir | Dosyalar makinenizden asla çıkmaz |
| Sütun hizalaması | Sütunlar genellikle tek hücrede çöker | Metin katmanından sütun sınırlarını algılar |
| Çok sayfalı çalışma kitapları | Tek sayfa, kontrol yok | Sayfa başına bir çalışma sayfası için -EachPageSeparate |
| Otomasyon | Yalnızca manuel | Komut satırı, .bat, Görev Zamanlayıcısı, ActiveX |
| Sunucu dağıtımı | Mümkün değil | Sunucular için tasarlanmış, GUI gerektirmez |
| Excel kurulumu gerektirir | Yok | Hayır |
| Ínternet gerektirir | Evet | Hayır |
Dönüştürücü geçerli XLS dosyalarını doğrudan yazar. Sunucuda Microsoft Office, LibreOffice veya herhangi bir e-tablo programı kurulu olması gerekmez. Bu, lisans maliyetlerinden ve gözetimsiz senaryolarda Excel'i otomatikleştirmenin iyi bilinen kararlılık sorunlarından kaçınır.
Total PDF Converter X gözetimsiz kullanım için tasarlanmıştır. GUI pencereleri, iletişim kutuları, onay istemleri yoktur. Komut satırından veya bir hizmetin parçası olarak sessizce çalışır — tam olarak bir üretim sunucusunun ihtiyacı olan budur.
XLS çıktısı, gerçek veri türlerine sahip gerçek hücreler içerir. Sayılar sayısaldır, sütunlar sütunlarında kalır ve Excel özellikleri — sırala, filtrele, formüller, özet tablolar, grafikler — hemen çalışır. Bu, ayırıcılarla tek bir hücreye dökülen metin değildir — gerçek bir çalışma kitabıdır.
Aynı komut satırı aracı, PDF'yi DOC, XLSX, CSV, HTML, TIFF, JPEG, TXT ve daha fazlasına dönüştürür. Tek kurulumla tüm PDF çıkarım ihtiyaçlarınızı karşılar. -c XLS yerine -c CSV yazın ve aynı toplu işleme ve otomasyon özellikleriyle CSV çıktısı alın. Dönüştürücünün metin tabanlı PDF'lerde çalıştığını unutmayın — taranmış yalnızca-görüntü PDF'leri önce OCR gerektirir, bu üründe dahil değildir.
(30 gün, e-posta veya kredi kartı gerekmez)
(sunucu lisansı, kalıcı)
Windows 7/8/10/11 • Server 2008/2012/2016/2019/2022
"Her ay yaklaşık 180 satıcı faturası ve banka ekstresi işliyoruz, hepsi PDF olarak geliyor. Total PDF Converter X bunları bir .bat işiyle gece boyunca XLS'ye dönüştürüyor. Sütunlar doğru hizalanıyor, toplamlar kaynakla eşleşiyor ve mutabakat makromuz çalışma kitaplarını, ERP'den dışa aktarılan dosyaları okuduğu gibi okuyor. -EachPageSeparate bayrağı karar verici özellikti — çok sayfalı ekstreler şimdi hesap başına bir sayfaya düşüyor."
Caroline Whitfield Senior Accountant, Regional Manufacturing Group
"Denetçilerimizden gelen çeyrek sonu paketleri PDF raporlar olarak geri dönüyor. Bunları elle Excel'e çekmek iki günlük bir işti. Dönüştürücüyü ActiveX arayüzü üzerinden dahili raporlama aracımıza bağladık; ekip artık bir PDF yüklüyor ve saniyeler içinde çalışan bir XLS alıyor. Özet tablolar ve mevcut analiz formüllerimiz çıktıda doğrudan çalışıyor. Sunucuda Office kurulumu yok, bunu hem finans hem de IT istedi."
Tobias Lindgren Financial Controller, Logistics SaaS
"Tedarikçi fiyat listeleri her hafta yaklaşık otuz satıcıdan PDF olarak geliyor. Tabloları elle kopyalamak güvenilmezdi — sütunlar çöküp duruyordu. Komut satırı dönüştürücüsü, haftalık yüklememizin parçası olarak her listeyi XLS'ye çekiyor ve sütun sınırları tedarikçilerin biri dışında hepsinde doğru algılanıyor (onların PDF'i tuhaf bir düzen kullanıyor). Geri kalanlar için çalışma kitapları doğrudan fiyatlandırma modelimizi besliyor. Sütun algılama bayraklarına ilişkin belgeler biraz daha ayrıntılı olabilirdi, ancak destek aynı gün yanıt verdi."
Priya Ramanathan Pricing Analyst, B2B Distributor
PDFConverter.exe C:\Reports\*.pdf C:\Output\ -c XLS. Bu, kaynak klasördeki tüm PDF dosyalarını XLS'ye dönüştürür. Her PDF sayfasını kendi sayfasına koymak için -EachPageSeparate veya doğrulama günlüğü yazmak için -log ekleyin.-EachPageSeparate bayrağını ekleyin ve dönüştürücü, PDF sayfası başına bir sayfa olan çok sayfalı bir çalışma kitabı oluşturur. Bayrak olmadan, tüm sayfalar tek bir sayfada birleştirilir. Her sayfanın farklı bir hesabı veya dönemi kapsadığı aylık ekstreler için faydalıdır.
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!");
//Formlarla Çalışmak
Cnv.LoadFromFile(src);
Cnv.SetFormFieldValue(0, "Test Name");
Cnv.SaveToFile(src);
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);
}
}
#includestatic 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;
Ücretsiz deneme sürümünü indirin ve dosyalarınızı dakikalar içinde dönüştürün.
Kredi kartı veya email gerekli değil.