Страница 1 из 2
Масштабирование при печати
Добавлено: 20 мар 2012, 12:15
Ruslan
Добрый день!
При создании отчетов с большим объемом данных приходится изменять стандартный размер листа отчета. Но после этого при печати отчета он не влазит на стандартный лист А4. Есть ли какая-то возможность масштабирования отчета перед печатью?
Масштабирование при печати
Добавлено: 21 мар 2012, 07:06
Ivan
Здравствуйте.
На панели вьювера есть кнопка "Page Size", которая вызывает меню масштабирования отчета.
Эти же действия можно произвести из кода вашего приложения, например:
Код: Выделить всё
StiReport stiReport = new StiReport();
stiReport.Load(@"d:\SimpleList.mrt");
stiReport.Render();
PaperSize newSize = new PaperSize("A5", 583, 827);
newSize.RawKind = (int)PaperKind.A5;
StiResizeReportHelper.ResizeReport(stiReport,
StiPageOrientation.Portrait,
newSize.Kind,
stiReport.Pages[0].Margins,
stiReport.Unit.ConvertFromHInches(newSize.Width),
stiReport.Unit.ConvertFromHInches(newSize.Height),
StiResizeReportOptions.RescaleContent | StiResizeReportOptions.ProcessAllPages,
0);
stiReport.Print();
Спасибо.
Масштабирование при печати
Добавлено: 03 апр 2012, 08:42
Ruslan
Здравствуйте!
А возможно ли как-то масштабировать отчет непосредственно перед печатью? Чтобы в репорт-вьюере он отображался нормально, а перед печатью масштабировался.
Масштабирование при печати
Добавлено: 04 апр 2012, 13:21
Aleksey
Здравствуйте,
Как вариант, использовать следующий код в событии Printing отчета:
Код: Выделить всё
System.Drawing.Printing.PaperSize newSize = new System.Drawing.Printing.PaperSize("A5", 583, 827);
newSize.RawKind = (int)System.Drawing.Printing.PaperKind.A5;
StiResizeReportHelper.ResizeReport(this,
StiPageOrientation.Portrait,
newSize.Kind,
this.Pages[0].Margins,
this.Unit.ConvertFromHInches(newSize.Width),
this.Unit.ConvertFromHInches(newSize.Height),
StiResizeReportOptions.RescaleContent | StiResizeReportOptions.ProcessAllPages,
0);
Спасибо.
Масштабирование при печати
Добавлено: 16 апр 2012, 09:42
Ruslan
Добрый день,
Событие Printing почему-то не срабатывает при печати отчета.
Масштабирование при печати
Добавлено: 16 апр 2012, 15:13
Ivan
Здравствуйте.
Проверили еще раз на Net и Wpf версиях, у нас всё работает.
Пришлите пожалуйста пример проекта, на котором воспроизводится проблема, для анализа.
Спасибо.
Масштабирование при печати
Добавлено: 17 апр 2012, 08:31
Ruslan
Добрый день,
вот пример приложения
Масштабирование при печати
Добавлено: 18 апр 2012, 09:32
Ivan
Здравствуйте.
Проблема в том, что вы подписываетесь на событие базового отчета, а печать вызывается у скомпилированного отчета.
Если добавлять код в событие в дизайнере, на закладке Events, то он скомпилируется вместе с отчетом.
Если надо добавить событие из вашего кода, то нужно изменить ваш код:
Код: Выделить всё
report.Compile();
report.CompiledReport.Printing += (sender, args) => .....
Спасибо.
Масштабирование при печати
Добавлено: 18 апр 2012, 10:59
Ruslan
Получается, что при этом меняется размер самого отчета? Т.е. после печати во вьюере размер отчета тоже изменится?
Масштабирование при печати
Добавлено: 20 апр 2012, 12:17
Aleksey
Здравствуйте,
Как вариант, в событии Printed вернуть исходный размер.
Спасибо