Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.02.2010, 21:58   #1
Alexander Karpenko
 
Регистрация: 24.02.2010
Сообщений: 3
Вопрос Delphi. Печать. Не работает Printer.Canvas.TextOut

Доброго времени суток.

Прошу у посетителей форума помощи по казалось-бы простому вопросу. Написал свою программу, реализовал печать через Excel используя OLE, но возникла потребность ручной регулировки печати. Пытаюсь реализовать у себя простейший пример ручной печати следующим образом:

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin

if PrintDialog1.Execute then
  with Printer do
  begin
    BeginDoc;
    Canvas.TextOut(100,100,'Это тест принтера !!!');
    EndDoc;
  end;
end;
В результате задача принтеру ставиться, но он ничего не печатает. Принтер HP LJ P1006 (USB). Подскажите пожалуйста куда смотреть и где копать.

Заранее спасибо всем откликнувшимся.

Последний раз редактировалось Stilet; 25.02.2010 в 08:25.
Alexander Karpenko вне форума Ответить с цитированием
Старый 24.02.2010, 22:03   #2
zmey31313
Форумчанин
 
Регистрация: 19.11.2009
Сообщений: 155
Сообщение Посмотрите

Вот пример обычной печати из компонента RichEdit:
Код:
  If PrintDialog.Execute then
      PrintStrings(RichEdit.Lines);
Код рабочий
По всем вопросам связанным с Делфи или Паскаль обращайтесь, чем смогу тем и помогу.
Помог жми на весы!!!
dmi83206389@mail.ru
zmey31313 вне форума Ответить с цитированием
Старый 24.02.2010, 22:07   #3
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

Твой код верен.
Проблемы в принтере.
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
Kotofff вне форума Ответить с цитированием
Старый 25.02.2010, 01:03   #4
Alexander Karpenko
 
Регистрация: 24.02.2010
Сообщений: 3
По умолчанию

To Zmey31313: Спасибо за подсказку, но у меня нет процедуры PrintStrings, кроме того в конечном варианте печать по строках из RichEdit не подойдет, нужно более точно позиционировать вертикаль .

Что касается работоспособности принтера, то во всех приложениях работал без проблем, и кроме того распечатал следующее:

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
RichEdit1.Print('Заголовок');
end;
Новая информация. После выполнения RichEdit1.Print('Заголовок'); TextOut работает отлично.

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin

RichEdit1.Print('ddd');

if PrintDialog1.Execute then
  with Printer do
  begin
    BeginDoc;
    Canvas.Font:=label1.font;
    Canvas.TextOut(300,300,'Тест принтера !!!');
    EndDoc;
  end;
end;
Я так понимаю, что RichEdit1.Print как то инициализирует принтер.

Fom Stilet: Неужели так сложно код оформить тегом по кнопке # ?

Последний раз редактировалось Stilet; 25.02.2010 в 08:26.
Alexander Karpenko вне форума Ответить с цитированием
Старый 02.03.2010, 23:39   #5
Alexander Karpenko
 
Регистрация: 24.02.2010
Сообщений: 3
По умолчанию

Всем спасибо за участие, вопрос решен
Все дело было в Title
Работающий код выглядит так:

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
if PrintDialog1.Execute then
  with Printer do
  begin
    BeginDoc;
    Title:='Название задачи на принтере!!!'  // -- вот корень зла :)
    Canvas.TextOut(100,100,'Это тест принтера !!!');
    EndDoc;
  end;
end;
Alexander Karpenko вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
delphi canvas Neymexa Помощь студентам 5 06.01.2010 21:35
Delphi Canvas карандаш wayder Помощь студентам 3 28.05.2009 16:57
Printer MAcK Общие вопросы Delphi 1 29.04.2008 11:22
Image1.canvas.textout. Координаты символов Alar Компоненты Delphi 0 29.10.2006 22:04