Поддержка / Donate
 

WebMoney

Яндекс.Деньги

SMS.Копилка
Деньги@Mail.ru
Rupay
E-gold
PayPal

 

Благодарю за поддержку!

Лента RSS - Новости сайта Новости сайта
Лента RSS - Новости форума Новости форума
Добавить в закладки и поделиться Bookmark and Share

 

Архив исходников

 


Automatic translation

 
English German French
Italian Spanish Portuguese
Greece Japan Chinese
  Korean  

  

 

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Google  
 

Использование PASSTHROUGH для отправки данных прямо на принтер

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

{ 
  By using the Windows API Escape() function, 
  your application can pass data directly to the printer. 
  If the printer driver supports the PASSTHROUGH printer escape, 
  you can use the Escape() function and the PASSTHROUGH printer escape 
  to send native printer language codes to the printer driver. 
  If the printer driver does not support the PASSTHROUGH printer escape, 
  you must use the DeviceCapabilities() and ExtDevMode() functions instead. 


  Mit der Windows API Funktion Escape() kann man Daten direkt zum Drucker schicken. 
  Wenn der Drucker Treiber dies nicht unterstutzt, mussen die DeviceCapabilities() 
  und ExtDevMode() Funktionen verwendet werden. 
}

 //  DOS like printing using Passthrough command 
// you should use "printer.begindoc" and "printer.enddoc" 

type
   TPrnBuffRec = record
   bufflength: Word;
   Buff_1: array[0..255] of Char;
 end;

 function DirectToPrinter(S: string; NextLine: Boolean): Boolean;
 var
    Buff: TPrnBuffRec;
   TestInt: Integer;
 begin
   TestInt := PassThrough;
   if Escape(Printer.Handle, QUERYESCSUPPORT, SizeOf(TESTINT), @testint, nil) > 0 then
   begin
     if NextLine then  S := S + #13 + #10;
     StrPCopy(Buff.Buff_1, S);
     Buff.bufflength := StrLen(Buff.Buff_1);
     Escape(Printer.Canvas.Handle, Passthrough, 0, @buff, nil);
     Result := True;
   end
   else
     Result := False;
 end;

 // this code works if the printer supports escape commands 
// you can get special esc codes from printer's manual 

//  example: 
printer.BeginDoc;
 try
   directoprinter('This text ');
 finally
   printer.EndDoc;
 end;



Источник - Проект "Delphi World" © Выпуск 2002 - 2004
Автор проекта: Акулов Николай

|  Установить источник видео для Оцифровки.  |

   Rambler's Top100             Яндекс цитирования