在Web服务器上将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 是一款服务器端 SDK,可将 Word 文档(DOC、DOCX、DOCM、RTF、TXT)转换为 PDF、HTML、XHTML、XLS、JPG、TIFF、PNG、RTF 和 Unicode TXT—无需在服务器上安装 Microsoft Word、Office Interop 或任何无界面 Office 实例。它以静默方式运行:无图形界面、无对话框、无弹窗。Total Doc Converter X 同时提供命令行程序和 ActiveX/COM 接口,可直接接入 ASP、PHP、.NET、Python、Ruby、Java 以及任何支持 COM 的后端。源格式覆盖范围:
-Recurse -kfs)实现整棵文档树的批量处理;与 Total Folder Monitor 联动,实现文件到达即触发的热文件夹自动转换。
多用户友好:在 Windows 服务器上一次安装,即可作为 Web 服务对外暴露,或作为 Windows 服务运行。多线程引擎以最高速度处理批量任务。兼容 IIS、Docker、Citrix 和 Wine。
免费试用(30 天试用期,无任何限制),亲自验证它是否物有所值。
当前支持的部分文件格式转换:
|
|
|
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 文件。Total Doc Converter X 配合 -PFXFile/-PFXPass 生成的签名归档 PDF 能被法院系统接受。我们替换掉了原先的 Word Interop 流程—过去只要客户发来一个损坏的 DOC,那条流水线就会崩溃;这里内置的解析器更宽容,而 Word 在那种情况下根本拒绝打开文件。已在生产环境运行五年,没有一次故障可以归咎于这款转换器。"
Marek L.
Senior Backend Developer at a legal-tech vendor
"员工政策文档由客户以数十种企业模板的 DOCX 形式发送过来。我们在文档进入员工门户之前,将每一份都渲染为带水印戳记和 Bates 页码的 PDF。Total Doc Converter X 加上 Total Folder Monitor:客户把文件丢进收件文件夹,转换器把它们处理掉,门户再取走 PDF。我们任何一台转换虚拟机上都没有装 Word,没有授权方面的疑虑,按我们目前的硬件吞吐量大约是每分钟 200 份文档。"
Yuna K.
DevOps Engineer at an HR SaaS
"我们以 Royalty-Free 许可证将 Total Doc Converter X 集成到自家的文档管理产品中。一次性的项目费用只是 Aspose.Words 按开发人员订阅价格的零头。我们的安装程序会发布并注册 ActiveX,应用程序直接调用它,最终用户只看到我们自己的界面。32 位 ActiveX 的限制让我们花了几天时间重做流水线,但当我们询问变通方案时,技术支持响应得很及时。"
Karim Z.
Independent Software Vendor
Developers and IT teams that convert Word documents to PDF, images, and other formats on servers
Add DOC-to-PDF conversion to your web app via ActiveX
Web developers integrate Total Doc ConverterX into ASP, PHP, or .NET applications so users can upload Word files and receive converted PDF, HTML, or image output. The converter runs silently on the server with no GUI, handling multiple simultaneous conversion requests without interruption.
Convert Word uploads to PDF and TIFF for archival systems
Document management platforms use Total Doc ConverterX to convert incoming DOC and DOCX files to PDF for standardized storage or TIFF for image-based archives. The converter preserves document layout exactly and maintains folder structure when processing entire directory trees in batch.
Convert Word files on servers via command line
Enterprise IT teams run Total Doc ConverterX in scheduled batch jobs to convert Word documents from email systems, upload portals, and shared drives. Combine with Total Folder Monitor to auto-convert new DOC files as they arrive in watched folders — completely hands-free with no pop-ups or user interaction.
Serve document conversion to all users on your network
Organizations deploy Total Doc ConverterX on a central server so employees across departments can convert Word documents to PDF, XLS, HTML, or images through a shared service. One server installation replaces dozens of desktop converters — reducing licensing costs and IT maintenance.
Embed Word conversion into your own software products
Software vendors integrate Total Doc ConverterX via ActiveX into their applications to offer DOC-to-PDF, DOC-to-TIFF, and DOC-to-HTML conversion without building a rendering engine. The API handles Word, DOCX, RTF, and TXT files with full layout preservation and customizable output settings.
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
法律和人力资源档案很少存在于一个平面文件夹中。-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 —— 占磁盘空间小,无损,每个图像系统都接受。使用 -tc 7 表示 G4FAX;切换到 -tc 1 表示 LZW,或 -tc 3 表示 JPEG 压缩的 TIFF。
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 抑制交互式错误对话框,并将失败写入您可以跟踪或抓取的文件。
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')。也可以从任何进程、调度器或 shell 脚本中调用 DocConverterX.exe 命令行程序。还提供 ConvertToStream 方法,可在 ASP/PHP Web 响应中直接流式输出 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,将 X.509 证书附加到每个输出 PDF。DocConverterX.exe "C:\inbox\*.docx" "C:\out\" -cPDF。添加 -Recurse 进入子文件夹,添加 -kfs 在输出端镜像源文件夹结构,而不是把所有文件平铺到一个目录里。结合 -list "queue.txt" 可构建工作进程驱动的处理流水线,使用 -msuccess/-merror 可将已处理和失败的源文件分别路由到不同文件夹。