您有大量DOC和DOCX文件,您需要可读的文本正文,而不是格式 — 用于全文索引、搜索引擎摄取、NLP和机器学习流水线、电子取证审阅或长期归档。在Word中逐个打开文件并保存为纯文本无法扩展到多个文件,并且会留下Word格式构件。Total Doc Converter X可通过命令行批量剥离Word格式并写入干净的UTF-8或ANSI文本,无需GUI,无需安装Microsoft Word。将其安装在Windows服务器上,通过脚本或ActiveX调用,即可实现无人值守运行。
*.docx),转换器即可在一次运行中处理所有匹配文件
Windows 7/8/10/11 • Server 2008/2012/2016/2019/2022
DOC和DOCX是为人类阅读和编辑而构建的Microsoft Word格式。DOCX文件是带有XML部分、嵌入媒体、样式、修订历史、批注和跟踪修订的ZIP容器。搜索引擎、索引器、LLM分词器或电子取证流水线对这些都不关心 — 它关心的是可读的文本。将这些系统指向原始Word文件会迫使每个消费者自带DOC/DOCX解析器,而解析器在边缘情况上意见不一。
TXT是最低公分母。每个搜索索引器、每个NLP工具包、每个grep风格工具、每个差异工具都以同样的方式读取纯文本。在服务器上将Word转换为TXT一次,可为每个下游消费者提供相同的干净输入。表格扁平化为制表符分隔的行或换行。图像被剥离。页眉和页脚可以保留或剥离,取决于您的标志。剩下的就是正文内容,可用于索引或特征提取。
| DOC / DOCX | TXT | |
|---|---|---|
| 内容 | 文本 + 格式 + 媒体 | 仅文本 |
| 文件大小 | 数十到数百KB | 通常为原始大小的5–20% |
| 索引 | 需要DOC/DOCX解析器 | 适用于任何索引器或分词器 |
| 表格 | 结构化单元格 | 扁平化为制表符分隔的行 |
| 图像 | 嵌入 | 已删除 |
| 受众 | 审阅者、编辑 | 搜索、NLP、归档、电子取证 |
从上方链接下载安装程序,在Windows服务器或工作站上运行。安装不到一分钟即可完成。无需安装Microsoft Word、LibreOffice或浏览器 — 转换器使用自有引擎直接解析DOC和DOCX,并以您指定的编码写入纯文本。
打开cmd.exe或PowerShell。转换器可执行文件为DOCConverter.exe,位于安装文件夹中(通常为C:\Program Files\CoolUtils\TotalDocConverterX\)。将其添加到系统PATH,或在命令中使用完整路径。
最简单的命令是将文件夹中所有DOCX文件转换为TXT:
DOCConverter.exe C:\Docs\*.docx C:\Output\ -c TXT -Encoding UTF-8
此命令处理C:\Docs\中的每个.docx文件,并将生成的TXT文件保存到C:\Output\。每个Word文件生成一个同名的TXT。对旧版Word 97–2003文档使用*.doc,或使用*.do*一次捕获两者。
使用附加标志控制TXT输出:
DOCConverter.exe C:\Docs\*.docx C:\Output\ -c TXT -Encoding UTF-8 -BOM 0 -log C:\Logs\word2txt.log
-Encoding UTF-8 — 输出编码(UTF-8、UTF-16、ANSI、1251、1252等)-BOM 0 — 抑制UTF-8字节顺序标记;使用-BOM 1写入它-LineBreaks CRLF — Windows风格\r\n或LF用于Unix风格\n-log C:\Logs\word2txt.log — 写入转换日志以便验证将命令保存到.bat文件中,并通过Windows任务计划程序安排执行:
@echo off "C:\Program Files\CoolUtils\TotalDocConverterX\DOCConverter.exe" C:\Incoming\*.docx C:\Archive\TXT\ -c TXT -Encoding UTF-8 -BOM 0 -log C:\Logs\word2txt.log
此脚本每晚(或按您设定的任何间隔)运行转换,并写入日志文件以便您验证结果。将输出文件夹与您的搜索索引器或NLP摄取作业配对,整个流水线无需任何手动步骤即可端到端运行。
Total Doc Converter X包含完整的ActiveX接口。您可以从任何兼容COM的环境调用转换器 — .NET、VBScript、PHP、Python、Ruby或ASP。这使您能够将Word到文本的转换嵌入自己的Web应用、电子取证平台或文档工作流,无需通过命令行进程调用。
示例(C#/.NET):
DOCConverterX Cnv = new DOCConverterX();
Cnv.Convert("C:\\Docs\\contract.docx", "C:\\Output\\contract.txt", "-c TXT -Encoding UTF-8 -BOM 0 -log c:\\Logs\\doc.log");
示例(PHP):
$c = new COM("DOCConverter.DOCConverterX");
$c->convert("C:\\Docs\\contract.docx", "C:\\Output\\contract.txt", "-c TXT -Encoding UTF-8 -BOM 0 -log c:\\Logs\\doc.log");
同样的调用方式适用于ASP.NET、VBScript、Python、Ruby、Perl和JavaScript(Windows Script Host)。您的Web应用可以接受上传的Word文件,并实时向索引器、LLM端点或存储层返回干净的UTF-8文本。
| 功能 | 在线转换器 | Total Doc Converter X |
|---|---|---|
| 批量处理 | 一次一个文件 | 每批次无限文件 |
| 文件隐私 | 文件上传至第三方服务器 | 文件不会离开您的机器 |
| 编码控制 | 仅UTF-8,强制BOM | UTF-8、UTF-16、ANSI、代码页、BOM开/关 |
| 多语言内容 | 对CJK、RTL文字不一致 | 完整保留Unicode |
| 自动化 | 仅手动操作 | 命令行、.bat、任务计划程序、ActiveX |
| 服务器部署 | 不可能 | 专为服务器设计,无需GUI |
| 需要安装Word | 不适用 | 否 |
| 需要互联网 | 是 | 否 |
转换器直接解析DOC和DOCX。您无需在服务器上安装Microsoft Office、LibreOffice或任何文字处理软件。这避免了授权成本,也避免了在无人值守场景中自动化Word众所周知的不稳定问题。
Total Doc Converter X专为无人值守使用而设计。没有GUI窗口,没有对话框,没有确认提示。它从命令行静默运行,或作为服务的一部分运行 — 正是生产服务器所需要的。
搜索索引器、NLP框架和遗留归档各自有自己的编码规则。Total Doc Converter X可写入带或不带BOM的UTF-8、UTF-16 LE或BE、Windows ANSI代码页1251和1252以及系统上注册的任何其他代码页。西里尔字母合同、日文产品手册、阿拉伯文通信和德语技术文档在转换中都能完整保留 — 转换器以Unicode读取源DOC/DOCX并写入所选输出编码,无有损音译。在.bat文件中设置一次-Encoding,输出按字节匹配下游消费者。
同一命令行工具可将Word转换为PDF、HTML、RTF、XLS、TIFF、JPEG等格式。一次安装即可满足所有Word转换需求。将-c TXT改为-c PDF,即可获得具有相同批处理和自动化功能的PDF输出。
Windows 7/8/10/11 • Server 2008/2012/2016/2019/2022
"我们每个案件处理数千份DOC和DOCX证物。Total Doc Converter X作为夜间批处理在电子取证服务器上运行,生成UTF-8文本副本用于关键字搜索和概念聚类。文本正文干净 — 没有Word构件,没有页眉/页脚噪声,表格扁平化为制表符。设置-BOM 0是让我们的索引器在第一次尝试就成功的小细节。"
Caroline Whitford Litigation Support Specialist, Mid-Atlantic Law Group
"我们将合同语料喂入嵌入流水线进行检索增强搜索。在流水线内解析DOCX既慢又脆弱,python-docx在表格单元格上与Word意见不一致。使用DOCConverter.exe预先转换为纯TXT消除了这两个问题。.bat文件存在于任务计划程序中,嵌入作业读取TXT,我们不再与Word XML作斗争。"
Devansh Iyer NLP Engineer
"合规要求我们在原始文件旁边保留每份临床文档的纯文本副本以供长期归档。我们选择Total Doc Converter X是因为它不需要在文件服务器上安装Word,编码标志让我们可以在归档中标准化为不带BOM的UTF-8。表格扁平化规则的文档可以更详细,但当我们提问时,技术支持当天就做了回复。"
Margaret Holloway Records Manager, Regional Health Network
DOCConverter.exe C:\Docs\*.docx C:\Output\ -c TXT -Encoding UTF-8。此命令将源文件夹中的每个Word文件转换为TXT。对旧版Word 97–2003文件使用*.doc,或使用*.do*一次捕获DOC和DOCX。-Encoding,后跟目标编码。支持的值包括UTF-8、UTF-16、UTF-16BE、ANSI,以及系统上注册的任何Windows代码页(例如,西里尔字母Windows使用1251,西欧使用1252)。输出字节与下游索引器或解析器期望的完全匹配。-BOM 0以写入不带字节顺序标记的干净UTF-8流。使用-BOM 1发出BOM。某些搜索索引器和JSON解析器拒绝以BOM开头的文件,而某些Windows原生工具需要它 — 此标志让您可以匹配任意一方而无需后处理。-Encoding UTF-8以在单个字节流中获得完整的Unicode覆盖,或者如果您的归档标准要求,则选择代码页。-IncludeHeaders 0完全删除它们,或使用-IncludeHeaders 1保留它们。页码被剥离,因为TXT没有页面的概念。DOCConverter.DOCConverterX)。您可以从.NET、PHP、Python、VBScript、ASP、Ruby、Perl及任何其他兼容COM的环境中调用它。您的Web应用可以接受上传的DOC/DOCX文件,并实时向索引器或LLM端点返回UTF-8文本。
string src="C:\\test\\Source.Doc";
string dest="C:\\test\\Dest.PDF";
DocConverterX Cnv = new DocConverterX();
Cnv.Convert(src, dest, "-c PDF -log c:\\test\\Doc.log");
MessageBox.Show("转换完成!");
dim C
Set C=CreateObject("DocConverter.DocConverterX")
C.Convert "c:\source.DOC", "c:\dest.TIF", "-cTIF -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"
Rresponse.AddHeader "Content-Disposition", "attachment; filename=test.pdf"
Response.BinaryWrite c.ConvertToStream("C:\www\ASP\Source.doc", "C:\www\ASP", "-cpdf -log c:\html.log")
set C = nothing
更多的 ASP.net 专用 C# 示例。如果您需要其他语言的示例,请 联系我们。我们将为您特别创建任何示例。
$src="C:\test.doc";
$dest="C:\test.htm";
if (file_exists($dest)) unlink($dest);
$c= new COM("DocConverter.DocConverterX");
$c->convert($src,$dest, "-c htm -log c:\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, "-c PDF -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, "-c PDF -log c:\\test\\Doc.log");
if not os.path.exists(file_path):
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", "-c PDF");
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, "-c pdf -log c:\\test\\Doc.log"); print $c->ErrorMessage if -e $dest;