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

Вниз

Функция Printer и лазерные принтеры   Найти похожие ветки 

 
JB   (2005-10-03 13:48) [0]

Уважаемые Мастера! Подскажите пожалуйста в чем тут проблема.
Пишу программу (курсовая работа), и надо на принтер кое чего отправить, я использую функцию Printer. Дома где у меня струйник все работает, а на лазерниках (на всех которые мне попались под руку) из принтера вылазиет пустой лист бумаги.
                                                          Заранее спасибо


 
_RusLAN ©   (2005-10-03 16:57) [1]

У тебя ошибка в программе есть, из-за которой на струйниках печатается, а на лазерниках нет.

ЗЫ Ну как ответ? Помог?


 
Goral ©   (2005-10-03 16:57) [2]

я использую процедуру
procedure PrintStrings(S: TStrings; Font: TFont; Title: string); и все работает как на лазерниках так и на струйниках попробуй ;-)

//Printer pRoc
procedure PrintStrings(S: TStrings; Font: TFont; Title: string);
var
 LeftMargin, TopMargin, LineCoord, LineOnPage, LinesOnDoc,
 CurrentLine, TextHeight, LinesPerPage, LineInterval: integer;

 procedure StartDoc;
 begin
   LinesOnDoc := S.Count;
   Printer.Canvas.Font.Assign(Font);
   Printer.Canvas.TextOut(0, 0, " ");
   LeftMargin := (Printer.Canvas.Font.PixelsPerInch) div 2;
   TopMargin  := (Printer.Canvas.Font.PixelsPerInch) div 2;
   TextHeight := Abs(Printer.Canvas.Font.Height);
   LineInterval := TextHeight {+ (TextHeight div 2)};
   LinesPerPage := (Printer.PageHeight - TopMargin) div LineInterval;
   CurrentLine := 0;
 end;

 function MorePages:boolean;
 begin
   Result := (CurrentLine < LinesOnDoc) and
             not Printer.Aborted;
 end;

 procedure StartPage;
 begin
   LineOnPage := 0;
   LineCoord := TopMargin;
 end;

 procedure NextPage;
 begin
   if MorePages then Printer.NewPage;
 end;

 function MoreLines:boolean;
 begin
   Result := (LineOnPage < LinesPerPage) and
             (LineOnPage < LinesOnDoc) and
             not Printer.Aborted;
 end;

 procedure NextLine;
 begin
   Inc(LineOnPage);
   Inc(LineCoord, LineInterval);
   Inc(CurrentLine);
 end;

 procedure PrintLine;
 begin
   Printer.Canvas.TextOut(LeftMargin, LineCoord,
S.Strings[CurrentLine]);
 end;

begin
 Printer.Title := Title;
 Printer.BeginDoc;
 StartDoc;
 while MorePages do begin
   StartPage;
   while MoreLines do begin
     PrintLine;
     NextLine;
     Application.ProcessMessages;
   end;
   NextPage;
 end;
 Printer.EndDoc;
end;
// End Printer

procedure TForm1.Button1.Click(Sender: TObject);
begin
  PrintStrings(Memo1.Lines.Create,Memo1.Font,"");
end;


 
Anatoly Podgoretsky ©   (2005-10-03 18:22) [3]

Принтер НР


 
JB   (2005-10-04 09:39) [4]

2 Anatoly Podgoretsky
Оба принтера HP и лазерник и струйник


 
ANB ©   (2005-10-04 10:56) [5]


> JB   (04.10.05 09:39) [4]
- переключи лазерник на печать в графике.


 
Anatoly Podgoretsky ©   (2005-10-04 14:05) [6]

Любимая болезнь НР, помогают пляски с бубном.



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

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

Наверх




Память: 0.48 MB
Время: 0.046 c
2-1128003182
hooky-mars
2005-09-29 18:13
2005.10.23
Непонятка с var в dll`ай


1-1127884477
AdLeR
2005-09-28 09:14
2005.10.23
Генерация отчетов в Excel


14-1128496222
vidiv
2005-10-05 11:10
2005.10.23
Новый админ на сайте


2-1128003394
Тюменский
2005-09-29 18:16
2005.10.23
Вопрос по Delphi и MySQL


14-1128062277
Vladimir88
2005-09-30 10:37
2005.10.23
Delphi 2005