웹 서버에서 Doc를 PDF, HTML, XLS, 이미지 및 텍스트로 변환합니다.
Windows
2000/2003/Vista
7/8/10/11
and
2012/2016/2019/2022 Server
and
Docker/Citrix/Wine
Total Doc Converter X는 Word 문서(DOC, DOCX, DOCM, RTF, TXT)를 PDF, HTML, XHTML, XLS, JPG, TIFF, PNG, RTF, 유니코드 TXT로 변환하는 서버 측 SDK입니다 — 서버에 Microsoft Word, Office Interop 또는 헤드리스 Office 인스턴스 없이 동작합니다. 무음으로 실행됩니다: GUI 없음, 대화 상자 없음, 팝업 없음. Total Doc Converter X는 명령줄 바이너리와 ActiveX/COM 인터페이스를 모두 제공하므로 ASP, PHP, .NET, Python, Ruby, Java 및 기타 COM을 인식하는 모든 백엔드에 그대로 통합됩니다. 지원되는 입력 형식:
-Recurse -kfs); 파일 도착 시 핫 폴더 자동 변환을 위한 Total Folder Monitor 연동.
다중 사용자 친화적: Windows 서버에 한 번 설치하고 변환을 웹 서비스로 노출하거나 Windows 서비스로 실행할 수 있습니다. 멀티스레드 엔진이 일괄 작업을 최대 속도로 처리합니다. IIS, Docker, Citrix 및 Wine과 호환됩니다.
무료로 사용해 보세요(30일 평가 기간, 제한 없음). 충분히 그 값어치를 한다는 것을 확인하실 수 있습니다.
현재 지원되는 파일 형식 변환의 일부:
|
|
|
LLM 에이전트(Claude, ChatGPT, Cursor, Cline)와 검색 프레임워크(LangChain, LlamaIndex, Haystack)는 DOCX를 읽지 못합니다 — 텍스트를 읽습니다. Total Doc Converter X는 Word 문서를 구조화된 frontmatter와 선택적 Docling 호환 사이드카가 포함된 GitHub-Flavored Markdown으로 작성합니다. 그 결과 문서가 헤딩, 목록, 표, 인라인 이미지 참조와 함께 벡터 스토어에 들어갑니다 — 섹션 구조가 사라진 단일 평면 단락이 아닙니다.
Markdown 출력을 대상으로 했을 때 얻는 것:
Heading 1…Heading 6이 # / ## / ###이 됩니다. 글머리 기호와 번호 목록은 목록으로 유지되며, Quote 스타일은 > blockquote로 매핑됩니다.
 참조가 사용됩니다.
source_file, format(MIME), 문서 메타데이터의 title과 author, created, modified, 감지된 languages, generator, 그리고 출처 확인을 위한 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.docx";
string dest = @"C:\test\Dest.pdf";
var cnv = new DocConverterX();
cnv.Convert(src, dest, "-cPDF -log c:\\test\\Doc.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\DocConverterX.exe";
sbLogs.AppendLine(executablePath + "...");
var srcPath = $@"{assemblyDirectoryPath}\src\sample.docx";
var outPath = Path.GetTempFileName() + ".pdf";
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}\" -cPDF";
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("DocConverter.DocConverterX")
C.Convert "c:\source.docx", "c:\dest.pdf", "-cPDF -log c:\doc.log"
Response.Write C.ErrorMessage
set C = nothing
dim C
Set C=CreateObject("DocConverter.DocConverterX")
Response.Clear
Response.AddHeader "Content-Type", "binary/octet-stream"
Response.AddHeader "Content-Disposition", "attachment; filename=test.pdf"
Response.BinaryWrite C.ConvertToStream("C:\www\ASP\Source.docx", "C:\www\ASP", "-cpdf -log c:\doc.log")
set C = nothing
$src="C:\\test\\test.docx";
$dest="C:\\test\\test.pdf";
if (file_exists($dest)) unlink($dest);
$c= new COM("DocConverter.DocConverterX");
$c->convert($src,$dest, "-cPDF -log c:\\test\\Doc.log");
if (file_exists($dest)) echo "OK"; else echo "fail:".$c->ErrorMessage;
require 'win32ole'
c = WIN32OLE.new('DocConverter.DocConverterX')
src = "C:\\test\\test.docx"
dest = "C:\\test\\test.pdf"
c.convert(src, dest, "-cPDF -log c:\\test\\Doc.log")
if not File.exist?(dest)
puts c.ErrorMessage
end
import win32com.client
import os.path
c = win32com.client.Dispatch("DocConverter.DocConverterX")
src = "C:\\test\\test.docx"
dest = "C:\\test\\test.pdf"
c.convert(src, dest, "-cPDF -log c:\\test\\Doc.log")
if not os.path.exists(dest):
print(c.ErrorMessage)
uses Dialogs, Vcl.OleAuto;
var
c: OleVariant;
begin
c := CreateOleObject('DocConverter.DocConverterX');
c.Convert('c:\test\source.docx', 'c:\test\dest.pdf', '-cPDF -log c:\test\Doc.log');
if c.ErrorMessage <> '' then
ShowMessage(c.ErrorMessage);
end;
var c = new ActiveXObject("DocConverter.DocConverterX");
c.Convert("C:\\test\\source.docx", "C:\\test\\dest.pdf", "-cPDF");
if (c.ErrorMessage != "")
alert(c.ErrorMessage)
use Win32::OLE; my $src = "C:\\test\\test.docx"; my $dest = "C:\\test\\test.pdf"; my $c = CreateObject Win32::OLE 'DocConverter.DocConverterX'; $c->convert($src, $dest, "-cPDF -log c:\\test\\Doc.log"); print $c->ErrorMessage if -e $dest;
"지금까지 Total Doc Converter X는 Windows 예약 작업 내에서 명령줄을 사용하여 Doc 파일을 PDF 파일로 변환하는 작업을 정확하게 수행하고 있습니다. 문제가 생기면 반드시 연락드리겠습니다. 좋은 제품을 만들어 주셔서 감사합니다."
Brandon Belma
NSG Consulting
"Total Doc Converter를 몇 년째 사용해 오다가 최근에 X 버전으로 업그레이드를 구매했습니다. 매우 잘 작동하고 있으며 제품에 대단히 만족합니다. 문서를 PDF 형식으로 변환하는 데 사용합니다. 다른 활용 방법이 더 있는지 문서를 살펴봐야겠습니다."
Todd Braley
IT Manager, DRI Title And Escrow
"고객들이 변경 내용 추적과 주석이 임베딩된 DOCX로 준비서면과 신청서를 보냅니다. -PFXFile/-PFXPass와 함께 Total Doc Converter X를 사용하면 법원 시스템이 인정하는 서명된 보관용 PDF가 생성됩니다. 손상된 DOC를 고객이 보낼 때마다 충돌하던 Word-Interop 파이프라인을 교체했습니다. 내장 파서는 Word라면 아예 파일을 열기를 거부할 상황에서도 관대하게 처리합니다. 5년간 운영 중인데 변환기 탓으로 돌릴 만한 실패는 없었습니다."
Marek L.
Senior Backend Developer at a legal-tech vendor
"직원 정책 문서가 수십 가지 회사 템플릿의 DOCX 형태로 고객사에서 도착합니다. 직원 포털에 올라가기 전에 워터마크 도장과 베이츠 페이지 번호를 적용하여 각각을 PDF로 렌더링합니다. Total Doc Converter X와 Total Folder Monitor 조합: 고객사가 인박스에 파일을 떨어뜨리면 변환기가 정리하고 포털이 PDF를 가져갑니다. 변환 VM 어디에도 Word가 없고, 라이선스 의문도 없으며, 처리량은 우리 하드웨어에서 분당 약 200건입니다."
Yuna K.
DevOps Engineer at an HR SaaS
"로열티 프리 라이선스로 Total Doc Converter X를 우리 문서 관리 제품에 번들로 포함시켰습니다. 프로젝트당 일회성 비용은 Aspose.Words가 개발자별 구독으로 요구하던 금액의 일부에 불과했습니다. 우리 설치 프로그램이 ActiveX를 배포하고 등록하며, 우리 앱이 직접 호출하고, 최종 사용자는 우리 UI만 봅니다. 32비트 ActiveX 제한 때문에 파이프라인 재작업에 며칠이 들었지만, 우회 방법을 문의했을 때 지원팀이 신속하게 대응해 주었습니다."
Karim Z.
Independent Software Vendor
서버에서 Word 문서를 PDF, 이미지 등 다양한 형식으로 변환하는 개발자 및 IT 팀
ActiveX를 통해 웹 앱에 DOC에서 PDF 변환 기능 추가
웹 개발자는 Total Doc ConverterX를 ASP, PHP, .NET 애플리케이션에 통합해 사용자가 Word 파일을 업로드하고 변환된 PDF, HTML, 이미지 출력을 받을 수 있게 합니다. 컨버터는 GUI 없이 서버에서 자동으로 실행되어 여러 동시 변환 요청을 중단 없이 처리합니다.
보관 시스템을 위해 Word 업로드 파일을 PDF와 TIFF로 변환
문서 관리 플랫폼은 Total Doc ConverterX를 사용해 수신된 DOC 및 DOCX 파일을 표준화된 저장을 위한 PDF나 이미지 기반 아카이브용 TIFF로 변환합니다. 컨버터는 문서 레이아웃을 정확하게 유지하고 전체 디렉터리 트리를 일괄 처리할 때 폴더 구조를 유지합니다.
명령줄을 통해 서버에서 Word 파일 변환
기업 IT 팀은 예약된 일괄 작업에서 Total Doc ConverterX를 실행해 이메일 시스템, 업로드 포털, 공유 드라이브의 Word 문서를 변환합니다. Total Folder Monitor와 함께 사용해 감시 폴더에 새 DOC 파일이 도착하면 자동으로 변환합니다. 팝업이나 사용자 개입이 전혀 없습니다.
네트워크의 모든 사용자에게 문서 변환 서비스 제공
조직은 중앙 서버에 Total Doc ConverterX를 배포해 부서 전반의 직원이 공유 서비스를 통해 Word 문서를 PDF, XLS, HTML, 이미지로 변환할 수 있게 합니다. 단일 서버 설치로 수십 개의 데스크톱 컨버터를 대체해 라이선스 비용과 IT 유지 관리를 줄입니다.
자체 소프트웨어 제품에 Word 변환 기능 내장
소프트웨어 벤더는 Total Doc ConverterX를 ActiveX를 통해 애플리케이션에 통합해 렌더링 엔진 없이 DOC에서 PDF, TIFF, HTML 변환을 제공합니다. API는 Word, DOCX, RTF, TXT 파일을 완전한 레이아웃 유지와 사용자 정의 가능한 출력 설정으로 처리합니다.
Total Doc ConverterX에는 DocConverterX.exe라는 콘솔 바이너리가 포함되어 있어 스크립트, 예약 작업, CI 러너 또는 백엔드 서비스에서 실행할 수 있습니다. 플래그 세트는 GUI DocConverter.exe와 일치합니다. 전체 참조는 명령줄 문서를 참조하세요. 아래의 예제는 SDK 고객들이 가장 자주 묻는 사례를 다룹니다.
가장 단순한 호출 — 하나의 소스 파일, 하나의 출력, 하나의 대상 형식.
DocConverterX.exe "C:\contracts\NDA.doc" "C:\out\NDA.pdf" -cPDF
폴더 내 모든 DOC를 처리하고 형제 출력 디렉터리에 PDF를 떨어뜨립니다.
DocConverterX.exe "C:\contracts\*.doc" "C:\out\" -cPDF
다른 소스 형식을 변환하려면 마스크를 *.rtf 또는 *.txt로 바꾸세요.
동일한 바이너리가 최신 Word 문서를 처리합니다. 마스크를 *.docx로 가리키면 변환기가 추가 플래그 없이 새 형식을 인식합니다.
DocConverterX.exe "C:\contracts\*.docx" "C:\out\" -cPDF
법률 및 HR 아카이브는 거의 한 평평한 폴더에 있지 않습니다. -Recurse는 하위 디렉터리를 탐색합니다. -kfs는 모든 파일을 하나의 버킷에 평평하게 만드는 대신 출력 측에서 동일한 트리를 다시 만듭니다.
DocConverterX.exe "C:\contracts\2026\*.doc" "C:\out\2026\" -cPDF -Recurse -kfs
업스트림 워커가 큐 파일을 작성하고 변환기가 이를 사용하는 경우, 명령줄 자체에 모든 파일 경로를 인코딩하고 싶지 않을 것입니다. -list는 텍스트 파일에서 파일 마스크(한 줄에 하나)를 읽습니다.
DocConverterX.exe -list "C:\queues\contracts.txt" "C:\out\" -cPDF
장기 문서 아카이브는 일반적으로 G4 압축을 사용한 흑백 TIFF입니다 — 디스크에 작고, 무손실이며, 모든 이미징 시스템에서 받아들여집니다. G4FAX의 경우 -tc 7을 사용하세요. LZW의 경우 -tc 1로, JPEG 압축 TIFF의 경우 -tc 3으로 변경하세요.
DocConverterX.exe "C:\contracts\*.doc" "C:\archive\" -cTIFF -tc 7
대상 형식이 PDF 또는 TIFF인 경우, 용지 크기, 방향 및 여백은 문서별 설정이 아닌 플래그입니다. 세로 Letter에 맞지 않는 넓은 테이블에 유용합니다.
DocConverterX.exe "C:\reports\*.doc" "C:\out\" -cPDF -ps A4 -po Landscape -TM 15 -LM 20 -BM 15 -RM 20
*.txt 소스의 경우 변환기는 글꼴을 직접 선택해야 합니다. 시스템 간에 출력이 일관되게 보이도록 글꼴을 명시적으로 고정하고, 긴 줄이 오른쪽 여백에서 잘리지 않도록 -WordWrap을 켜세요.
DocConverterX.exe "C:\logs\*.txt" "C:\out\" -cPDF -FontName "Consolas" -FontSize 10 -FontStyle B -WordWrap
DocConverterX.exe가 서비스 또는 예약 작업으로 실행되면, 무슨 일이 일어났는지 알 수 있는 유일한 방법은 로그입니다. -log는 대화형 오류 대화 상자를 억제하고 실패를 tail이나 스크랩할 수 있는 파일에 작성합니다.
DocConverterX.exe "C:\contracts\*.doc" "C:\out\" -cPDF -log "C:\logs\docconv.log"
대상 경로의 <DATE> 매크로와 -do를 결합하여 변환이 성공한 후 원본을 삭제합니다 — 아카이브로 비워야 하는 일일 수신 폴더에 유용합니다.
DocConverterX.exe "C:\inbox\*.doc" "C:\archive\<DATE>\" -cPDF -do -log "C:\logs\intake.log"
|
|
|
new COM("DocConverter.DocConverterX"), .NET에서 new DocConverterX(), Python에서 win32com.client.Dispatch("DocConverter.DocConverterX"), Ruby에서 WIN32OLE.new('DocConverter.DocConverterX'). 또는 DocConverterX.exe 명령줄 바이너리를 모든 프로세스, 스케줄러 또는 셸 스크립트에서 호출할 수 있습니다. ASP/PHP 웹 응답을 위해 ConvertToStream을 통한 직접 PDF 스트리밍도 가능합니다.-mp "owner-pwd"를, 파일 열기 게이트에는 -up "user-pwd"를 사용하십시오. -perm 플래그는 Print, HighResPrint, Copy, Modify, Annotation, FormFill의 임의 조합을 받아들입니다. 암호화 강도는 -EncryptStrength es256AES로 제어됩니다. 디지털 서명을 위해서는 -PFXFile "C:\certs\acme.pfx" -PFXPass "cert-pwd" -SignLoc -SignCon -SignRes를 전달하여 모든 출력 PDF에 X.509 인증서를 첨부하십시오.DocConverterX.exe "C:\inbox\*.docx" "C:\out\" -cPDF. 하위 폴더로 내려가려면 -Recurse를, 모든 것을 한 버킷으로 평탄화하는 대신 출력 측에서 폴더 트리를 미러링하려면 -kfs를 추가하십시오. 워커 기반 파이프라인에는 -list "queue.txt"를, 처리된 원본 파일과 실패한 원본 파일을 별도의 폴더로 라우팅하려면 -msuccess/-merror를 결합하십시오..md를 대상으로 하면 변환기가 GitHub-Flavored Markdown을 작성합니다: Word 스타일이 Markdown 구조로 매핑되고(Heading 1..Heading 6이 #/##/###이 되며, 글머리 기호와 번호 목록은 목록으로 유지되고, Quote 스타일은 > blockquote로 매핑됨), 표는 병합된 셀과 다중 행 헤더가 보존된 GFM 표가 되며, 인라인 이미지는 함께 저장되어 로 참조됩니다. YAML frontmatter 블록은 source_file, 문서 메타데이터의 title과 author, created/modified 타임스탬프, 감지된 언어, 바이너리 해시를 담습니다. 이는 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을 그대로 컨텍스트에 붙여넣을 수 있습니다 — 헤딩이 문서 구조를 보여주고, 표가 렌더링되며, frontmatter가 모델에게 소스 파일명, 작성자, 언어 힌트를 제공합니다.DocConverterX.exe "C:\inbox\*.docx" "C:\out\" -cMD -Docling -Recurse -kfs. -cMD는 Markdown을 선택하고, -Docling은 추가로 .docling.json 사이드카를 작성하며, -Recurse는 하위 디렉터리를 탐색하고, -kfs는 출력 측에 소스 폴더 트리를 미러링합니다. COM에서: obj.Convert("contract.docx", "contract.md", "-cMD -Docling"). 결과 Markdown은 모든 벡터 스토어에서 청크화, 임베딩, 인덱싱할 준비가 되어 있습니다.무료 평가판을 다운로드하고 몇 분 만에 파일을 변환하세요.
신용카드나 이메일이 필요하지 않습니다.