【问题标题】:Source text contains simple HTML. How can I simply format the text in MS Word?源文本包含简单的 HTML。如何在 MS Word 中简单地格式化文本?
【发布时间】:2010-10-23 03:39:45
【问题描述】:

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

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

我相信解决此问题的方法是格式化来自数据库的文本,以便定位逻辑正确。我不想多次调用这个复杂的过程,因为它很耗时,而且我们的最终用户需要尽快获得这份文档。

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

【问题讨论】:

    标签: html performance formatting automation ms-word


    【解决方案1】:

    试试这个:

    首先,将要插入的 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”文件。

    【讨论】:

    • 明智的概念证明,这是有效的。只要我将 blah 括号括起来,它就会以我想要的格式导入 HMTL。我打算沿着这条路走下去。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-17
      • 1970-01-01
      • 1970-01-01
      • 2018-01-20
      • 2011-12-18
      • 2020-06-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多