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

2024-03-13

我正在编写一些 C# VSTO 代码,用于读取 Microsoft Word 文档并将其保存到筛选的 HTML。当我对通用 Word 文档执行此函数时,html 文件的输出使用 Windows 字符集,如下所示:

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

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

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

我想编写可以保存的 C# 代码anyWord 文档使用 utf-8 过滤 html。经过一些研究,我发现有些人说“SaveAs2”功能不起作用(尽管微软将其记录为一项功能)。这意味着,这段代码对我不起作用:

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

(注意:我尝试将 65001 加引号和不加引号。都没有抛出错误,但都不起作用)。

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

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);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 Word 保存为 UTF-8 编码的 HTML 的相关文章

随机推荐

  • 如何从 iOS 应用程序上的自定义键盘检索击键?

    我需要为我的 iPhone 应用程序构建一个自定义键盘 之前的问题和答案 https stackoverflow com questions 4643167 iphone objc how to create a custom keyboa
  • mvn:找不到命令

    我正在尝试使用 jenkinsfile 在我无权管理路径的特定对象上运行管道 但我遇到了这个错误 有人知道如何解决这个问题吗 您需要在执行作业的构建代理上安装 Maven Jenkins 的另一种选择是它可以为您安装 Maven 这可以在全
  • C# 中未知长度的数组

    我刚刚开始学习 C 在数组简介中 他们展示了如何将变量建立为数组 但似乎必须在赋值时指定数组的长度 那么如果我不知道数组的长度怎么办 大批 数组必须指定长度 要允许任意数量的元素 请使用List http msdn microsoft co
  • 如何使用 gspread 缓存 Google Sheets 的授权?

    我正在尝试创建一个简单的函数 将一些数据发布到 Google Sheets 电子表格中 我在 AWS Lambda 中托管此函数 无论如何 代码看起来有点像这样 import gspread from oauth2client servic
  • 添加到数据库后保持在同一页面而不刷新

    我有 PHP 网页 需要在其中插入一些信息到我的数据库中 插入完成后 它会刷新同一页面 但我被告知这个过程不切实际 因为你正在加载所有HTML CSS and JS每次都会显示您的页面 我应该你AJAX要做到这一点 我搜索它 并尝试了这段代
  • find_in_set 与 laravel 中的 join

    如何使用 Laravel 查询获取所需的输出 尝试过这种方式没有成功请指导提前非常感谢 如果可能的话 我们有什么方法可以在模型中设置它 请指导 User id name b id 1 Alax 1 3 2 Rex 2 4 3 Lex 2 3
  • jQuery droppable out 事件无法触发?

    LWdrop droppable accept LW drop function event ui ui draggable addClass LWactive this droppable option accept this css b
  • 如何避免重复出现消息“更新被拒绝,因为远程包含您所做的工作...”?

    我正在与另外三个合作者一起参与一个项目 我的情况是 每次我尝试添加新提交并且远程中存在一些更改 即使它是我未在本地工作过的文件 时 我都会收到以下消息 迫使我使用以下默认消息创建合并 error failed to push some re
  • 从表单生成表格

    我有一个表单组 public transactionOrRefundRequestForm FormGroup new FormGroup SaleRequest new FormGroup Header new FormGroup Typ
  • Perl 中有 zip 和 Fold 等函数吗?

    我想使用一些功能 例如 zip http zvon org other haskell Outputprelude zip f html fold http www haskell org haskellwiki Fold and map
  • Java:使用 double 不准确[重复]

    这个问题在这里已经有答案了 可能的重复 在java中使用双精度数保持精度 https stackoverflow com questions 322749 retain precision with doubles in java Java
  • 混淆 ASP.Net dll 破坏 Web 应用程序

    我通常不会费心去混淆 Web 应用程序 DLL 但现在我必须与可能有利益冲突的人共享一些服务器空间 并且可能会试图窃取交易并反编译它 我知道这不是一个理想的解决方案 但是嘿 因此 我使用 VS 2005 一个 Web 部署项目 编译为单个
  • Getpass输入Python 3

    我正在尝试创建密码输入 我知道getpass getpass但是当我将其置于闲置状态时 它会出现错误 提示 密码可能会被回显 My code import getpass p getpass getpass print You entere
  • gremlin 语法计算 Jaccard 相似度度量

    我有兴趣计算图中未直接连接的所有顶点对的杰卡德相似度度量 Jaccard度量定义为两个顶点的邻居交集的范数除以相同集合的并集的范数 where 到目前为止 我已经能够获得所有未直接连接的节点对 仅对这种情况下的链接预测感兴趣 如果直接链接已
  • 其可能的 Google 表单脚本每天上午 00:01 至中午 12:00 自动打开和关闭

    我想每天 00 01 打开 google 表单并在 12 00 关闭 这是我的代码 function createDailyTrigger ScriptApp newTrigger openCloseFormTrigger timeBase
  • 由于 Integer.parseInt 导致崩溃

    我正在尝试从另一个文本文件中生成的文本导入文本Activity 生成的文本文件由String ArrayList其中仅包含数字和 Android 生成的其他随机文本 当我从文件导入文本时 我使用的是BufferedReader and re
  • 如何在Python中检查神经网络的层数以及何时应该增加层数?

    请对您的想法添加最少的评论 以便我可以改进我的查询 谢谢 我正在研究MNIST数据集并写一些CNN代码 然而 我对其中的一些观点感到困惑CNN代码 如何知道神经网络的层数 根据我目前的理解 我认为它有 6 层和 4 个隐藏层 是对的吗 如果
  • OpenGL 3:​​glBindVertexArray 使 GL_ELEMENT_ARRAY_BUFFER 无效

    我确信如果你通过绑定缓冲区glBindBuffer 您可以放心地假设它保持绑定状态 直到目标通过另一个调用反弹glBindBuffer 因此 当我发现调用时 我感到非常惊讶glBindVertexArray 将绑定到 GL ELEMENT
  • 在 Node 中渲染 HTML 字符串?

    好吧 我已经下载了 Express 设置端口process env PORT 8080 并设置应用程序变量var app express 现在 我想要完成的是不是通过文件渲染 HTML 我可以通过字符串来完成吗 var html n n n
  • 将 Word 保存为 UTF-8 编码的 HTML

    我正在编写一些 C VSTO 代码 用于读取 Microsoft Word 文档并将其保存到筛选的 HTML 当我对通用 Word 文档执行此函数时 html 文件的输出使用 Windows 字符集 如下所示 如果我打开一个文档并转到 文件