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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.07.2019, 08:41   #1
Женя32
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 621
Счастье Настроить размер печати на принтер

Здравствуйте!
Пытаюсь вывести с image на принтер, но, на лист влезает толь 1\4 того, что нужно распечатать.
Как это исправить?
Код:
  PBitmap:=TBitMap.Create;
  PBitmap:=Image1.Picture.Bitmap;
  with PRect do
  begin
    left:=0;
    top:=0;
    right:=Printer.PageWidth/image1.Width;
    Bottom:=Printer.PageHeight;
  end;
  with printer do
  begin
    BeginDoc;
    font.name:='Times New Roman';
    Canvas.StretchDraw(PRect,PBitmap);
    EndDoc;
  end;
  PBitmap.Free;
Женя32 вне форума Ответить с цитированием
Старый 05.07.2019, 10:07   #2
Женя32
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 621
Счастье

На предпросмотре выходит точно также,как и на принтере..., только на всю страницу
Код:
procedure TForm2.Browse;
var
  rect: TRect;
begin
  rect.Top:= 10;
  rect.Left:= 10;
  rect.Right:= 10 + Trunc(Form1.Image1.Picture.Graphic.Width*4) div 10;
  rect.Bottom:= 10 + Trunc(Form1.Image1.Picture.Graphic.Height*4) div 10;
  Image1.Canvas.Pen.Mode:= pmWhite;
  Image1.Canvas.Rectangle(0, 0, Image1.Width, Image1.Height);
  Image1.Canvas.Draw(rect.Left, rect.Top, Form1.Image1.Picture.Graphic);
end;

procedure TForm2.btnCloseClick(Sender: TObject);
begin
  Close;
end;

procedure TForm2.btnPrintClick(Sender: TObject);
var
  rect: TRect;
begin
  if PrintDialog1.Execute then
  begin
    Close;
    rect.Top:= 10;
    rect.Left:= 10;
    rect.Right:= 10 + Trunc(Form1.Image1.Picture.Graphic.Width);
    rect.Bottom:= 10 + Trunc(Form1.Image1.Picture.Graphic.Height);
    Printer.BeginDoc;
    Printer.Canvas.Draw(rect.Left, rect.Top, Form1.Image1.Picture.Graphic);
    Printer.EndDoc;
  end;
end;

procedure TForm2.FormActivate(Sender: TObject);
var
  x, y: Word;
begin
  Image1.Width:= Printer.PageWidth div 10;
  Image1.Height:= Printer.PageHeight div 10;
  y:= round((ScrollBox1.Height - Image1.Height)/2);
  x:= round((ScrollBox1.Width - Image1.Width)/2);
  Image1.Left:= x;
  Image1.Top:= y;
  Browse;
end;
Изображения
Тип файла: jpg Print.jpg (70.1 Кб, 148 просмотров)
Женя32 вне форума Ответить с цитированием
Старый 17.07.2019, 04:40   #3
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Цитата:
Сообщение от Женя32 Посмотреть сообщение
Как это исправить?
Почему не применять Rave Reports который предназначено для этого ?
xxbesoxx вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Версия для печати KANDRAT JavaScript, Ajax 3 12.12.2012 16:01
Отслеживание печати Яшар Общие вопросы Delphi 0 05.06.2011 11:57
Вывод печати на термопринтер Custom VKP-80 СТРАННИК Общие вопросы Delphi 3 21.06.2010 20:01
Дублирование при печати pavel.ignatenko Microsoft Office Excel 1 03.03.2010 23:39
Вывод текста на канву предварительного просмотра печати. Moly Общие вопросы Delphi 0 29.09.2009 17:31