Здравствуйте.
При сохранении отчёта с большим количеством текста (текст размещён, например, в нескольких TextBox-ах на одном DataBand) в Word происходит наложение текста - одной строки на другую. Приходится разделять в этом месте текст и помещать в разные TextBox - ы, и более того - разделять на разные DataBand-ы.
Вообще проблема экспорта отчётов в разные форматы - комплексная, т.к. в разных форматах есть свои ограничения и нюансы, из-за которых невозможно точно передать вид отчёта в превью.
В данном случае можно выделить две основные проблемы.
1. В вашем тестовом отчёте все текстбоксы лежат на одном датабэнде. У всех включено свойство "Grow to Height".
При этом возникает проблема при разделении текста по страницам - из-за того, что строка текста, попадающая на разрыв страницы, переносится на следующую страницу, размер последней части текста должен увеличиваться на размер этих перенесённых строк.
Но при включенном свойстве "Grow to Height" высота и так считается до низа отчёта, поэтому следующий текстбокс не сдвигается вниз, и верхний текст "залазит" под него.
Т.е. для решения этой проблемы надо у текстбоксов выключить свойство "Grow to Height".
Повторимся, эта проблема со свойством "Grow to Height" возникает, если на одном бэнде лежат один над одним несколько длинных текстов.
2. Отрисовка текста в MS-Word осуществляется собственными методами, которые не совпадают ни с Winforms (GDI+ (Standard, Typographic), GDI (WYSIWYG)), ни с Wpf, ни с Flex.
Поэтому текст в MS-Word выглядит иначе, чем в превью нашего продукта.
Обычно строка получается на несколько пикселей шире и поэтому последнее слово часто переносится на следующую строку.
Общая высота текста увеличивается, и последняя строка текста не помещается в ячейке таблицы и "обрезается".
Чтобы избежать этого, мы специально устанавливаем уплотнённый интервал шрифта.
Значение интервала задаётся свойством StiOptions.Export.Word.SpaceBetweenCharacters = -2;
Если этого не хватает, можно увеличить значение, например -4, -6 и т.п. Но буквы будут расположены более плотно и могут плохо читаться.
Также в некоторых случаях помогает такой workaround: надо у текстового компонента увеличить правый отступ, например установить Margins=0;10;0;0.
Переносы текста в превью получаются в других местах, и с некоторой вероятностью уже совпадают с переносами в MS-Word.
Встречается и ещё одна проблема в самом MS-Office.
Уже много лет, начиная с Office97 или ранее, была известна такая ситуация: текст выглядит немного по-разному в зависимости от выбранного принтера (обычно принтера по умолчанию).
Иногда отличается межстрочное расстояние, иногда символы отображаются чуть шире и предложения переносятся в других местах, соответственно в некоторых случаях текст может получиться на одну-две строки длиннее.
К версии Office2016 наконец что-то подкрутили в движке, и такая проблема почти перестала проявляться.
По крайней мере на доступных нам принтерах (реальных и виртуальных) мы больше не можем это воспроизвести.
Однако иногда пользователи сообщают нам о такой проблеме.
К сожалению, с этим мы ничего поделать не можем.
Например, ваша первая описанная проблема "Текст спрятался за сноску в конце 1ой страницы" у нас не воспроизводится, ваш присланный "BigText.docx" на первой странице у нас отображается корректно, последняя строка не прячется.
Спасибо.