Я создаю потоковый документ, состоящий из нескольких записей. Каждая запись содержит две таблицы вверху, а затем некоторый форматированный текст, который я извлекаю из базы данных. Код, который добавляет расширенный текст, находится ниже (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 отображает первую из записей правильно, но все последующие записи отображаются с разрывом между первой и второй таблицами . Что самое странное, я m отрисовывает 2 таблицы до импорта RTF, но 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))
Кто-нибудь когда-нибудь видел это?