我想使用 Word Viewer 将 Word 文档保存为 HTML 格式,但我的计算机中未安装 Word。有什么方法可以在 C# 中实现这一点吗?
要将 .docx 文件转换为 HTML 格式,您可以使用 OpenXmlPowerTools。确保添加对 OpenXmlPowerTools.dll 的引用。
using OpenXmlPowerTools;
using DocumentFormat.OpenXml.Wordprocessing;
byte[] byteArray = File.ReadAllBytes(DocxFilePath);
using (MemoryStream memoryStream = new MemoryStream())
{
memoryStream.Write(byteArray, 0, byteArray.Length);
using (WordprocessingDocument doc = WordprocessingDocument.Open(memoryStream, true))
{
HtmlConverterSettings settings = new HtmlConverterSettings()
{
PageTitle = "My Page Title"
};
XElement html = HtmlConverter.ConvertToHtml(doc, settings);
File.WriteAllText(HTMLFilePath, html.ToStringNewLineOnAttributes());
}
}
您可以尝试使用 Microsoft.Office.Interop.Word;
using Word = Microsoft.Office.Interop.Word;
public static void ConvertDocToHtml(object Sourcepath, object TargetPath)
{
Word._Application newApp = new Word.Application();
Word.Documents d = newApp.Documents;
object Unknown = Type.Missing;
Word.Document od = d.Open(ref Sourcepath, ref Unknown,
ref Unknown, ref Unknown, ref Unknown,
ref Unknown, ref Unknown, ref Unknown,
ref Unknown, ref Unknown, ref Unknown,
ref Unknown, ref Unknown, ref Unknown, ref Unknown);
object format = Word.WdSaveFormat.wdFormatHTML;
newApp.ActiveDocument.SaveAs(ref TargetPath, ref format,
ref Unknown, ref Unknown, ref Unknown,
ref Unknown, ref Unknown, ref Unknown,
ref Unknown, ref Unknown, ref Unknown,
ref Unknown, ref Unknown, ref Unknown,
ref Unknown, ref Unknown);
newApp.Documents.Close(Word.WdSaveOptions.wdDoNotSaveChanges);
}
根据这个 Stack Overflow 问题,使用 Word 查看器是不可能的。您将需要 Word 才能使用 COM Interop 与 Word 进行交互。
我认为这取决于Word文档的版本。 如果您有 docx 格式的文件,我相信它们会作为 XML 数据存储在文件中(但自从我查看规范以来已经很久了,我非常高兴能对此进行更正)。
如果您愿意不使用 C#,您可以使用 PrimoPDF 打印到文件(这会将 .doc 更改为 .pdf),然后使用 PDF 到 HTML 转换器完成剩下的工作。 之后,您可以根据需要编辑 html。
我得到的另一个类似主题是将 Word 转换为 HTML,然后在网页上呈现 HTML。我想如果您仍在使用它,您可能会发现这很有帮助。有一个免费分发的 dll 可以用于此目的。我已经在那里给出了链接。
Gembox 效果很好。 它甚至可以将 Word 文档中的图像转换为 img 标签中的 base64 编码字符串。
我编写了一个新的 docx 到 html / txt 解析器和转换器library,它将 docx 转换为 WYSIWYG html / txt 格式(包括使用样式继承逻辑合并的所有相关 xml 文件的编号、边距、缩进、样式) docx 格式等)。这是一个Python库。
我相信您需要安装 MS Word 才能执行此操作。
查看本文以了解有关实施的详细信息。
使用 OpenOffice.org 中提供的文档转换工具可能是唯一可能的选择 - .doc 格式仅设计为通过 Microsoft 产品打开,因此任何处理该格式的库都需要对整个格式进行逆向工程。