源文本包含简单的HTML。如何在MS Word中简单地格式化文本?

时间:2009-05-01 15:40:44

标签: html performance formatting automation ms-word

我继承了一个项目,用于在数据库中存储基本HTML格式(即 - < b >< i >标记)并将其写入一个Word文档。这是我的第一个Word自动化任务,所以要温柔!

目前,有一个复杂的功能在文档完成后运行,搜索并替换这些标记。但是,由于这是在文档完成后运行的,因此在运行时确定的任何逻辑(即 - 在此处插入分页符)都可能导致灾难性的结果。例如,如果我有一大块粗体文本,这个粗体文本会占用更多空间并将行分解为下一页,从而导致大部分空白页。

我认为对此的修复是将文本格式化为数据库,因此定位逻辑将是正确的。我不想多次调用复杂的程序,因为它很耗时,我们的最终用户需要尽快获得这份文件。

是否有一种简单的方法可以将HTML格式的文本写入Word文档而无需查找和替换每个支持的标记?我认为Word中会有一些可以自动处理的东西。如果你能指出我正确的方向,请提前致谢。

2 个答案:

答案 0 :(得分:2)

试试这个:

首先,将要插入的HTML保存为普通的“.htm”文件。

然后使用Range对象及其InsertFile method在任何给定位置插入“.htm”文件:

Dim r As Range

Set r = ActiveDocument.Range
r.InsertFile FileName:=TempFilePath, Link:=False, ConfirmConversions:=False

Word应该足够聪明,可以处理HTML并自行完成所有格式转换。使用CSS来控制格式的更精细部分。

完成后删除“.htm”文件。

答案 1 :(得分:0)

也许您可以调用嵌入式IE(IWebBrowser2)来布局文本,然后以richtext格式复制到剪贴板,最后粘贴到Word作为RichText(格式化)。