 |
|
nec 3540A |
22-01-2007 22:55 539946 |
Команды принтеру...
Хотелось узнать, где написано про команды, которые можно послать принтеру (Epson stylus 640) на выполнение? Почитал мануал, тоже нечего подходящего не нащел, вот код моего записыльщика в порт принтера ( DELPHI ):
Код:
Под Win16 Вы можете использовать функцию SpoolFile, или Passthrough escape, если принтер поддерживает последнее.Под Win32 Вы можете использовать WritePrinter.
Ниже пример открытия принтера и записи чистого потока данных в принтер.Учтите, что Вы должны передать корректное имя принтера, такое, как "HP LaserJet5MP",чтобы функция сработала успешно.
Конечно, Вы можете включать в поток данных любые необходимые управляющие коды,которые могут потребоваться.
uses WinSpool;
procedure WriteRawStringToPrinter(PrinterName:String; S:String);
var
Handle: THandle;
N: DWORD;
DocInfo1: TDocInfo1;
begin
if not OpenPrinter(PChar(PrinterName), Handle, nil) then
begin
ShowMessage('error ' + IntToStr(GetLastError));
Exit;
end;
with DocInfo1 do begin
pDocName := PChar('test doc');
pOutputFile := nil;
pDataType := 'RAW';
end;
StartDocPrinter(Handle, 1, @DocInfo1);
StartPagePrinter(Handle);
WritePrinter(Handle, PChar(S), Length(S), N);
EndPagePrinter(Handle);
EndDocPrinter(Handle);
ClosePrinter(Handle);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
WriteRawStringToPrinter('HP', 'Test This');
end;
|
nec 3540A
А зачем слать сырые команды, а не воспользоваться какими-нибудь более высокоуровневыми API?
|
nec 3540A |
24-01-2007 19:55 540787 |
ivank
А поподробнее где можно про них прочитать?
|
В MSDN написано, я там читал. В разделах GDI и Printing
|
Время: 03:50.
© OSzone.net 2001-