При печати изменяются поля текстового поля

Обсуждение Stimulsoft Reports.Wpf
Ivan
Сообщения: 609
Зарегистрирован: 10 авг 2006, 01:40

Re: При печати изменяются поля текстового поля

Сообщение Ivan » 02 окт 2017, 09:44

Здравствуйте.

Сначала немного информации.
В каждой технологии (WinForms, Wpf, Flex, JS) используются свои методы отрисовки текста.
Даже в WinForms есть три режима отображения текста (Standard, Typographic, Wysiwyg).
Обычно разница в ширине символов, т.е. одна и та же строка текста в разных технологиях рисуется разной длины.
В зависимости от шрифта и символов разница может быть от доли миллиметра до сантиметров.
И это может значительно влиять на построение отчета.
Так, в вашем случае строка "Sierras de Granada 9993" при отрисовке методами Wpf помещается в ячейку, а при отрисовке методами WinForms уже не помещается, и число "9993" переносится на вторую строку.
Соответственно при рендеринге отчёта средствами Wpf ячейка получается высотой в одну строку, а при рендеринге отчёта средствами WinForms ячейка получается высотой в две строки.
Далее, если отрендерить отчёт в Wpf и потом отобразить его в WinForms - мы получим ситуацию как в первом посте: ячейка имеет высоту в одну строку, но текст в ней отображается в две строки.
Если отрендерить отчёт в WinForms и потом отобразить его в Wpf - ячейка будет высотой две строки, но текст в ней отображается в одну строку.

Теперь о проблемах.
Проблема при экспорте в формат изображений - подтверждаем.
Экспорт в формат изображений был реализован только средствами WinForms.
Поэтому при экспорте из Wpf и возникала указанная выше проблема с переносом текста.
На данный момент проблема решена, сделана необходимая доработка для Wpf.
Патч будет включён в следующий билд.

Проблема при печати на реальный принтер - в дизайнере воспроизвести не можем.
Но такая проблема возможна, если вы отрендерили отчёт средствами Wpf, затем загрузили его в WinForms вьювер и печатали оттуда.
При печати отчёта из кода - например, так делать неправильно:

Код: Выделить всё

report.RenderWithWpf();
report.Print();
Правильные варианты:

Код: Выделить всё

report.Render();
report.Print();

Код: Выделить всё

report.RenderWithWpf();
report.PrintWithWpf();
Спасибо.
Quirco
Сообщения: 125
Зарегистрирован: 22 авг 2016, 08:12

Re: При печати изменяются поля текстового поля

Сообщение Quirco » 13 окт 2017, 06:27

Будем пробовать.
Спасибо за подробный ответ.
Andrew
Сообщения: 547
Зарегистрирован: 09 июн 2006, 08:22

Re: При печати изменяются поля текстового поля

Сообщение Andrew » 13 окт 2017, 16:57

Здравствуйте,

Дайте знать о результатах.

Спасибо.
Ответить