Главная страница
    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.008 c
15-1219939924
Terasbetoni
2008-08-28 20:12
2008.10.19
Установил компонент, а в закладках с компонентами он не появился


6-1194270834
andreoman
2007-11-05 16:53
2008.10.19
программно поменять мак-адрес (MAC) сетевой карточки


15-1219832359
Tricky
2008-08-27 14:19
2008.10.19
Починить или купить новое?


2-1221068460
YoungerDelphist
2008-09-10 21:41
2008.10.19
SQL


15-1220026293
XentaAbsenta
2008-08-29 20:11
2008.10.19
Ветка - "Проектирование"





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский