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>