2.4.11. Работа с принтером

2.4.11.1. Описание

Для работы с принтером определено пространство имен Printer в него входят следующие функции:

  • function SelectPrinter(var PrinterName: String; var CopiesCount: Integer): Boolean
    Позволяет выбрать принтер для печати, для этого она выводит на экран стандартный диалог выбора принтера. В первом параметре PrinterName она возвращает имя принтера, а во втором CopiesCount указанное количество копий. Если в диалоге пользователь нажал OK, то результатом функции будет True в противном случае False.
  • function Escape(in PrinterName: String; in EscapeCode: String): Boolean
    Оправляет последовательность кодов, указанную в параметре EscapeCode, непосредственно драйверу принтера PrinterName минуя GDI. Предназначена, например, для работы с принтерами фирмы Zebra Technologies поддерживающими язык ZPL или ZPL II. Возвращает True в случае успеха, в противном случае False.

2.4.11.2. Пример

Данный пример демонстрирует печать этикетки на принтере поддерживающим язык ZPL II.

<PASCAL>
var
  n: String;
  i: Integer;
  t: String;
begin
  Printer.SelectPrinter(n,i);
  t := '^XA'+#13#10+

       '^FX Top section with company logo, name and address.'+#13#10+
       '^CF0,60'+#13#10+
       '^FO50,50^GB100,100,100^FS'+#13#10+
       '^FO75,75^FR^GB100,100,100^FS'+#13#10+
       '^FO88,88^GB50,50,50^FS'+#13#10+
       '^FO220,50^FDInternational Shipping, Inc.^FS'+#13#10+
       '^CF0,40'+#13#10+
       '^FO220,100^FD1000 Shipping Lane^FS'+#13#10+
       '^FO220,135^FDShelbyville TN 38102^FS'+#13#10+
       '^FO220,170^FDUnited States (USA)^FS'+#13#10+
       '^FO50,250^GB700,1,3^FS'+#13#10+

       '^FX Second section with recipient address and permit information.'+#13#10+
       '^CFA,30'+#13#10+
       '^FO50,300^FDJohn Doe^FS'+#13#10+
       '^FO50,340^FD100 Main Street^FS'+#13#10+
       '^FO50,380^FDSpringfield TN 39021^FS'+#13#10+
       '^FO50,420^FDUnited States (USA)^FS'+#13#10+
       '^CFA,15'+#13#10+
       '^FO600,300^GB150,150,3^FS'+#13#10+
       '^FO638,340^FDPermit^FS'+#13#10+
       '^FO638,390^FD123456^FS'+#13#10+
       '^FO50,500^GB700,1,3^FS'+#13#10+

       '^FX Third section with barcode.'+#13#10+
       '^BY5,2,270'+#13#10+
       '^FO175,550^BC^FD1234567890^FS'+#13#10+

       '^FX Fourth section (the two boxes on the bottom).'+#13#10+
       '^FO50,900^GB700,250,3^FS'+#13#10+
       '^FO400,900^GB1,250,3^FS'+#13#10+
       '^CF0,40'+#13#10+
       '^FO100,950^FDShipping Ctr. X34B-1^FS'+#13#10+
       '^FO100,1000^FDREF1 F00B47^FS'+#13#10+
       '^FO100,1050^FDREF2 BL4H8^FS'+#13#10+
       '^CF0,190'+#13#10+
       '^FO485,920^FDCA^FS'+#13#10+

       '^XZ'+#13#10;
  Printer.Escape(n, t);
end;
</PASCAL>