Delphi POS – 透過USB Printer打開錢櫃

[pascal]
procedure USBOpenCashDrawer(PrinterName: String);
var
// use winspool
Handle, hDeviceMode: THandle;
N: DWORD;
DocInfo1: TDocInfo1;
Device, Driver, Port: array [0 .. 255] of char;
ThePrinter: string;
code:ansistring;
begin
ThePrinter := PrinterName;
Code := chr(27) + chr(64)+ chr(27) + chr(112) + chr(0) + chr(50) + chr(200);

Printer.PrinterIndex := Printer.Printers.Indexof(ThePrinter);
Printer.GetPrinter(Device, Driver, Port, hDeviceMode);
PrinterName := Format(‘%s’, [Device]);
if not WinSpool.OpenPrinter(PChar(PrinterName), Handle, nil) then
begin
// ShowMessage(‘Error : ‘ + IntToStr(GetLastError));
Exit;
end;
with DocInfo1 do
begin
pDocName := ‘Test’;
pOutputFile := nil;
pDataType := ‘RAW’;
end;

WinSpool.StartDocPrinter(Handle, 1, @DocInfo1);
WinSpool.StartPagePrinter(Handle);
WinSpool.WritePrinter(Handle, PAnsiChar(Code), Length(Code), N);
WinSpool.EndPagePrinter(Handle);
WinSpool.EndDocPrinter(Handle);
WinSpool.ClosePrinter(Handle);

end;
[/pascal]

作者: 林壽山

林壽山 目前任職於軟體公司研究開發部門主管,主要採用.net core/.net 5/6 開發,收銀機pos系統開發,第三方支付設計(綠界、馬來西亞epay/happypay、台新one碼),金流設計,行動支付設計(悠遊卡/一卡通),支付寶,微信,街口支付,信用卡機(聯合信用卡),擅長PHP網頁設計(CodeIgniter、Laravel)框架、Delphi程式設計、資料庫設計、C# WinForm/WebForm程式設計、ASP.net MVC、LINE串接、API串接設計

在〈Delphi POS – 透過USB Printer打開錢櫃〉中有 2 則留言

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料