Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.10.19;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.005 c
2-1220531255
zzz
2008-09-04 16:27
2008.10.19
Проверка на последнюю запись


2-1221222546
savyhinst
2008-09-12 16:29
2008.10.19
Про DLL


15-1220006168
Prohodil Mimo
2008-08-29 14:36
2008.10.19
JavaScript


4-1198047433
Vladimir
2007-12-19 09:57
2008.10.19
Hook на мышь и клавиатуру только в своем приложении


2-1220938248
Ciberrus
2008-09-09 09:30
2008.10.19
DBGRID Контроль ввода значений.





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