我想用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。'
我该怎么做“打破文字或插入标签”?
答案 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)
我希望这会有所帮助。