我正在尝试将一些数据存储在数据库中,并使用Open XML SDK使用它填充Word模板的内容控件。数据包含段落,因此其中包含回车符和换行符。数据以nvarchar
存储在数据库中。
当我打开生成的文档时,CR
+ LF
组合会显示为问号,并在其周围显示一个框(不确定此字符的名称)。这实际上是背靠背的两个序列,因此CR
+ LF
CR
+ LF
等于两个奇怪的字符:
如果我解压缩.docx
,请执行自定义XML部分并执行十六进制转储,我可以清楚地看到0d0a 0d0a
,因此CR
+ LF
就在那里。 Word只是打印它很奇怪。
我已尝试在XmlWriter
的设置中强制执行UTF-8编码,但这似乎没有帮助:
Dim docStream As New MemoryStream
Dim settings As XmlWriterSettings = New XmlWriterSettings()
settings.Encoding = New UTF8Encoding(False)
Dim docWriter As XmlWriter = XmlTextWriter.Create(docStream, settings)
有没有人知道如何在通过Open XML SDK写入.docx
时让Word正确呈现这些字符?
答案 0 :(得分:0)
要绑定到Word 2013富文本控件,您的XML元素必须包含完整的docx。见[MS-DOCX]:
存储在XML元素中的数据将是一个转义字符串,由一个展平的WordprocessingML文档组成,该文档表示结构化文档标记范围内的格式化数据。
早期版本无法绑定富文本控件。
如果你绑定到纯文本控件,多行设置为true,那么事情应该有效(使用CR / LF,而不是w:br)。