我正在创建一个包含多个记录的流文档。每条记录在顶部包含两个表,然后是我从数据库中提取的一些富文本。附加富文本的代码如下(cp.Comments 包含 rtf 标记文本)。
Dim tr As TextRange
Dim arr() As Byte
Using ms As New System.IO.MemoryStream
arr = (New System.Text.UTF8Encoding).GetBytes(cp.Comments)
ms.Write(arr, 0, arr.Length)
ms.Seek(0, IO.SeekOrigin.Begin)
tr = New TextRange(fd.ContentEnd, fd.ContentEnd) 'add to end
tr.Load(ms, DataFormats.Rtf)
End Using
flowdocument 正确呈现了第一个记录,但所有后续记录都在第一个表和第二个表之间呈现中断。最奇怪的是,我在导入 RTF之前渲染了 2 个表格,但 RTF 无论如何都会影响表格之间的间距。
fd = new FlowDocument
for each cp in SomeCollection
fdtemp = New FlowDocument
CreateFirstTable(cp, fdtemp)
CreateSecondTable(cp, fdtemp)
AddRTF(cp, fdtemp)
FlowDocumentUtils.AddDocument(fdtemp, fd)
next
问题与集合的第一个元素中的数据无关 - 如果我告诉渲染跳过第一条记录的渲染,那么第二条记录渲染正常,但其余记录包含额外的间距。
注意:这个问题肯定与富文本插入有关——如果我注释掉 AddRTF 调用,那么所有的表格都会被正确地渲染在一起。(表格边距都设置为(0,0,0,0))
有没有人见过这个?