Страница 1 из 2
Настройка принтера и страницы.
Добавлено: 26 июн 2008, 13:58
vlsaf
В своем проекте для каждого рабочего места я храню параметры принтера.
Достаю их вот так.
Код: Выделить всё
using System.Drawing.Printing;
...
PrinterSettings printerSettings = new PrinterSettings();
MyPrinters.GetPrinter(ref printerSettings);
После этого в стандартном Windows объекте printerSettings
содержится необходимая мне информация.
Теперь, перед тем, как просмотреть отчет report.Show();
мне хотелост бы передать просмотрщику параметры принтера.
(Объект printerSettings). Это можно как-то сделать?
--------------------------------------------------------------------------------------------------------
Примерно тоже самое хотелось бы сделать и со страницей
Параметры страницы у меня содержатся тоже в стандартном объекте
Код: Выделить всё
PageSettings pageSettings = new PageSettings();
MyPrinters.GetPage("Rechnungswesen", ref pageSettings);
--------------------------------------------------------------------------------------------------------
Вопрос. Как предпросмотрщику передать printerSettings и pageSettings?
Настройка принтера и страницы.
Добавлено: 26 июн 2008, 19:58
Vital
Здравствуйте,
Для настройки PageSettings можно использовать статическое событие
StiPrintProvider.QueryPageSettings. Для настройки PrinterSettings такого события нет (добавлено в билде от 27 июня).
Поэтому можно использовать следующее статическое событие StiOptions.Engine.GlobalEvents.InvokePrintingDocumentInViewer. Код события можно использовать следующий:
Код: Выделить всё
StiReport report = sender as StiReport;
report.Print(myPrinterSettings);
Спасибо.
Настройка принтера и страницы.
Добавлено: 27 июн 2008, 11:27
vlsaf
Добрый день.
Если Вас не затруднит, покажите пож-та пример кода, как установить параметры страницы и параметры принтера для объекта StiPreviewControl.
Настройка принтера и страницы.
Добавлено: 28 июн 2008, 11:15
vlsaf
Up.
Настройка принтера и страницы.
Добавлено: 01 июл 2008, 09:29
vlsaf
Up
Настройка принтера и страницы.
Добавлено: 02 июл 2008, 07:43
Vital
Здравствуйте,
vlsaf писал(а):Добрый день.
Если Вас не затруднит, покажите пож-та пример кода, как установить параметры страницы и параметры принтера для объекта StiPreviewControl.
Для настройки параметров страницы:
Код: Выделить всё
Stimulsoft.Report.Print.StiPrintProvider.QueryPageSettings += new Stimulsoft.Report.Print.StiQueryPageSettingsEventHandler(StiPrintProvider_QueryPageSettings);//Один раз до печати
void StiPrintProvider_QueryPageSettings(object sender, Stimulsoft.Report.Print.StiQueryPageSettingsEventArgs e)
{
e.PageSettings//Производим необходимые изменения
}
Для настройки параметров принтера, подключаем к событию ClickPrintButton у StiPreviewControl следуюий код:
Код: Выделить всё
private void stiViewerControl1_ClickPrintButton(object sender, EventArgs e)
{
StiReport report = sender as StiReport;
report.Print(myPrinterSettings);
}
Спасибо.
Настройка принтера и страницы.
Добавлено: 02 июл 2008, 11:00
vlsaf
-=
Настройка принтера=-
На этапе выполнения происходит ошибка
NullReferenceExeption на строке report.Print(printerSettings);
Код следующий
Код: Выделить всё
private void stiPreviewControl1_ClickPrintButton(object sender, EventArgs e)
{
StiReport report = sender as StiReport;
try
{
PrinterSettings printerSettings = new PrinterSettings();
MyPrinters.GetPrinter(ref printerSettings);
report.Print(printerSettings);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message.ToString());
}
}
В объекте printerSettings содержатся нужные мне данные.
Проверено через отладчик.
Там ошибок нет.
______________________________
-=
Настройка страницы=-
Настройка страницы не происходит. Как будто ее и небыло.
Код: Выделить всё
...
InitializeComponent();
// подписываюсь на событие для настройки параметров страницы
StiPrintProvider.QueryPageSettings += new StiQueryPageSettingsEventHandler(StiPrintProvider_QueryPageSettings);
}
void StiPrintProvider_QueryPageSettings(object sender, StiQueryPageSettingsEventArgs e)
{
PageSettings pageSettings = new PageSettings();
try
{
MyPrinters.GetPage("Rechnungswesen", ref pageSettings);
e.PageSettings = pageSettings;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message.ToString());
}
}
Точка останова на строке PageSettings pageSettings = new PageSettings() не срабатывает, как будто-бы я и не подписывался на событие StiQueryPageSettingsEventHandler.
Настройка принтера и страницы.
Добавлено: 02 июл 2008, 19:42
Edward
Здравствуйте.
Да, действительно закралась ошибка.
Измените, пожалуйста, код следующим образом:
Код: Выделить всё
private void stiViewerControl1_ClickPrintButton(object sender, EventArgs e)
{
StiReport report = ((StiPreviewControl)sender).Report;
report.Print(myPrinterSettings);
}
StiQueryPageSettingsEventHandler вызывается для каждой страницы после нажатия на кнопку печать, когда уже пошел вывод на принтер.
Спасибо.
Настройка принтера и страницы.
Добавлено: 03 июл 2008, 05:39
vlsaf
Здравствуйте.
С принтером помогли. Спасибо. Все заработало.
Но вот с настройкой страницы остаются проблемы.
Вся соль вопроса заключается в предпросмотре.
Иначе все не имеет смысла.
Неужели никак нельзя ввести парметры страницы до предпросмотра?
Настройка принтера и страницы.
Добавлено: 04 июл 2008, 07:34
Vital
Здравствуйте,
Тут есть вопрос ключевой. Вы хотите изменить параметры страниц до просмотра или до построения отчета?
Спасибо.