gpt4 book ai didi

delphi - 如何使用ReadPrinter?

转载 作者:行者123 更新时间:2023-12-03 15:58:59 28 4
gpt4 key购买 nike

我将打印直接发送到线轴,如下所示:

var
cmnd : TBytes;
...
WritePrinter(HandleImp, @cmnd[0], Length(cmnd), CaracteresImpressos);
...

在大多数情况下,这可以满足我的需求,我的问题是需要打印机响应的命令,例如读取状态。

我读到了函数ReadPrinter(),但我不能使用它...返回总是不同于0(根据文档表明该函数被执行),但是缓冲区变空,就像打印机没有响应一样。

“ci”的返回值等于0。

https://learn.microsoft.com/en-us/windows/desktop/printdocs/readprinter

这是我的代码:

function TTP650.pedeStatusDrawer: TBytes;
begin
SetLength(result, 3);
result[0] := 16;
result[1] := 04;
result[2] := 01;
end;

function TForm1.statusDrawer: boolean;
var
buffer : TBytes;
cmnd : TBytes;
s : string;
i : integer;
ret : boolean;
ci: DWORD;
begin
setLength(buffer,20);
DescricaoAnsiString := 'Lendo Pulso/Gaveta' + #10;
cmnd := tp.pedeStatusDrawer();

if not OpenPrinter(PChar(driverselecionado), HandleImp, nil) then
Memo1.Lines.Add('Erro: Impressora não encontrada')
else
begin

Documento.pDocName := PChar('Minha impressão');
Documento.pOutputFile := nil;
Documento.pDataType := 'RAW';

StartDocPrinter(HandleImp, 1, @Documento);
StartPagePrinter(HandleImp);

WritePrinter(HandleImp, @cmnd[0], Length(cmnd), CaracteresImpressos);
ret := ReadPrinter(HandleImp, @buffer[0], Length(buffer), ci);

EndPagePrinter(HandleImp);
EndDocPrinter(HandleImp);

if(ret = true) then
begin
if(ci >0) then
begin
for i := 0 to Length(buffer)-1 do
s := s + IntToStr(buffer[i]) + ' ';

Memo1.Lines.Add(s);
end;

end;
ClosePrinter(HandleImp);
end;

end;

我正在使用双向热敏打印机。文档摘录:

[Name] Real-time status transmission 

[Format] ASCII DLE EOT n

Hex 10 04 n

Decimal 16 4 n

[Description]

根据以下参数实时传输n指定的选定打印机状态:

n = 1: Transmit printer status 

n = 2: Transmit offline status

n = 3: Transmit error status

n = 4: Transmit paper roll sensor status

如果有兴趣,完整的文档(第 9 和 10 页讨论了该主题)。 printer documentation

最佳答案

我通过串行通信得到了答案。我通过串行发送了我在问题中提到的字符串的发送命令并读取:

Serial: TBlockSerial;
b: = Serial.RecvByte (500);

成功了。

关于delphi - 如何使用ReadPrinter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55798748/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com