웹 서버에 PDF 파일을 다른 형식으로 변환할 수 있는 적절한 솔루션입니다.
Windows
2000/2003/Vista
7/8/10/11
and
2012/2016/2019/2022 Server
and
Docker/Citrix/Wine
Total PDF Converter X는 PDF 파일을 DOC, RTF, XLS, HTML, XHTML, EPS, PS, TXT, CSV, BMP, JPEG, GIF, WMF, EMF, PNG, TIFF로 변환하는 서버측 SDK입니다 — 서버에 Adobe Acrobat, Foxit 또는 외부 PDF 라이브러리 없이 작동합니다. 사일런트 모드로 실행됩니다: GUI 없음, 대화상자 없음, 팝업 없음. Total PDF Converter X는 명령줄 바이너리와 ActiveX/COM 인터페이스를 모두 제공하므로 ASP, PHP, .NET, Python, Ruby, Java 및 COM을 지원하는 모든 백엔드에 통합됩니다.
출력 범위는 세 가지 트랙으로 나뉩니다:
Total PDF Converter X는 서버측 시나리오 전체를 처리합니다: 비밀번호 보호 PDF (-Pass "wb-pwd" 전달), 일괄 결합 (여러 PDF를 하나의 출력 문서나 이미지로), 페이지별 추출 (다중 페이지 PDF를 N개의 단일 페이지 파일로 분할), 폴더 마스크 + 재귀 (-Recurse -kfs) 전체 트리 처리, 큐 파일 기반 실행 (-list), 그리고 Total Folder Monitor와의 연동을 통한 파일 도착 시 핫 폴더 자동 변환.
멀티스레드 엔진이 일괄 작업을 최대 속도로 처리합니다. IIS, Docker, Citrix 및 Wine과 호환됩니다. 무료로 사용해 보세요 (30일 평가 기간, 제한 없음). 정말 그 가치를 한다는 것을 확인하실 수 있습니다.
현재 지원되는 파일 형식 변환 일부:
|
|
|
LLM 에이전트(Claude, ChatGPT, Cursor, Cline)와 검색 프레임워크(LangChain, LlamaIndex, Haystack)는 PDF를 읽지 못합니다 — 텍스트를 읽습니다. Total PDF Converter X는 PDF를 구조화된 frontmatter와 선택적 Docling 호환 사이드카가 포함된 GitHub-Flavored Markdown으로 작성합니다. 그 결과 PDF가 헤딩, 표, 페이지 앵커를 그대로 유지한 채로 벡터 스토어에 들어갑니다 — 열이 병합되고 헤더가 사라지는 pdftotext 스타일의 평탄화된 수프가 아닙니다.
Markdown 출력을 대상으로 했을 때 얻는 것:
# / ## / ### 레벨을 결정하며, PDF 개요(북마크)가 있는 경우 존중됩니다.
source_file, format(MIME), PDF 메타데이터의 title과 author, page_count, generator, created, 감지된 languages, 그리고 출처 확인을 위한 binary_hash를 담습니다.
.docling.json 사이드카 — 표 경계 사각형, 페이지별 앵커, 글꼴/스타일 힌트, 그리고 스플리터가 읽을 수 있는 chunks_hint 배열을 포함하는 Docling-schema JSON입니다.
이것이 CoolUtils RAG Adapter입니다 — 모든 Total Converter X 제품이 공유하는 통합 Markdown 계약입니다. 전체 사양, 샘플 .md + .docling.json, 통합 스니펫은 Coolutils Converter X — RAG Adapter 페이지에 있습니다.
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;
"지금까지 이 도구는 Windows 예약 작업 내에서 명령줄을 사용하여 PDF 파일을 Excel 파일로 변환하는 작업을 정확하게 수행하고 있습니다. 문제가 생기면 반드시 연락드리겠습니다."
Sofiane Hamri
Independent Developer
"도와주셔서 정말 감사합니다. Total PDF Converter X는 훌륭하게 작동하고 있습니다. Windows 서비스에서 실행할 때 멈춰버리는 경쟁사 제품에 대한 절실히 필요했던 해결책이었습니다. 협조와 신속한 응답 덕분에 고객의 마감 기한을 맞출 수 있었으며, 정말 큰 도움이 되었습니다."
Michael J. Balmer
Lead Integration Engineer, www.QuestDiagnostics.com
"고객들이 수십 가지 공급업체 템플릿으로 PDF 송장을 보내오면, 회계 시스템을 위해 항목 라인을 XLS로 추출합니다. -cXLS와 -FirstRowIsHeader를 함께 사용하는 Total PDF Converter X는 경쟁사들이 깨진 병합 셀을 만들어내던 곳에서 깔끔한 스프레드시트를 생성합니다. 우리 하드웨어에서 분당 약 200건의 송장 처리량을 보입니다. 5년째 운영 중입니다. 잘못된 PDF마다 멈추던 Acrobat 자동화 파이프라인을 교체했고, 내장 파서는 동일한 파일을 문제없이 처리합니다."
Aleksei P.
Senior Backend Developer at an invoice-processing platform
"고객이 제공하는 PDF 자료는 사건별 비밀번호로 보호되어 도착합니다. -Pass와 함께 사용하는 Total PDF Converter X는 변환과 동일한 호출에서 잠금을 해제하므로 우리 파이프라인에 별도의 복호화 단계가 필요하지 않습니다. -cExtract는 검토 도구의 썸네일 스트립을 위해 페이지당 하나의 PNG를 생성합니다. Windows Server Core에서 헤드리스로, Acrobat 없이, 4년간의 운영 사용 동안 라이선스 관련 놀라움 없이 작동합니다."
Yaiza R.
DevOps Engineer at a legal e-discovery platform
"Royalty-Free License로 Total PDF Converter X를 우리의 문서 관리 제품에 번들로 포함시켰습니다. 프로젝트당 일회성 비용은 Aspose.PDF나 PDFTron이 개발자당 구독으로 요구하는 금액의 일부에 불과했습니다. 우리 설치 프로그램이 ActiveX를 배포하고 등록하며, 우리 앱이 직접 호출하고, 최종 사용자는 우리 UI만 봅니다. 32비트 ActiveX 제한 때문에 파이프라인 재작업에 며칠이 걸렸지만, 우회 방법에 대해 문의했을 때 지원팀의 응답이 신속했습니다."
Mateusz B.
Independent Software Vendor
ActiveX와 명령줄을 통해 서버 애플리케이션에 PDF 변환을 통합하는 개발자 및 IT 팀
웹 앱에 PDF에서 DOC, PDF에서 이미지 변환 기능 추가
웹 개발자는 Total PDF ConverterX를 ActiveX를 통해 ASP, PHP, .NET 애플리케이션에 통합합니다. 사용자가 브라우저에서 PDF 파일을 업로드하면 서버가 GUI 없이 자동으로 DOC, XLS, HTML, 이미지로 변환해 결과를 전달합니다. 통합 속도를 높이기 위한 바로 사용 가능한 샘플 코드가 포함되어 있습니다.
문서 관리 시스템 내에서 PDF 자동 변환
문서 관리 및 기업 콘텐츠 플랫폼은 Total PDF ConverterX를 사용해 업로드된 PDF를 보관용 TIFF, 전체 텍스트 인덱싱용 텍스트, 미리보기 썸네일용 이미지로 변환합니다. SDK는 최소한의 코드 변경으로 기존 워크플로에 연결되며 자격 증명이 제공되면 암호로 보호된 PDF를 처리합니다.
서버에서 사용자 개입 없이 수천 개의 PDF 변환
기업 IT 팀은 예약된 일괄 작업에서 명령줄을 통해 Total PDF ConverterX를 실행합니다. 수신된 PDF는 편집용 DOC, 데이터 추출용 CSV, 인쇄 전 처리용 EPS로 모두 무인으로 변환됩니다. 다중 페이지 PDF는 개별 페이지 파일로 분리하거나 폴더당 단일 출력 문서로 통합할 수 있습니다.
인쇄 워크플로를 위해 PDF 파일을 TIFF, JPEG, EPS로 변환
인쇄소와 인쇄 전 처리 부서는 생산 서버에서 PDF 파일을 고품질 TIFF, JPEG, EPS 이미지로 변환합니다. 작업별로 용지 방향, 출력 품질, 이미지 크기를 제어합니다. 다중 페이지 PDF를 개별 페이지 이미지로 처리하거나 여러 PDF를 배치 인쇄를 위한 하나의 다중 페이지 TIFF로 통합합니다.
데스크톱 또는 서버 소프트웨어에 PDF 변환 기능 내장
소프트웨어 벤더는 변환 엔진을 처음부터 구축하지 않고 PDF 내보내기 기능을 추가하기 위해 Total PDF ConverterX를 자체 제품에 내장합니다. ActiveX 인터페이스는 간단한 API 호출을 통해 모든 변환 기능을 제공하며, 수백 명의 개발자가 이미 상업용 애플리케이션에 통합했습니다.
Total PDF ConverterX에는 PDFConverterX.exe라는 콘솔 바이너리가 포함되어 있어 스크립트, 예약 작업, CI 러너 또는 백엔드 서비스에서 실행할 수 있습니다. 플래그 세트는 GUI PDFConverter.exe와 일치합니다. 전체 참조는 명령줄 문서를 참조하세요. 아래의 예제는 SDK 고객들이 가장 자주 묻는 사례를 다룹니다.
가장 단순한 호출 — 하나의 소스 파일, 하나의 출력, 하나의 대상 형식. 들어오는 PDF에서 편집 가능한 Word 문서가 필요할 때 이상적입니다.
PDFConverterX.exe "C:\pdfs\report.pdf" "C:\out\report.doc" -cDOC
재무제표, 송장 및 보고서는 종종 PDF로 도착하지만 Excel에 도달해야 합니다. 변환기를 폴더 마스크로 가리키고 모든 파일을 처리하도록 하세요.
PDFConverterX.exe "C:\pdfs\*.pdf" "C:\out\" -cXLS
전체 텍스트 검색 인덱싱, NLP 파이프라인 또는 콘텐츠를 다른 도구로 파이핑할 때 사용합니다. -e는 페이지 사이에 폼 피드 문자를 삽입하므로 결과를 페이지로 다시 분할할 수 있습니다.
PDFConverterX.exe "C:\pdfs\*.pdf" "C:\out\" -cTXT -e
썸네일, 미리보기 이미지 또는 OCR 입력용 — 각 페이지를 인쇄 품질 DPI로 래스터화합니다. -s는 페이지당 하나의 이미지를 작성합니다. 템플릿이 파일 명명을 제어합니다.
PDFConverterX.exe "C:\pdfs\brochure.pdf" "C:\out\" -cPNG -dpi 300 -s -t "[Name].page#.png"
-cPNG를 -cJPG로 바꾸고 -jq 85를 추가하여 JPEG 품질을 제어하세요.
실제로 필요한 페이지만 가져옵니다 — 예를 들어, 긴 보고서의 1~3페이지에 있는 임원 요약.
PDFConverterX.exe "C:\pdfs\report.pdf" "C:\out\summary.pdf" -cPDF -p "1-3"
페이지 목록은 개별 숫자와 조합도 받아들입니다. 예: -p "1,3,5-7,10".
웹 스택에서 직접 제공하거나, 검색 엔진에서 색인하거나, CMS에 임베드할 수 있도록 PDF 폴더를 HTML 페이지로 변환하세요.
PDFConverterX.exe "C:\pdfs\*.pdf" "C:\www\docs\" -cHTML
문서 저장소는 거의 한 평평한 폴더에 있지 않습니다. -Recurse는 하위 디렉터리를 탐색합니다. -kfs는 모든 것을 하나의 버킷에 평평하게 만드는 대신 출력 측에서 동일한 트리를 다시 만듭니다.
PDFConverterX.exe "C:\archive\*.pdf" "C:\out\archive\" -cDOC -Recurse -kfs
사례 파일당 하나의 TIFF를 기대하는 문서 아카이브 시스템용입니다. -combine은 모든 소스를 하나의 출력으로 병합합니다. -tc G4FAX는 모든 뷰어가 받아들이는 표준 흑백 팩스 압축을 선택합니다.
PDFConverterX.exe "C:\pdfs\case123\*.pdf" "C:\archive\case123.tif" -cTIF -combine -tc G4FAX -dpi 300
PDFConverterX.exe가 서비스 또는 예약 작업으로 실행되면, 무슨 일이 일어났는지 알 수 있는 유일한 방법은 로그입니다. -verbosity detail은 파일당 한 줄을 작성합니다. -logmode append는 실행 간에 기록을 유지합니다.
PDFConverterX.exe "C:\pdfs\*.pdf" "C:\out\" -cDOC -log "C:\logs\pdfconv.log" -verbosity detail -logmode append
워커가 큐 파일을 작성하고 변환기가 이를 사용하는 경우, 명령줄 자체에 파일 경로를 인코딩하고 싶지 않을 것입니다. -list는 텍스트 파일에서 파일 마스크(한 줄에 하나)를 읽습니다.
PDFConverterX.exe -list "C:\queues\batch.txt" "C:\out\" -cRTF
법적 구속력이 있는 서명된 PDF가 필요한 워크플로우용 — 계약, 송장, 규제 문서. .pfx 인증서, 그 비밀번호 및 서명 이벤트에 대한 선택적 메타데이터를 제공하세요.
PDFConverterX.exe "C:\pdfs\contract.pdf" "C:\out\contract-signed.pdf" -cPDF -PFXFile "C:\certs\company.pfx" -PFXPass "secret" -SignLoc "Wilmington, DE" -SignRes "Approved"
|
|
|
-Pass "workbook-pwd" 사용), 암호화된 PDF (40비트, 128비트, 256비트 AES), 임베디드 글꼴, 벡터 그래픽, 래스터 이미지, 테이블을 포함합니다. 출력은 DOC, DOCX, RTF, XLS, CSV, HTML, XHTML, TXT, EPS, PS, JPEG, PNG, BMP, GIF, TIFF (단일 또는 다중 페이지), WMF, EMF를 포함합니다.new COM("PDFConverter.PDFConverterX"), .NET에서는 new PDFConverterX(), Python에서는 win32com.client.Dispatch("PDFConverter.PDFConverterX"), Ruby에서는 WIN32OLE.new('PDFConverter.PDFConverterX'). 또는 PDFConverterX.exe 명령줄 바이너리를 모든 프로세스, 스케줄러 또는 셸 스크립트에서 호출할 수 있습니다. ASP/PHP 웹 응답을 위한 ConvertToStream을 통한 직접 스트리밍도 지원됩니다.-cExtract는 각 PDF 페이지를 별도의 출력 파일로 작성하고 (썸네일이나 페이지별 검토에 적합), 기본 동작은 입력 PDF당 하나의 출력 파일을 생성합니다. -combine은 여러 입력 PDF를 단일 출력 문서나 단일 다중 페이지 TIFF로 병합합니다. -rn "1-3,7"은 특정 페이지를 선택합니다. -sort name은 폴더의 파일을 결합할 때 입력 순서를 제어합니다.-cXLS는 PDF에서 표 형식 데이터를 Excel 형식으로 추출하며, 소스 PDF에 감지 가능한 테이블이 있는 경우 열 구조를 보존합니다. -cCSV는 사용자 지정 구분 기호로 동일한 데이터를 작성합니다 (유럽 로케일용 -separator ";", 따옴표 문자용 -comma '"'). -FirstRowIsHeader와 결합하면 스캔된 보고서와 명세서 PDF가 수동 정리 없이 스프레드시트에서 바로 사용할 수 있는 데이터로 변환됩니다..md를 대상으로 하면 변환기가 섹션을 인식하는 구조의 GitHub-Flavored Markdown을 작성합니다: 감지된 헤딩이 #/##/### 레벨을 결정하고, PDF 개요(북마크)가 있는 경우 존중되며, 표가 단일 텍스트 열로 평탄화되지 않고 GFM 표로 유지되고, 페이지 경계가 주석으로 표시되어 인용이 정확한 소스 페이지로 되돌아갈 수 있습니다. YAML frontmatter 블록은 source_file, PDF 메타데이터의 title과 author, page_count, generator, 그리고 바이너리 해시를 담습니다. 이는 CoolUtils RAG Adapter의 일부입니다 — 동일한 Markdown 계약을 모든 Total Converter X 제품이 공유합니다.binary_hash, 그리고 chunks_hint 배열. 명령줄에서 -Docling으로 활성화합니다. JSON은 Markdown과 독립적입니다 — 둘 다 인덱스에 입력하거나 .md만 사용할 수도 있습니다..md 파일은 YAML frontmatter 블록이 있는 일반 GFM이므로 LangChain의 UnstructuredMarkdownLoader, LlamaIndex의 MarkdownReader, Haystack의 MarkdownToDocument, Claude Code의 MCP 파일 도구가 직접 읽습니다. Claude, ChatGPT 또는 채팅 UI에서는 Markdown을 그대로 컨텍스트에 붙여넣을 수 있습니다 — 목차가 여전히 인식 가능하고, 표가 렌더링되며, 페이지 앵커 주석을 통해 모델이 원본 PDF로 다시 인용할 수 있습니다.PDFConverterX.exe "C:\inbox\*.pdf" "C:\out\" -cMD -Docling -Recurse. -cMD는 Markdown을 선택하고, -Docling은 추가로 .docling.json 사이드카를 작성하며, -Recurse는 하위 디렉터리를 탐색합니다. OCR 텍스트 레이어가 있는 PDF는 네이티브 텍스트 PDF와 동일한 배치에서 처리됩니다 — 별도의 코드 경로가 없습니다. 비밀번호로 보호된 소스의 경우 -Pass "workbook-pwd"를 추가하세요. 결과 Markdown은 모든 벡터 스토어에서 청크화, 임베딩, 인덱싱할 준비가 되어 있습니다.무료 평가판을 다운로드하고 몇 분 만에 파일을 변환하세요.
신용카드나 이메일이 필요하지 않습니다.