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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.10.2008, 18:53   #1
Родион
Пользователь
 
Регистрация: 04.05.2008
Сообщений: 42
По умолчанию Обрезка на принтере чеков epson

проблема следующая
есть принтер с обрезалкой
для обреза на него надо послать символ 9DH или 9EH

выручайте !!! как это сделать

печатаю с помощью

Код:
 uses
   WinTypes;

 {$IFDEF WIN32}
  type SpoolInt = DWORD;
 {$ELSE}
  type SpoolInt = integer;
 {$ENDIF}

 function StartRawPrintJob(PrinterName : pChar;
                           Port : pChar;
                           DocName : pChar) : THandle;

 function StartRawPrintPage(hPrn : THandle) : integer;

 function PrintRawData(hPrn : THandle;
                       Buffer : pointer;
                       NumBytes : SpoolInt) : integer;

 function EndRawPrintPage(hPrn : THandle) : integer;

 function EndRawPrintJob(hPrn : THandle) : integer;


 implementation
  uses
    WinProcs,
 {$IFDEF WIN32}
  WinSpool;
 {$ELSE}
  Print;
 {$ENDIF}


 function StartRawPrintJob(PrinterName : pChar;
                           Port : pChar;
                           DocName : pChar) : THandle;
 {$IFDEF WIN32}
  var
    hPrn : THandle;
    DocInfo1 : TDocInfo1;
 {$ENDIF}
 begin
  {$IFDEF WIN32}
    if (OpenPrinter(PChar(PrinterName),
                    hPrn,
                    nil) = FALSE)  then
    begin
      Result := THandle(-1);
      Exit;
    end;
    DocInfo1.pDocName := DocName;
    DocInfo1.pOutputFile := Port;
    DocInfo1.pDataType := 'RAW';
    if (StartDocPrinter(hPrn,
                        1,
                        @DocInfo1) = 0) then
    begin
      Result := THandle(-1);
      Exit;
    end;
    Result := hPrn;
  {$ELSE}
   result := OpenJob(Port,
                     DocName,
                     0);
  {$ENDIF}
 end;

 function StartRawPrintPage(hPrn : THandle) : integer;
 begin
  {$IFDEF WIN32}
    if (StartPagePrinter(hPrn) = FALSE) then
    begin
      Result := -1;
      Exit;
    end;
    result := 1;
  {$ELSE}
   result := StartSpoolPage(hPrn);
  {$ENDIF}
 end;


 function PrintRawData(hPrn : THandle;
                       Buffer : pointer;
                       NumBytes : SpoolInt) : integer;
 {$IFDEF WIN32}
 var
   BytesWritten : DWORD;
  {$ENDIF}
 begin
   if (NumBytes = 0) then
   begin
     Result := 1;
     Exit;
   end;
  {$IFDEF WIN32}
    if (WritePrinter(hPrn,
                     Buffer,
                     NumBytes,
                     BytesWritten) = FALSE) then
    begin
      Result := -1;
      Exit;
    end;
    if (NumBytes <> BytesWritten) then
    begin
      Result := -1;
      Exit;
    end;
    Result := 1;
  {$ELSE}
   result := WriteSpool(hPrn,
                        Buffer,
                        NumBytes);
  {$ENDIF}
 end;


 function EndRawPrintPage(hPrn : THandle) : integer;
 begin
  {$IFDEF WIN32}
    if (EndPagePrinter(hPrn) = FALSE) then
    begin
      Result := -1;
      Exit;
    end;
    Result := 1;
  {$ELSE}
   result := EndSpoolPage(hPrn);
  {$ENDIF}
 end;


 function EndRawPrintJob(hPrn : THandle) : integer;
 begin
  {$IFDEF WIN32}
    if (EndDocPrinter(hPrn) = FALSE) then
    begin
      Result := -1;
      Exit;
    end;
    if (ClosePrinter(hPrn) = FALSE) then
    begin
      Result := -1;
      Exit;
    end;
    Result := 1;
  {$ELSE}
   result := CloseJob(hPrn);
  {$ENDIF}
 end;


 end.
Родион вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Печать на матричном принтере Dimon Общие вопросы Delphi 1 11.07.2008 13:20
Обрезка видео формата Mpeg Rembo Софт 9 27.04.2008 22:20
отмена печати на принтере в Delphi Юliana Общие вопросы Delphi 2 29.01.2008 19:51
количество распечатанных файлов на принтере ZhekON Общие вопросы Delphi 4 31.08.2007 21:16