gpt4 book ai didi

c# - 将 Word 保存为 UTF-8 编码的 HTML

转载 作者:行者123 更新时间:2023-11-30 15:23:44 27 4
gpt4 key购买 nike

我正在编写一些 C# VSTO 代码来读取 Microsoft Word 文档并将其保存到已过滤的 HTML 中。当我在通用 Word 文档上执行此功能时,html 文件的输出使用 Windows 字符集,如下所示:

<meta http-equiv=Content-Type content="text/html; charset=windows-1252">

如果我打开一个文档并转到"file"->“选项”->“高级”->“Web 选项”,我可以选择 UTF8,结果过滤后的 html 文档输出如下所示:

<meta http-equiv=Content-Type content="text/html; charset=utf-8">

我想编写 C# 代码,将 任何 Word 文档保存为使用 utf-8 过滤的 html。在做了一些研究之后,我发现有人说“SaveAs2”功能不起作用(尽管 Microsoft 将其记录为一项功能)。这意味着,这段代码对我不起作用:

doc.SaveAs2("C:\\Temp\\Test.htm", MsWord.WdSaveFormat.wdFormatFilteredHTML, Encoding: "65001");

(注意:我尝试将 65001 放在引号和不带引号中。既不会抛出错误,也不会起作用)。

接下来,我继续为文档设置网络选项,如下所示:

doc = app.Documents.Open("C:\\Temp\\Test.docx");
doc.WebOptions.Encoding = Microsoft.Office.Core.MsoEncoding.msoEncodingUTF8;
doc.SaveAs2(destFile, MsWord.WdSaveFormat.wdFormatFilteredHTML);

据我所知,上面的代码执行与我手动打开文件完全相同的功能,转到文件->选项...,设置为 UTF-8 并将文件保存为过滤后的 html,但输出仍然看起来像这样:

<meta http-equiv=Content-Type content="text/html; charset=windows-1252">

有没有办法强制 Microsoft Word 将文件输出为 UTF-8 而无需先手动配置文档?

最佳答案

在撰写本文时,尚不清楚我的特定版本的 Microsoft Word(Word Online)或 VSTO 模板是否遇到了错误,但我将在此处回答是什么让我如此有效。

如果此代码不起作用:

doc = app.Documents.Open("C:\\Temp\\Test.docx");
doc.WebOptions.Encoding = Microsoft.Office.Core.MsoEncoding.msoEncodingUTF8;
doc.SaveAs2("C:\\Temp\\Test.htm", MsWord.WdSaveFormat.wdFormatFilteredHTML);

然后,更改代码以刷新文档的字段,如下所示:

doc = app.Documents.Open("C:\\Temp\\Test.docx");

doc.Fields.Update(); // ** this is the new line of code.

doc.WebOptions.Encoding = Microsoft.Office.Core.MsoEncoding.msoEncodingUTF8;
doc.SaveAs2("C:\\Temp\\Test.htm", MsWord.WdSaveFormat.wdFormatFilteredHTML);

关于c# - 将 Word 保存为 UTF-8 编码的 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34026716/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com