使用gembox创建word文件

时间:2017-09-21 13:28:34

标签: vb.net ms-word gembox-document

我想用GemBox.Document创建一个Word文件,但我得到一个InvalidOperationException

Dim text As String = "Foo" + vbTab + "Bar"
Dim document As New DocumentModel()

document.Sections.Add(
    New Section(document,
        New Paragraph(document, text)))
  

System.InvalidOperationException:'文本不能包含新行('\ n'),回车符('\ r')或制表符('\ t')字符。如果要中断文本或插入选项卡,请将具有特定SpecialCharacterType的SpecialCharacter实例插入父级的InlineCollection。'

我该怎么做“打破文字或插入标签”

1 个答案:

答案 0 :(得分:1)

<强>更新

在当前最新的GemBox.Document错误修复版本中,情况不再如此 从现在开始Paragraph的构造函数为您处理特殊字符。

但是,请注意,Run&#39的构造函数和Run的Text属性没有任何变化,但它们仍然不接受特殊字符。

首先请注意使用此Paragraph的构造函数:

New Paragraph(document, text)

与使用以下内容相同:

Dim paragraph As New Paragraph(document)
Dim run As New Run(document, text)
paragraph.Inlines.Add(run)

问题是Run元素不能包含任何特殊字符(请参阅Run.Text property remarks)。
这些字符用自己的元素表示,因此您需要以下内容:

document.Sections.Add(
    New Section(document,
        New Paragraph(document,
            New Run(document, "Foo"),
            New SpecialCharacter(document, SpecialCharacterType.Tab),
            New Run(document, "Bar"))))

或者替代,您可以利用LoadText方法为您处理这些特殊字符,如下所示:

Dim text As String = "Foo" + vbTab + "Bar" + vbNewLine + "Sample"
Dim document As New DocumentModel()

Dim section As New Section(document)
document.Sections.Add(section)

Dim paragraph As New Paragraph(document)
paragraph.Content.LoadText(text)
section.Blocks.Add(paragraph)

我希望这会有所帮助。