Главная страница
    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.45 MB
Время: 0.006 c
1-1200559310
Zheksik
2008-01-17 11:41
2008.10.19
Перекрашенные ячейки StringGrid_a и выделение.


11-1194295636
Elec3C
2007-11-05 23:47
2008.10.19
Вопрос по OpenSaveDialog у


15-1217581038
AndreyV
2008-08-01 12:57
2008.10.19
Мониторные наушники Sennheiser


2-1220780338
Point
2008-09-07 13:38
2008.10.19
Как научиться составлять sql запросы.


2-1220932985
New_ser
2008-09-09 08:03
2008.10.19
Как сравнить 2 предложения (разные разделители)?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский