HTML을 PDF, DOC, TXT, TIFF, JPEG로 변환합니다. GUI 없음.
Windows
2000/2003/Vista
7/8/10/11
and
2012/2016/2019/2022 Server
and
Docker/Citrix/Wine
Total HTML Converter X는 HTML 파일과 라이브 URL을 PDF, DOC, RTF, XLS, TIFF, JPG, PNG, TXT로 변환하는 서버 측 SDK입니다 — 완전한 CSS 렌더링을 지원하며, 서버에 헤드리스 Chrome이 필요 없고, 인쇄 서비스(Print Service)에 의존하지 않습니다. 무인(silent) 방식으로 실행됩니다: GUI도, 대화 상자도, 팝업도 없습니다. Total HTML Converter X는 명령줄(command-line) 바이너리와 ActiveX/COM 인터페이스를 모두 제공하므로 ASP, PHP, .NET, Python, Ruby, Java를 비롯한 COM을 인식하는 모든 백엔드에 손쉽게 통합됩니다.
두 가지 소스 모드를 지원합니다: 로컬 HTML/MHT 파일 경로, 또는 변환기가 직접 가져오는 원격 URL("이 라이브 페이지를 PDF로 렌더링" 워크플로우에 유용). 출력 범위:
Total HTML Converter X는 CSS 1/2 스타일을 통한 페이지 나누기 제어를 포함한 모든 HTML 태그를 인식하고, IE 스타일의 머리글과 바닥글(날짜, 시간, 페이지 수, 사용자 정의 워터마크)을 지원하며, 선택한 PDF 페이지 크기에 HTML 너비를 자동으로 맞추고(넓은 HTML 표를 인쇄할 때 필수), 데이터베이스 인덱싱을 위한 메타데이터를 추출하며, 폴더 마스크 또는 큐 파일에서 정적 파일과 라이브 URL을 모두 일괄 처리합니다.
다중 사용자 친화적: 동일한 Windows 서버에서 LAN의 클라이언트-서버 설치를 운영하거나 변환을 웹 서비스로 노출할 수 있습니다. 멀티스레드 엔진은 일괄 작업을 최고 속도로 처리합니다. IIS, Docker, Citrix 및 Wine과 호환됩니다.
30일 무료 평가판(제한 없음)을 사용해 보시면 그만한 가치가 있다는 것을 확인하실 수 있습니다.
현재 지원되는 파일 형식 변환 일부:
|
|
|
LLM 에이전트(Claude, ChatGPT, Cursor, Cline)와 검색 파이프라인(LangChain, LlamaIndex, Haystack)은 HTML을 읽지 못합니다 — 텍스트를 읽습니다. Total HTML Converter X는 페이지와 라이브 URL을 구조화된 frontmatter와 선택적 Docling 호환 사이드카가 포함된 GitHub-Flavored Markdown으로 작성합니다. 그 결과 페이지가 계층, 헤딩, 링크, 표를 그대로 유지한 채로 벡터 스토어에 들어갑니다 — CSS 노이즈와 내비게이션 chrome이 섞인 평탄화된 텍스트가 아닙니다.
Markdown 출력을 대상으로 했을 때 얻는 것:
h1…h6)이 Markdown 헤딩으로, 표가 GFM 표로, 목록은 목록으로 유지되며, 앵커가 [text](url)로 보존되고, 인라인 코드 / 사전 서식 블록은 fenced 코드로 유지됩니다.
source_file 또는 source_url, format(MIME), title, canonical, 감지된 language, generator, created, 그리고 출처 확인을 위한 binary_hash를 담습니다.
# / ## / ###을 결정하므로 RAG 스플리터가 섹션 중간이 아닌 의미적 경계에서 자릅니다.
.docling.json 사이드카 — 표 경계 사각형, 링크 인벤토리, 그리고 스플리터용 chunks_hint를 포함한 구조화된 JSON입니다.
이것이 CoolUtils RAG Adapter입니다 — 모든 Total Converter X 제품이 공유하는 통합 Markdown 계약입니다. 전체 사양, 샘플 .md + .docling.json, 통합 스니펫은 Coolutils Converter X — RAG Adapter 페이지에 있습니다.
string src = @"C:\test\Source.html";
string dest = @"C:\test\Dest.pdf";
var cnv = new HTMLConverterX();
cnv.Convert(src, dest, "-cPDF -log c:\\test\\HTML.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\HTMLConverterX.exe";
sbLogs.AppendLine(executablePath + "...");
var srcPath = $@"{assemblyDirectoryPath}\src\sample.html";
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("HTMLConverter.HTMLConverterX")
C.Convert "c:\source.html", "c:\dest.jpg", "-cJPG -log c:\html.log"
C.Convert "https://www.coolutils.com/", "c:\URL Page.pdf", "-cPDF -log c:\html.log"
Response.Write C.ErrorMessage
set C = nothing
dim C
Set C=CreateObject("HTMLConverter.HTMLConverterX")
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.html", "C:\www\ASP", "-cpdf -log c:\html.log")
set C = nothing
$src="C:\\test\\test.html";
$dest="C:\\test\\test.pdf";
if (file_exists($dest)) unlink($dest);
$c= new COM("HTMLConverter.HTMLConverterX");
$c->convert($src,$dest, "-cPDF -log c:\\HTML.log");
if (file_exists($dest)) echo "OK"; else echo "fail:".$c->ErrorMessage;
require 'win32ole'
c = WIN32OLE.new('HTMLConverter.HTMLConverterX')
src = "C:\\test\\test.html"
dest = "C:\\test\\test.pdf"
c.convert(src, dest, "-cPDF -log c:\\test\\HTML.log")
if not File.exist?(dest)
puts c.ErrorMessage
end
import win32com.client
import os.path
c = win32com.client.Dispatch("HTMLConverter.HTMLConverterX")
src = "C:\\test\\test.html"
dest = "C:\\test\\test.pdf"
c.convert(src, dest, "-cPDF -log c:\\test\\HTML.log")
if not os.path.exists(dest):
print(c.ErrorMessage)
uses Dialogs, Vcl.OleAuto;
var
c: OleVariant;
begin
c := CreateOleObject('HTMLConverter.HTMLConverterX');
c.Convert('c:\test\source.html', 'c:\test\dest.pdf', '-cPDF -log c:\test\HTML.log');
if c.ErrorMessage <> '' then
ShowMessage(c.ErrorMessage);
end;
var c = new ActiveXObject("HTMLConverter.HTMLConverterX");
c.Convert("C:\\test\\source.html", "C:\\test\\dest.pdf", "-cPDF");
if (c.ErrorMessage != "")
alert(c.ErrorMessage)
use Win32::OLE; my $src = "C:\\test\\test.html"; my $dest = "C:\\test\\test.pdf"; my $c = CreateObject Win32::OLE 'HTMLConverter.HTMLConverterX'; $c->convert($src, $dest, "-cPDF -log c:\\test\\HTML.log"); print $c->ErrorMessage if -e $dest;
"제가 Total HTML Converter X를 선택한 이유. 몇 가지 이유가 있었습니다. 첫째, 다른 변환기들이 할 수 없다고 했던 우리에게 필요한 기능(각 페이지에 동일한 머리글을 두는 기능, 행이 페이지를 가로질러 나뉘지 않는 기능 포함)을 제공할 수 있었습니다. 둘째, 우리가 제품을 구매하기 전에도 우리의 요청에 매우 협조적이고 응답이 빨랐습니다. 셋째, 우리의 상황을 설명했을 때 두 번째 royalty-free 라이선스의 가격을 조정해 주는 것을 마다하지 않았습니다. 넷째, 매우 고객 중심적으로 보였고 제품을 구매한 후에도 무시당하지 않을 것이라는 느낌을 받았습니다 — 그리고 제 생각이 맞았습니다!"
Andy Poulsen
www.asp-inno.com
"우리는 자체 템플릿 엔진에서 일일 포트폴리오 보고서를 HTML로 렌더링한 다음, Total HTML Converter X를 통해 HTML을 처리하여 디지털 서명이 있는 고객 전달용 PDF를 생성합니다. -PFXFile/-PFXPass 서명 시나리오는 단일 바이너리 호출로, 별도의 후처리가 필요 없습니다. 매일 밤 약 4,000건의 보고서가 처리되며, 실행 간 결정론적입니다. 비동기로 로드되는 폰트에서 충돌하던 wkhtmltopdf 파이프라인을 교체했고, 내장 렌더러는 그냥 잘 작동합니다."
Stefan H.
Senior Backend Developer at a financial-reporting platform
"고객들은 우리 CMS에서 기사를 내보내고 보관용 PDF 사본을 원합니다. -HeadText/-FootText를 사용한 Total HTML Converter X는 모든 페이지에 출판 메타데이터를 적용하며, HTML 너비 자동 맞춤은 각 템플릿마다 사용자 정의 CSS를 작성하지 않고도 편집용 표를 처리합니다. Windows Server Core에서 헤드리스로, Chromium 없이, 예상치 못한 일도 없이 작동합니다. 5년간 운영 환경에서 사용 중이며, 일반적인 기사 HTML의 경우 우리 하드웨어에서 처리량은 초당 약 80페이지입니다."
Margit V.
DevOps Engineer at a CMS platform
"Total HTML Converter X를 Royalty-Free License로 우리 인트라넷 출판 제품에 번들링했습니다. 프로젝트당 일회성 비용은 wkhtmltopdf 기반의 상용 래퍼들이 재배포 권한에 요구하던 금액의 일부에 불과했습니다. 우리 설치 프로그램이 ActiveX를 배포하고 등록하며, 우리 앱이 직접 호출하므로 최종 사용자는 우리 UI만 봅니다. 32비트 ActiveX 제한 때문에 파이프라인 재작업에 며칠을 썼지만, 우회 방법에 대해 문의했을 때 지원팀의 응답이 빨랐습니다."
Carlos P.
Independent Software Vendor
"고객용 대시보드는 HTML이며, 일부 사용자는 기록을 위해 PDF 스냅샷을 원합니다. 우리는 렌더링된 대시보드의 라이브 URL로 Total HTML Converter X를 호출하는 'PDF로 다운로드' 링크를 노출합니다. 변환기는 쿠키 기반 세션을 통해 로그인하고 동일한 PDF 렌더링을 생성합니다. CSS 페이지 나누기 제어가 정확히 준수되어 다중 섹션 대시보드가 깔끔하게 분할됩니다. CLI는 안정적이고, 문서화가 잘 되어 있으며, -log -verbosity detail 덕분에 디버깅이 매우 간단합니다."
Akari N.
Lead .NET Developer at a partner-portal SaaS
ActiveX를 통해 웹 서버에서 HTML을 PDF, DOC, 이미지로 변환하는 개발자 및 IT 팀
ActiveX를 통해 웹 애플리케이션에 HTML 변환 기능 추가
웹 개발자는 Total HTML ConverterX를 ASP, PHP, .NET 애플리케이션에 통합해 사용자가 제출한 HTML 파일을 서버에서 PDF, DOC, 이미지로 변환합니다. 여러 사용자가 GUI 중단 없이 동시에 변환을 수행하며 컨버터는 자동으로 결과를 반환합니다.
디지털 서명이 포함된 HTML 보고서를 PDF로 변환
기업 애플리케이션은 서버에서 HTML 보고서를 생성하고 Total HTML ConverterX를 사용해 배포를 위한 PDF로 변환합니다. 문서 진위성을 위한 디지털 서명을 추가하고, 사용자 정의 워터마크를 적용하며, 넓은 HTML 표를 선택한 페이지 크기에 자동으로 맞춥니다. 이 모든 것이 자동화된 보고서 파이프라인의 일부로 처리됩니다.
보관을 위해 HTML 콘텐츠를 표준 형식으로 변환
문서 관리 시스템은 Total HTML ConverterX를 사용해 수신된 HTML 파일, 저장된 웹 페이지, 이메일 템플릿을 표준화된 저장을 위한 PDF 또는 TIFF로 변환합니다. 컨버터는 모든 HTML 태그와 CSS 스타일을 인식해 헤더, 푸터, 데이터베이스 인덱싱을 위한 메타데이터 추출이 포함된 충실한 출력을 생성합니다.
로컬 네트워크의 모든 사용자에게 HTML 변환 서비스 제공
조직은 로컬 네트워크에 Total HTML ConverterX를 클라이언트-서버 애플리케이션으로 배포합니다. 부서 전반의 직원이 공유 서비스를 통해 HTML 파일을 PDF, XLS, TIFF로 변환을 요청합니다. 모든 워크스테이션에 데스크톱 컨버터를 설치할 필요가 없습니다.
서버에서 명령줄을 통한 HTML 파일 일괄 변환
IT 팀은 예약된 일괄 작업과 자동화된 워크플로에서 명령줄을 통해 Total HTML ConverterX를 실행합니다. 웹 스크레이퍼, CMS 내보내기, 애플리케이션 로그의 HTML 출력은 도착 즉시 PDF 또는 이미지로 변환됩니다. 오류는 모니터링을 위해 로그 파일에 저장됩니다. 팝업이나 사용자 개입이 필요 없습니다.
Total HTML ConverterX에는 HTMLConverterX.exe라는 콘솔 바이너리가 포함되어 있어 .bat 스크립트, 예약 작업, PHP/.NET 백엔드 또는 모든 서버 측 워커에서 호출할 수 있습니다. 플래그 세트는 GUI HtmlConverter.exe를 미러링합니다. 전체 참조는 명령줄 문서를 참조하세요. 아래의 예제는 SDK 고객들이 가장 자주 묻는 요청을 다룹니다.
최소 호출 — 하나의 소스 파일, 하나의 출력, 하나의 대상 형식.
HTMLConverterX.exe "C:\pages\index.html" "C:\out\index.pdf" -cPDF
폴더 내 모든 HTML 파일을 처리하고 형제 출력 디렉터리에 PDF를 떨어뜨립니다.
HTMLConverterX.exe "C:\pages\*.html" "C:\out\" -cPDF
다른 소스 형식을 선택하려면 마스크를 *.mht, *.mhtml 또는 *.htm으로 바꾸세요.
소스 인수는 파일 경로뿐만 아니라 URL이 될 수 있습니다. Chrome 렌더 엔진은 최신 CSS, 웹 글꼴 및 JavaScript가 많은 페이지를 처리합니다.
HTMLConverterX.exe "https://www.coolutils.com" "C:\out\coolutils.pdf" -cPDF -engine chrome
문서 사이트와 내보낸 위키는 거의 한 평평한 폴더에 있지 않습니다. -Recurse는 하위 디렉터리를 탐색합니다. -kfs는 모든 파일을 하나의 버킷에 평평하게 만드는 대신 출력 측에서 동일한 트리를 다시 만듭니다.
HTMLConverterX.exe "C:\docs\manual\*.html" "C:\out\manual\" -cPDF -Recurse -kfs
일반적인 전체 사이트 내보내기 작업: 함께 속하는 수십 페이지. -combine은 소스 파일 순서대로 병합하고 -toc는 목차를 생성합니다.
HTMLConverterX.exe "C:\docs\manual\*.html" "C:\out\manual.pdf" -cPDF -combine -toc -sort name
다중 페이지 TIFF를 대상으로 할 때는 -combine 대신 -Multipage를 사용하세요.
보고서는 일반적으로 모든 페이지의 상단에 제목과 하단에 "10페이지 중 1페이지"가 필요합니다. [page]와 [date] 자리 표시자는 렌더링 시 확장됩니다.
HTMLConverterX.exe "C:\pages\*.html" "C:\out\" -cPDF -HeadText "Acme Quarterly Report — [date]" -HeadAlign center -FootText "Page [page]" -FootAlign right
클라이언트에게 초안을 보낼 때의 표준입니다: 소유자 비밀번호로 편집/인쇄 권한을 잠그고, 사용자 비밀번호로 파일 열기를 제어하며, 워터마크가 모든 페이지에 레이블을 지정합니다.
HTMLConverterX.exe "C:\pages\*.html" "C:\out\" -cPDF -mp "owner-pwd" -up "user-pwd" -perm Print -wmt "CONFIDENTIAL" -wmr 45 -wtr 30
Print를 Copy, Modify, Annotation, FormFill, HighResPrint의 조합으로 바꾸어 원하는 권한을 정확히 부여하세요.
검증 가능한 서명자가 필요한 계약, 송장 및 기타 문서용입니다. PFX 파일은 인증서를 보유합니다. -PFXPass가 잠금을 해제합니다.
HTMLConverterX.exe "C:\pages\contract.html" "C:\out\contract.pdf" -cPDF -PFXFile "C:\certs\acme.pfx" -PFXPass "cert-pwd" -SignName "Acme Legal" -SignLoc "New York, NY" -SignRes "Approved by counsel"
적절한 작성 메타데이터가 있는 ISO 19005 호환 PDF/A 파일이 필요한 기록 관리 워크플로우용입니다.
HTMLConverterX.exe "C:\pages\*.html" "C:\archive\" -cPDF -pdfa -PDFAuthor "Acme Inc." -PDFTitle "Knowledge Base 2026" -PDFSubject "Support articles snapshot"
워커가 큐 파일을 작성하고 변환기가 이를 사용하는 경우, 명령줄에 모든 경로를 인코딩하고 싶지 않을 것입니다. -list는 텍스트 파일에서 파일 마스크(한 줄에 하나)를 읽습니다. -verbosity detail은 파일당 한 로그 줄을 작성합니다. -logmode append는 실행 간에 기록을 유지합니다.
HTMLConverterX.exe -list "C:\queues\batch.txt" "C:\out\" -cPDF -log "C:\logs\htmlconv.log" -verbosity detail -logmode append
|
|
|
C.Convert("https://www.example.com/report", "c:\out\report.pdf", "-cPDF"). 이 방식은 라이브 상태 대시보드, 생성된 보고서 또는 파트너 포털 페이지를 일정에 따라 PDF로 렌더링하는 데 널리 사용됩니다.new COM("HTMLConverter.HTMLConverterX"), .NET에서는 new HTMLConverterX(), Python에서는 win32com.client.Dispatch("HTMLConverter.HTMLConverterX"), Ruby에서는 WIN32OLE.new('HTMLConverter.HTMLConverterX')를 사용합니다. 또는 HTMLConverterX.exe 명령줄 바이너리를 모든 프로세스, 스케줄러 또는 셸 스크립트에서 호출할 수 있습니다. ASP/PHP 웹 응답을 위해 ConvertToStream을 통한 직접 PDF 스트리밍도 사용할 수 있습니다.-PFXFile "C:\certs\cert.pfx" -PFXPass "cert-pwd"를 사용하여 X.509 인증서로 출력 PDF에 디지털 서명을 합니다. -HeadText와 -FootText는 [page], [date], [time]과 같은 템플릿 토큰을 사용하여 사용자 정의 머리글/바닥글을 추가합니다 — IE의 인쇄 머리글과 동등합니다. 워터마크(텍스트 또는 이미지), AES-256 암호화, 권한별 플래그(-perm Print|Copy|Modify)가 모두 지원됩니다.page-break-before, page-break-after, page-break-inside: avoid)가 준수되므로 행이나 섹션과 같은 논리적 단위가 페이지에 걸쳐 함께 유지됩니다. -PageSize는 작업별로 대상 용지 크기(A4, Letter, Legal 등)를 설정합니다..md를 대상으로 하면 변환기가 GitHub-Flavored Markdown을 작성합니다: HTML 헤딩이 #/##/###으로 매핑되고, 표는 GFM 표가 되며, 목록은 목록으로 유지되고, 앵커는 [text](url)로 보존되며, 코드 블록은 fenced 코드로 유지됩니다. 보일러플레이트(내비게이션, 푸터, 쿠키 배너)는 제거됩니다 — 아티클 콘텐츠만 인덱스에 도달합니다. YAML frontmatter 블록은 source_url, title, canonical, 감지된 language, 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을 그대로 컨텍스트에 붙여넣을 수 있습니다 — 헤딩이 청크가 어느 섹션에서 왔는지 보여주고, 표가 렌더링되며, frontmatter가 모델에게 소스 URL과 언어 힌트를 제공합니다.HTMLConverterX.exe "https://example.com/article" "C:\out\article.md" -cMD -Docling. 오프라인 페이지의 경우 URL 대신 로컬 HTML/MHT 파일을 전달하세요. -cMD는 Markdown을 선택하고, -Docling은 추가로 .docling.json 사이드카를 작성합니다. COM에서: obj.Convert("https://example.com", "page.md", "-cMD -Docling"). 결과 Markdown은 모든 벡터 스토어에서 청크화, 임베딩, 인덱싱할 준비가 되어 있습니다.무료 평가판을 다운로드하고 몇 분 만에 파일을 변환하세요.
신용카드나 이메일이 필요하지 않습니다.