通过 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 会忽略编码 的相关文章

  • Heroku 推送错误:rake 资源上的“NameError:未初始化常量 Uglifier::VERSION”:预编译

    我在尝试推送到生产环境时收到以下错误 这是推送的结果 git push production master Counting objects 124 done Delta compression using up to 4 threads
  • Ruby on Rails:有条件地显示部分内容

    我不确定我在这里是否采用了最好的方法 但我有一个数据块 我想在搜索完成后显示它 并且之前根本不存在 首先 没有什么可显示的 其次它引用的模型为零 因此它抛出异常 我将此块放置在部分模板中 并将其添加到布局中的适当位置 有没有办法有条件地干净
  • 将变量从 vbscript 传递到批处理文件

    我正在使用 vbscript 调用批处理文件 我的脚本如下所示 dim shell set shell createobject wscript shell shell run a bat set shell nothing 我的批处理文件
  • 用 ruby​​ 中的数组内容替换字符串?

    String Test string Test array link1 link2 如何替换这样的字符串 输出应该是String link1 string link2 字符串 gsub 可以返回一个枚举器 所以这很简单 string gsu
  • MacOS 每秒唤醒次数错误

    构建 Rails 应用程序 ruby 2 4 0p0 Rails 5 1 4 并使用我的 Macbook Air MacOS High Sierra 10 13 2 进行本地测试 我不断遇到此问题 过去 241 秒内有 45001 次唤醒
  • 输出到控制台,同时保留 ruby​​ 中的用户输入

    我有一个 ruby 脚本 它同时异步接收和显示来自服务器的消息 并允许用户在控制台上输入 当收到消息时 当前正在将其写入用户正在键入的内容的中间 输入本身并没有乱码 但看起来很糟糕 理想情况下 它将保存用户当前的输入 输出消息 然后在下一行
  • 测试 Ruby 字符串或符号的字符串相等(而不是对象相等)的最简洁方法?

    我总是这样做来测试 Ruby 中的字符串相等性 if mystring eql yourstring puts same else puts different end 这是在不测试对象相等性的情况下执行此操作的正确方法吗 我正在寻找最简洁
  • 在 debian Squeeze 上安装 RoR

    有什么方法可以在我的 debian squeeze 上安装 Ruby 1 9 2 或 1 8 7 Rails 3 吗 您可能不想在生产计算机上使用 RVM 它的 PATH 魔力会在不明显的地方 例如 cron 作业 被破坏 然后你就会陷入困
  • Ruby 代码到 JAR

    我希望能够将 ruby 程序编译为 java JAR 程序 我研究过 JRuby 看到了几个能够 eval ruby 代码的 Java 应用程序示例 但是是否有更优雅的解决方案允许简单地用 ruby 编写所有内容 然后将其直接编译为 JAR
  • 如何在 VBScript 中计算每月的最后一个工作日

    如何在 VBScript 中计算该月的最后一个工作日 它用于 Reporting Services 报告 Thanks 怎么样 intMonth 11 Use zero to return last day of previous mont
  • 如何从 Ruby 检查具有特定 pid 的进程是否正在运行?

    如果有多种方法 请列出 我只知道一个 但我想知道是否有一种更干净的 Ruby 方式 之间的区别Process getpgid and Process kill方法似乎是当 pid 存在但由另一个用户拥有时发生的情况 Process getp
  • 在 Rails 4 中渲染部分/rake 任务/后台作业/模型中的视图

    我读过很多关于在 rake 任务 后台作业 模型中渲染 Rails 部分和视图的内容 我在 Stackoverflow 和网络上找到的绝大多数内容都描述了在 Rails 3 中工作的方法 但它们似乎已经过时了 而且我没有让它们工作 即使花了
  • Ruby:在 Ubuntu 上安装 rmagick

    我正在尝试在 Ubuntu 10 04 上安装 RMagick 看起来here https stackoverflow com questions 1482823 is there an easy way to install rmagic
  • Rails:渲染不起作用,仍然出现“模板丢失”

    我目前正在学习 Rails 指南 我完成了这些步骤 但仍然遇到错误 我的 Ruby 版本是ruby 2 1 1p76Rails 版本是4 0 4 按照指南的指示 我创建了一个Article Controller class Articles
  • 如何使用 Ruby 2.7.0 修复 Rails 的警告消息

    有没有人解决这个问题Ruby 2 7 0 I used rbenv并安装了 Ruby v2 7 0 然后使用创建了一个 Rails 项目Rails v6 0 2 1 目前 通过运行之一 rails s rails s u puma rail
  • 在 ruby​​ 中读/写受密码保护和加密的文件

    我想加密一个 ruby 程序将从中加载数据的文件 此外 我需要程序在启动时提示输入密码 该密码将用于解密文件 换句话说 该文件需要加密地驻留在计算机上 只有拥有密码的用户才能运行该应用程序 我已经开始研究 openpgp 但据我了解 这仍然
  • Rails 3 - “无法解析 Yaml”

    我不知道我做错了什么 我尝试运行 rails c 但它只是给了我一个错误 10 分钟前它还在工作 C Ruby192 lib ruby 1 9 1 psych rb 148 in parse couldn t parse YAML at l
  • 什么是 - 获取的是一个目录 - 错误消息

    我收到这个奇怪的错误 Users gideon Documents ca ruby rubytactoe lib player rb 13 in gets Is a directory spec Errno EISDIR 玩家规格 rb r
  • 为什么 rand() 总是返回相同的数字?

    我在用 兰特 200 在我的 Rails 应用程序中 当我在控制台中运行它时 它总是返回随机数 但如果我在应用程序行中使用它 index rand 200 索引总是相同的号码 为什么会这样以及如何克服这个问题 简单的伪随机数生成器实际上生成
  • Ruby 的字符串并置功能的官方文档在哪里?

    我最近意识到 如果你并置一系列 Ruby 字符串文字 例如 a b c 它相当于这些字符串文字的串联 但是 我在任何地方都找不到这种语言功能的记录 我使用术语 并置 和 串联 进行搜索 但只在几个 StackOverflow 响应中找到了对

随机推荐

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

    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 红宝石示