![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Работа с принтером [D7, ME, 2000, XP, 2003]
распечатчик © (2007-01-24 12:29:00)Задача состоит в следующем. Необходимо организовать печать графики с подготовленной канвы. воспользовался примером этого сайта:
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-26 10:31:00) [1]
> как программно вручную ему задать печать с качеством фотопечати
Возможен такой вариант:
1) заполняем структуру DEVMODE
2) вызываем CreateDC
P.S. А может что-то не так с драйверами печати?
распечатчик (2007-01-26 10:19:00) [2]Так ведь я говорю. Я поставил свой компобокс, забил его принтерами и при выборе принтера присваваю -
Printer.PrinterIndex := comboBox.itemIndex;
А через Форму диалога с принтером с вкладки диалоги нельзя ни принтер выбрать ни свойства принтера. Ничего не принимается. Поетому я и спрашиваю как программно вручную ему задать печать с качеством фотопечати. Или я где то неправильно изначально делаю что-то с диалогом.
TRUNK (2007-01-26 10:01:00) [3]
> а как мне вручную задать принтеру, чтоб он печатал с качеством
> фотопечати?
Для этого есть кнопка "Свойства" справа от ComboBox'а в котором выбирается принтер. Или и это не помогает?
распечатчик (2007-01-26 09:47:00) [4]Или объясните как таки заставить принтер принимать измененные настройки через стандартное окно диалога с принтером.
распечатчик (2007-01-26 09:31:00) [5]Нет. Я уже проверил. Я вручную присваиваю ему номер нужного принтера. Тогда принтер меняется, а как мне вручную задать принтеру, чтоб он печатал с качеством фотопечати? Потому что через стандартное окно диалога ничего не меняется почему-то.
TRUNK (2007-01-25 17:34:00) [6]Проверь, меняется ли Printer.PrinterIndex после закрытия TPrintDialog.
распечатчик (2007-01-25 11:33:00) [7]Ну помогите, ведь наверняка же кто-то сталкивался с этим.
распечатчик (2007-01-25 09:18:00) [8]К счастью орфография не влияет на выполнение кода. С этим разобрался. Помогите разобраться с настройками принтера. Не могу понять как задаются настройки печати и даже просто выбора принтера. Если выбирать принтер в окне диалога принтера, то печать идет через принтер который стоит по умолчанию (т.е. ему все равно выбрал я другой принтер или нет - результат один и тот же) и как бы я не настраивал печать все настройки почему-то не принимаются (ему по-прежнему все равно).
TRUNK (2007-01-24 13:40:00) [9]
> PrintGetPrinterDevi seProp;
Чего-то я о такой функции не слышал...