Масштабирование при печати
Масштабирование при печати
Добрый день!
При создании отчетов с большим объемом данных приходится изменять стандартный размер листа отчета. Но после этого при печати отчета он не влазит на стандартный лист А4. Есть ли какая-то возможность масштабирования отчета перед печатью?
При создании отчетов с большим объемом данных приходится изменять стандартный размер листа отчета. Но после этого при печати отчета он не влазит на стандартный лист А4. Есть ли какая-то возможность масштабирования отчета перед печатью?
Масштабирование при печати
Здравствуйте.
На панели вьювера есть кнопка "Page Size", которая вызывает меню масштабирования отчета.
Эти же действия можно произвести из кода вашего приложения, например:
Спасибо.
На панели вьювера есть кнопка "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();
Масштабирование при печати
Здравствуйте!
А возможно ли как-то масштабировать отчет непосредственно перед печатью? Чтобы в репорт-вьюере он отображался нормально, а перед печатью масштабировался.
А возможно ли как-то масштабировать отчет непосредственно перед печатью? Чтобы в репорт-вьюере он отображался нормально, а перед печатью масштабировался.
Масштабирование при печати
Здравствуйте,
Как вариант, использовать следующий код в событии Printing отчета:
Спасибо.
Как вариант, использовать следующий код в событии 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);
Масштабирование при печати
Добрый день,
Событие Printing почему-то не срабатывает при печати отчета.
Событие Printing почему-то не срабатывает при печати отчета.
Масштабирование при печати
Здравствуйте.
Проверили еще раз на Net и Wpf версиях, у нас всё работает.
Пришлите пожалуйста пример проекта, на котором воспроизводится проблема, для анализа.
Спасибо.
Проверили еще раз на Net и Wpf версиях, у нас всё работает.
Пришлите пожалуйста пример проекта, на котором воспроизводится проблема, для анализа.
Спасибо.
Масштабирование при печати
Добрый день,
вот пример приложения
вот пример приложения
- Вложения
-
- WpfApplication1.7z
- (2.2 МБ) 274 скачивания
Масштабирование при печати
Здравствуйте.
Проблема в том, что вы подписываетесь на событие базового отчета, а печать вызывается у скомпилированного отчета.
Если добавлять код в событие в дизайнере, на закладке Events, то он скомпилируется вместе с отчетом.
Если надо добавить событие из вашего кода, то нужно изменить ваш код:
Спасибо.
Проблема в том, что вы подписываетесь на событие базового отчета, а печать вызывается у скомпилированного отчета.
Если добавлять код в событие в дизайнере, на закладке Events, то он скомпилируется вместе с отчетом.
Если надо добавить событие из вашего кода, то нужно изменить ваш код:
Код: Выделить всё
report.Compile();
report.CompiledReport.Printing += (sender, args) => .....
Масштабирование при печати
Получается, что при этом меняется размер самого отчета? Т.е. после печати во вьюере размер отчета тоже изменится?
Масштабирование при печати
Здравствуйте,
Как вариант, в событии Printed вернуть исходный размер.
Спасибо
Как вариант, в событии Printed вернуть исходный размер.
Спасибо