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

Вниз

Работа с принтером   Найти похожие ветки 

 
распечатчик   (2007-01-24 12:29) [0]

Задача состоит в следующем. Необходимо организовать печать графики с подготовленной канвы.  воспользовался примером этого сайта:

procedure PrintGetPrinterDeviseProp;
begin
 PixelsX:=GetDeviceCaps(printer.Handle,LogPixelsX);
 PixelsY:=GetDeviceCaps(printer.Handle,LogPixelsY);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
PrintDlg: TPrintDialog;
begin
//принять
PrintDlg:=TPrintDialog.Create(Owner);
if PrintDlg.Execute then
begin
 With Printer do
 Begin
   BeginDoc; { Начало печати }
     PrintGetPrinterDeviseProp;
     Canvas.Font:=label1.font; { Задали шрифт }
     Canvas.TextOut(100,100,"Это тест принтера !!!"); { Печатаем текст }
   EndDoc; { Конец печати }
 end;
end;
PrintDlg.Free;
end;


Вылетает. AV на строке begindoc.
Хотелось бы услышать подсказки по конкреному коду и/или вобще по задаче.
Спасибо


 
TRUNK ©   (2007-01-24 13:40) [1]


> PrintGetPrinterDeviseProp;

Чего-то я о такой функции не слышал...


 
распечатчик   (2007-01-25 09:18) [2]

К счастью орфография не влияет на выполнение кода. С этим разобрался. Помогите разобраться с настройками принтера. Не могу понять как задаются настройки печати и даже просто выбора принтера. Если выбирать принтер в окне диалога принтера, то печать идет через принтер который стоит по умолчанию (т.е. ему все равно выбрал я другой принтер или нет - результат один и тот же) и как бы я не настраивал печать все настройки почему-то не принимаются (ему по-прежнему все равно).


 
распечатчик   (2007-01-25 11:33) [3]

Ну помогите, ведь наверняка же кто-то сталкивался с этим.


 
TRUNK ©   (2007-01-25 17:34) [4]

Проверь, меняется ли Printer.PrinterIndex после закрытия TPrintDialog.


 
распечатчик   (2007-01-26 09:31) [5]

Нет. Я уже проверил. Я вручную присваиваю ему номер нужного принтера. Тогда принтер меняется, а как мне вручную задать принтеру, чтоб он печатал с качеством фотопечати? Потому что через стандартное окно диалога ничего не меняется почему-то.


 
распечатчик   (2007-01-26 09:47) [6]

Или объясните как таки заставить принтер принимать измененные настройки через стандартное окно диалога с принтером.


 
TRUNK ©   (2007-01-26 10:01) [7]


> а как мне вручную задать принтеру, чтоб он печатал с качеством
> фотопечати?

Для этого есть кнопка "Свойства" справа от ComboBox"а в котором выбирается принтер. Или и это не помогает?


 
распечатчик   (2007-01-26 10:19) [8]

Так ведь я говорю. Я поставил свой компобокс, забил его принтерами и при выборе принтера присваваю -
Printer.PrinterIndex := comboBox.itemIndex;
А через Форму диалога с принтером с вкладки диалоги нельзя ни принтер выбрать ни свойства принтера. Ничего не принимается. Поетому я и спрашиваю как программно вручную ему задать печать с качеством фотопечати. Или я где то неправильно изначально делаю что-то с диалогом.


 
TRUNK ©   (2007-01-26 10:31) [9]


> как программно вручную ему задать печать с качеством фотопечати

Возможен такой вариант:
1) заполняем структуру DEVMODE
2) вызываем CreateDC

P.S. А может что-то не так с драйверами печати?



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

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

Наверх




Память: 0.49 MB
Время: 0.029 c
2-1169739113
Veche
2007-01-25 18:31
2007.02.11
Как послать кобинацию клавишь?


15-1169463518
Rentgen
2007-01-22 13:58
2007.02.11
Рейтинг delphimaster.ru - падает


2-1169797581
22b
2007-01-26 10:46
2007.02.11
Работа с файловой системой


15-1169304400
vidiv
2007-01-20 17:46
2007.02.11
Не нравится


15-1169407250
Chuk & Gek
2007-01-21 22:20
2007.02.11
Вопрос к тем, кто разбирается