vb.net 文档生成,处理大于和小于 Word 中的符号

vb.net Document Generation, Handling Greater Than & Less Than Symbols in Word

我们正在使用 TinyMCE 编辑器将富文本存储在 MS SQL 数据库中。

当使用“<”和“>”符号时,TinyMCE 将它们转换为 HTML 转义字符 < ; >例如:<p>&lt;This is some test information then sometime I use this&gt;</p>

我们正在尝试使用文档自动化将这些符号导出到 Microsoft Word 文档中,但是这些符号不会出现在文档中。

    Function PreFormatHTML(ByVal html As String) As String

        If String.IsNullOrEmpty(html) Then Return html

        html = WebUtility.HtmlDecode(html)

        Return html

    End Function

Dim SumRng As Word.Range = objWordDoc.Bookmarks.Item("bSummary").Range

SumRng.Text = PreFormatHTML(GeneralComponent.CheckReadNull(SqlReader.Item("Summary")))

这也不行。我正在使用 Word 2013 和 TinyMCE 文本编辑器。

有什么建议吗?

没有看到完整的 html 我只能做一个假设但是我建议使用 WebUtility.HtmlDecode:

Converts a string that has been HTML-encoded for HTTP transmission into a decoded string.

您将如何使用它:

html = WebUtility.HtmlDecode(html)

使用 Word 这是我测试的方式:

Dim s As String = "&lt;this is some text and I'm wondering what to do&gt;"

Dim wrd As New Word.Application
Dim doc As Word.Document = wrd.Documents.Add()
Dim para As Word.Paragraph = doc.Content.Paragraphs.Add()

para.Range.Text = WebUtility.HtmlDecode(s)

我的 Document:

中的文字是这样的

根据 OP 的评论编辑:

Dim s As String = "<p>&lt;This is some test information then sometime I use this&gt;</p>"

Dim wrd As New Word.Application
Dim doc As Word.Document = wrd.Documents.Add()
Dim para As Word.Paragraph = doc.Content.Paragraphs.Add()

para.Range.Text = WebUtility.HtmlDecode(s)

此代码在我的 Document 中产生以下输出:

根据 OP 对问题的更新进行编辑:

我创建了一个名为 test.docx 的文档并添加了一个名为 bSummary 的书签。我这样做是为了复制 OP 的代码。

Dim s As String = "<p>&lt;This is some test information then sometime I use this&gt;</p>"

Dim wrd As New Word.Application
Dim doc As Word.Document = wrd.Documents.Open("C:\test.docx")

Dim SumRng As Word.Range = doc.Bookmarks.Item("bSummary").Range
SumRng.Text = PreFormatHTML(s)

输出同上。这使我认为传递给 PreFormatHTML 的任何内容都不是您认为的那样。是 GeneralComponent.CheckReadNull(SqlReader.Item("Summary"))) 传入 PreFormatHTML 下面的字符串; <p>&lt;This is some test information then sometime I use this&gt;</p>?

OP 已确认 HTML 按预期从 PrrFormatHTML 返回。这些问题似乎与 Document 有关。这可能与 OP 正在使用的 Word Interop 版本有关。我正在使用 Microsoft Word 16.0 Object Library 而 OP 正在使用 Microsoft Word 15.0 Object Library.