Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.10.19;
Скачать: CL | DM;

Вниз

Черно-белая печать на цветном принтере   Найти похожие ветки 

 
mefodiy   (2008-09-11 14:03) [0]

Нужно печатать форму. Делаю так
     Printer.Orientation := poLandscape;
     Form.Print;
Все нормально печатется. Но нужно печатать не в цвете на цветном принтере.
Каким свойством Printer это можно сделать?
Спасибо.


 
Vlad Oshin ©   (2008-09-11 14:23) [1]

там где-то devicemodeA описана, можно попробовать ее члены поменять в комбинациях всяких


 
Vlad Oshin ©   (2008-09-11 14:36) [2]

еще идея достучаться до Printer.Canvas


 
clickmaker ©   (2008-09-11 15:11) [3]

а в диалоге настройки принтера это не поменять?


 
Vlad Oshin ©   (2008-09-11 16:00) [4]

вообщем, идея такая, но что-то не печатается canvas правильно, хотя и копируется(image2 для проверки), надо поэкспериментировать вообщем

procedure TForm1.Button1Click(Sender: TObject);
var
a,d:Trect;
w,h:integer;
r,g,b,Color2:byte;
begin
 a:=Rect(0,0,100,100);
 d:=Rect(0,0,100,100);
 image1.Canvas.CopyRect(a, form1.Canvas, d);

 for h := 1 to image1.Picture.Bitmap.Height-1 do
 begin
   for w := 1 to image1.Picture.Bitmap.Width-1 do
   begin
     Color := ColorToRGB(image1.Canvas.Pixels[w,h]);
     r := GetRValue(Color);
     g := GetGValue(Color);
     b := GetBValue(Color);
     Color2 := (r + g + b) div 3;
     image1.Canvas.Pixels[w,h] := RGB(Color2,Color2,Color2);
   end;
 end;

// Printer.Orientation := poLandscape;
printer.BeginDoc;
printer.Canvas.CopyRect(a,image1.Canvas,d);
//printer.Canvas.Lock;
Printer.Canvas.Textout(10, 10, "TEST");
GetDeviceCaps(Printer.Canvas.Handle, LOGPIXELSY);   //RASTERCAPS
printer.EndDoc;

image2.Canvas.CopyRect(a,image1.Canvas,d);
image1.Canvas.Textout(10, 10, "TEST");
image1.Picture.SaveToFile("c:\1.bmp");

end;


 
Правильный$Вася   (2008-09-11 16:15) [5]


> Vlad Oshin ©   (11.09.08 16:00) [4]

зачем все эти изобретения?
Monochrome property (TBitmap)


 
Vlad Oshin ©   (2008-09-11 16:26) [6]


> Правильный$Вася   (11.09.08 16:15) [5]

потому что фигня получается


 
mefodiy   (2008-09-12 08:03) [7]

Попробовал
SetPrinter(ADevice, ADriver, APort: PChar; ADeviceMode: THandle);
но ничего не получилось.
Честно говоря, не думал, что это так сложно.



Страницы: 1 вся ветка

Текущий архив: 2008.10.19;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.014 c
2-1220950600
Ivolg
2008-09-09 12:56
2008.10.19
HTTP 1.1 400 Bad Request


15-1217317704
Пробежал...
2008-07-29 11:48
2008.10.19
Firebird Embedded vs SQLite


2-1221073858
Alral
2008-09-10 23:10
2008.10.19
TBitmap.Transparent


2-1221236761
New_ser
2008-09-12 20:26
2008.10.19
Как настроить ADOConnection для работы в сети?


1-1200566541
Layner
2008-01-17 13:42
2008.10.19
Можно ли из сервиса вызвать форму (для настройки это сервиса)