Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.009 c
11-1194295636
Elec3C
2007-11-05 23:47
2008.10.19
Вопрос по OpenSaveDialog у


2-1221147485
Weeeetch
2008-09-11 19:38
2008.10.19
Требуется подсказка


2-1218701003
Нов_и_чок
2008-08-14 12:03
2008.10.19
преобразование длинных имен файлов Windows в DOS


3-1208167098
Виталий Панасенко(дом)
2008-04-14 13:58
2008.10.19
select from select в FireBird 2.0.1/2.1


15-1220026817
Nic
2008-08-29 20:20
2008.10.19
Ветка проектирования




   Наверх