![]() |
![]() ![]() ![]() ![]() |
|
Использование PASSTHROUGH для отправки данных прямо на принтерDelphi , ОС и Железо , Принтеры и ПечатьИспользование PASSTHROUGH для отправки данных прямо на принтер
Оформил: DeeCo
{
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, который использует функцию Windows API Вот разбивка кода:
Замечание:
В целом, этот код предоставляет способ для приложений Delphi отправлять данные напрямую в принтеры с помощью команды отключения PASSTHROUGH, позволяя более тонкую настройку процесса печати. Использование функции Windows API Escape() позволяет передавать данные напрямую на принтер, если принтерный драйвер поддерживает escape-команду PASSTHROUGH. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш :: Главная :: Принтеры и Печать ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 | ||||