![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
То есть, код на компе с Windows 7 (разрешение экрана 1366*768) выполняется как надо, а на компе с Windows XP (разрешение экрана 1024*768) принтер выдает чистый лист. Принтер в обоих случаях используется один и тот же.
Код:
uses Printers;
***********
procedure TForm1.FormCreate(Sender: TObject);
begin
Image1.Canvas.TextOut(10,10,'ПРОВЕРКА');
end;
procedure TForm1.Button1Click(Sender: TObject);
var
ScaleX, ScaleY: Integer;
R: TRect;
begin
Printer.BeginDoc;
with Printer do
try
ScaleX := GetDeviceCaps(Handle, logPixelsX) div PixelsPerInch;
ScaleY := GetDeviceCaps(Handle, logPixelsY) div PixelsPerInch;
R := Rect(0, 0, Image1.Picture.Width * ScaleX,
Image1.Picture.Height * ScaleY);
Canvas.StretchDraw(R, Image1.Picture.Graphic);
finally
EndDoc;
end;
end;
end. |
|
#2
|
|||
|
|||
|
Сталкиваося с таким. Более того, печатал несколько картинок на одном листе, так вот некоторые из них не выводились случайным образом.
Решение нашел на тогда еще борландовском сайте. Переводить в DIB и уже его печатать. Вроде, помогло. |