![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вывод на принтер картинки, хранящейся в TList [D7, WinXP]
_ZeKa © (2005-02-01 18:30:00)Всем привет!
Столкнулся с такой проблемой. Вывожу на печать катинку хранящуюся в TList
Printer.Canvas.Draw(0, 0, TBitmap(Lists.Items[0]));
Результат - пустой лист. Использую Paintbox
pbPreview.Canvas.Draw(0, 0, TBitmap(Lists.Items[0]));
Рисуется нормально. В чем ошибка????
REA (2005-02-02 14:45:00) [1]Там StretchDiBits использовано, если не ошибаюсь.
_ZeKa (2005-02-02 12:49:00) [2]А если StretchDraw(...)?
REA (2005-02-02 12:29:00) [3]Draw работает очень плохо и не на всех принтерах.
Рекомендую использовать функцию по методу, реализованному в печати TForm.
_ZeKa (2005-02-02 12:27:00) [4]ПЕЧАТАЕТ!!!
СПАСИБО! Сам бы никогда не допер...
Семен Сорокин (2005-02-02 10:16:00) [5]принтер цветной? пытаешься распечатать цветную картинку?
попробуй перед Draw задать у битмапа PixelFormat := pf16Bit;
У меня была трабла, отсылал цветную картинку на HP Laser Jet 1200 - тоже пустой лист был, поигрался с PixelFormat - решил проблему.
_ZeKa (2005-02-01 18:50:00) [6]Привожу полный код
procedure TfPreview.pbPreviewPaint(Sender: TObject);
begin
pbPreview.Canvas.Draw(0, 0, TBitmap(fPrint.Lists.Items[0]));
end;
procedure TfPrint.bbtnOKClick(Sender: TObject);
Var
i: Integer;
begin
Printer.BeginDoc;
For i := 0 to Lists.Count - 1 do
begin
Printer.Canvas.Draw(0, 0, TBitmap(Lists.Items[i]));
if i <> (Lists.Count - 1) then Printer.NewPage;
end;
Printer.EndDoc;
end;
_ZeKa (2005-02-01 18:47:00) [7]Именно так я и делаю. Это я для краткости
Семен Сорокин (2005-02-01 18:44:00) [8]Printer.BeginDoc;
Printer.Canvas.Draw(0, 0, TBitmap(Lists.Items[0]));
Printer.EndDoc;