Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.07.2010, 03:01   #1
betirsolt
Форумчанин
 
Регистрация: 20.07.2009
Сообщений: 421
По умолчанию

всем привет,я вот в своей проге хотел добавить возможность отправки на печать и по книге Библия дельфи написал следующую процедуру

Код:
procedure Tmesform.ToolButton1Click(Sender: TObject);
 var
 X1,X2,Y1,Y2:Integer;
 PointsX,PointsY:double;
 PrintDlg:TPrintDialog;
begin
  // Создаю и отображаю на экране стандартное окно печати
 PrintDlg:=TPrintDialog.Create(Owner);
 if PrintDlg.Execute then
  begin
  //Начинаю новый документ
   toolbar1.Visible:=false;
   label3.Visible:=true;
   label3.Top:=label1.Height+20;
   label3.Left:=125;
   Printer.BeginDoc;
   Printer.Canvas.Refresh;
   Printer.Title:='GovzPeople.ru';
//Получаю информацию о разрешении принтера
   PointsX:=GetDeviceCaps(Printer.Canvas.Handle,LOGPIXELSX)/70;
   PointsY:=GetDeviceCaps(Printer.Canvas.Handle,LOGPIXELSY)/70;
//Расчитываю размеры изображения
   X1:=round((Printer.PageWidth - mesform.Panel1.Width*PointsX)/2);
   Y1:=round((Printer.PageHeight - mesform.Panel1.Height*PointsY)/2);
   X2:=round(X1+mesform.Panel1.Width*PointsX);
   Y2:=round(Y1+mesform.Panel1.Height*PointsY);
  //Вывод изображения на печать
   Printer.Canvas.CopyRect(Rect(X1,Y1,X2,Y2),mesform.Canvas,Rect(0,0,mesform.Panel1.Width,mesform.Panel1.Height));
   Printer.EndDoc;
  end;
 //Уничтожаю созданное окно печати
 toolbar1.Visible:=true;
 label3.Visible:=false;
 PrintDlg.Free;
end;
но при этом принтер выдает почему то пустой лист...а если вместо принтера выбрать MS XPS document writer то все нормально сохраняется в файл....но мне то нужно чтоб сразу на принтер выдавал,в чем тут проблема?подскажите кто знает пожалуйста

что никто не скажет?
Уважаемые модераторы, Я всячески стараюсь не нарушать правила сайта, будьте снисходительны

Последний раз редактировалось artemavd; 05.07.2010 в 19:02.
betirsolt вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не обновляестя содержимое формы luckydevil Общие вопросы Delphi 12 13.01.2010 18:11
Как вывести содержимое StringGrid на принтер именно в виде таблицы program123 Компоненты Delphi 4 14.02.2009 16:24
отправить содержимое Memo1 на Memo2, по нажатии enter Патрон Общие вопросы Delphi 2 08.03.2008 07:18
Вывод на принтер содержимого формы Ermiss Общие вопросы Delphi 2 20.12.2007 15:40