通过 OLE 从 Ruby 或 VBS 调用时,Word Document.SaveAs 会忽略编码

2023-12-04

我有一个脚本(VBS 或 Ruby),可以将 Word 文档保存为“过滤后的 HTML”,但编码参数被忽略。 HTML 文件始终以 Windows-1252 进行编码。我在 Windows 7 SP1 上使用 Word 2007 SP3。

红宝石示例:

require 'win32ole'
word = WIN32OLE.new('Word.Application')
word.visible = false
word_document = word.documents.open('C:\whatever.doc')
word_document.saveas({'FileName' => 'C:\whatever.html', 'FileFormat' => 10, 'Encoding' => 65001})
word_document.close()
word.quit

VBS示例:

Option Explicit
Dim MyWord
Dim MyDoc
Set MyWord = CreateObject("Word.Application")
MyWord.Visible = False
Set MyDoc = MyWord.Documents.Open("C:\whatever.doc")
MyDoc.SaveAs "C:\whatever2.html", 10, , , , , , , , , , 65001
MyDoc.Close
MyWord.Quit
Set MyDoc = Nothing
Set MyWord = Nothing

文档:

文档.另存为:http://msdn.microsoft.com/en-us/library/bb221597.aspx

msoEncoding 值:http://msdn.microsoft.com/en-us/library/office/aa432511(v=office.12).aspx

有什么建议,如何让Word以UTF-8保存HTML文件?


嗨,Bo Frederiksen 和 kardeiz,

我今天在我的“Word 2003 (11.8411.8202) SP3”版本中也遇到了“Word Document.SaveAs 忽略编码”的问题。

幸运的是,我设法使 msoEncodingUTF8(即 65001)在 VBA 代码中工作。但是,我必须先更改Word文档的设置。步骤是:

1) 从Word 的“工具”菜单中选择“选项”。

2)然后单击“常规”。

3) 按“网络选项”按钮。

4) 在弹出的“Web 选项”对话框中,单击“编码”。

5)您可以找到一个组合框,现在您可以更改编码,例如从“GB2312”更改为“Unicode(UTF-8)”。

6) 保存更改并尝试重新运行 VBA 代码。

希望我的回答能够帮助到您。下面是我的代码。

Public Sub convert2html()
    With ActiveDocument.WebOptions
        .Encoding = msoEncodingUTF8
    End With

    ActiveDocument.SaveAs FileName:=ActiveDocument.Path & "\" & "file_name.html", FileFormat:=wdFormatFilteredHTML, Encoding:=msoEncodingUTF8

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

通过 OLE 从 Ruby 或 VBS 调用时,Word Document.SaveAs 会忽略编码 的相关文章

随机推荐

  • 如何连接两行上指定的标识符?

    Input其中标识符由两行 1 2 指定 L1 I L1 I C 14 lt unique idenfier WWPTH WWPT WWPTH lt on two rows 1 2 3 Goal 如何连接行 L1 IWWPTH L1 IWW
  • 这个C#/sql查询代码需要花费很多时间来更新表

    任何人都可以帮助提高性能吗 更新表需要花费很多时间 我正在将序列号从 datagridview 更新到名为 dbo json 的表 UPDATE dbo json with numbers private void BtnUpdateSql
  • 如何创建具有特定范围内的值的 numpy 数组?

    如何创建一个具有特定范围内的值的 numpy 数组 例如只有 2 到 10 个 我知道np arrange 10 将创建一个包含 0 到 9 之间 10 个值的数组 但不确定如何指示我希望它具有特定范围内的值 任何想法 提前致谢 正如其他人
  • 我应该使用“import os.path”还是“import os”?

    根据官方文档 os path是一个模块 那么 导入它的首选方式是什么 Should I always import it explicitly import os path Or Is importing os enough import
  • Laravel 3 中用户定义的 MySQL 变量?

    我想使用用户定义的变量更新一组具有序号的 MySQL 记录的 排名 以下查询通过 MySQL 命令行运行良好 SET rank 0 UPDATE scores SET rank rank rank 1 WHERE game id 4 ORD
  • 如何在表单提交后重置表单并启用提交按钮(react-formio)?

    我正在使用反应 formio包动态生成表单 我使用此链接生成了一个简单的登录表单 https codesandbox io s cra react formio iy8lz 构建后 它会创建一个 JSON 然后 我使用该 JSON 生成一个
  • sp_send_dbmail 附件编码

    我在 SQL2005 中使用 sp send dbmail 发送一封电子邮件 并将结果放在附件中 发送附件时 它是 UCS 2 编码的 我希望它是 ANSI 或 UTF 8 这是 SQL EXEC msdb dbo sp send dbma
  • LightSwitch v1 显示红色 X 并且无法加载数据

    我使用在 Visual Studio 2010 Professional 上运行的 Visual Studio LightSwitch 2011 v1 制作了一个应用程序 它是一个桌面应用程序 我使用 SQL Server 身份验证来连接到
  • 如何在文本和单选按钮之间添加空格?

    我想要文本和单选按钮之间有一个空格 为了实现这一点 我尝试了 css 类 answerBottomYesNo 通过添加 margin left 7px 由于某种原因它不起作用 下面是代码片段 div class questionRow od
  • 如何找到动态数组的大小[重复]

    这个问题在这里已经有答案了 有什么方法可以找到分配了多少字节RandomArray在这段代码中 include
  • JSoup HTTP 获取 URL 时出错。状态=405

    我想连接到https www notebooksbilliger de 但使用以下代码则不起作用 try Response response Jsoup connect url userAgent Mozilla ignoreContent
  • PHP 7.2 中未定义的函数 odbc_connect()

    我收到错误 致命错误 未捕获错误 调用未定义的函数 odbc connect Ive added the extension in php ini and phpinfo is confirming that the odbc driver
  • 取消排序:记住排列并撤消它

    假设我有一个函数 f 它接受向量 v 并返回一个新向量 其中元素以某种方式转换 它通过调用假设向量已排序的函数 g 来实现这一点 所以我希望 f 的定义如下 f v Module s r s Sort v remember the perm
  • 覆盖主页中最近添加的列表

    我想知道是否可以覆盖最近添加的列表在主页中 默认行为是任何新提交的项目都会显示在列表中 无论其发布日期如何 有没有办法覆盖它 以便仅发布最新提交的出版物 例如两年内 或有条件的出版物 if dc date issued gt 2014 显示
  • 计算 PySpark 中列的中位数

    我有一个数据框 如下所示 parsed date count 2017 12 16 2 2017 12 16 2 2017 12 17 2 2017 12 17 2 2017 12 18 1 2017 12 19 4 2017 12 19
  • 如何在 Android 中录音电话

    我需要在我的 Android 应用程序中录制电话 我尝试过使用 MediaRecorder 将 AudioSource 设置为 MIC VOICE COMMUNICATION VOICE CALL 和其他选项 但他们都没有记录通话 任何人都
  • Python - 使用正则表达式查找多个匹配项并将其打印出来[重复]

    这个问题在这里已经有答案了 我需要从 HTML 源文件中查找表单内容 我做了一些搜索并找到了很好的方法来做到这一点 但问题是它只打印第一个找到的内容 我如何循环遍历它并输出所有表单内容 而不是只是第一个 line bla bla bla
  • Firestore - 监听特定字段的变化?

    如何使用 firestore js sdk 监听特定字段的变化 在文档中 他们似乎只展示了如何监听整个文档 如果任何 SF 字段发生变化 就会触发回调 db collection cities doc SF onSnapshot funct
  • 使用反向引用和哈希时的 Ruby gsub 问题

    以下代码定义带有正则表达式 键 和替换 值 的哈希 然后它迭代哈希并相应地替换字符串 简单的字符串替换效果很好 但是当我需要在替换之前计算结果时 几年到几天的情况发生变化 它就不行了 预先定义哈希值是关键 我缺少什么 任何帮助将不胜感激 a
  • 通过 OLE 从 Ruby 或 VBS 调用时,Word Document.SaveAs 会忽略编码

    我有一个脚本 VBS 或 Ruby 可以将 Word 文档保存为 过滤后的 HTML 但编码参数被忽略 HTML 文件始终以 Windows 1252 进行编码 我在 Windows 7 SP1 上使用 Word 2007 SP3 红宝石示