Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.026 c
2-1169635482
Light-blr
2007-01-24 13:44
2007.02.11
Как объявить массив строк в константах?


6-1157547727
провидец
2006-09-06 17:02
2007.02.11
TWebBrowser


2-1169553193
SamAman
2007-01-23 14:53
2007.02.11
WinAPI


2-1169647027
DVM
2007-01-24 16:57
2007.02.11
Директивы условной компиляции


3-1163760861
s_t_d
2006-11-17 13:54
2007.02.11
Можно ли исп. экспоненту и логарифм в языке ХП FB 1.5




   Наверх