鱼C论坛

 找回密码
 立即注册
查看: 2101|回复: 2

想用delphi实现调用打印机用zpl指令打印,遇上了问题

[复制链接]
发表于 2022-2-23 15:58:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
想用delphi实现调用打印机用zpl指令打印,参考了网上的。遇上了问题,打印没有反应,打印机查看正在打印的列表里能看见文件存在了一瞬间,然后就没反应了。但是当我把  pDatatype   := 'RAW';改成  pDatatype   := 'Text';就可以成功打印,但是只能把zpl指令当作文本输出。求大佬指教!
procedure WriteRawStringToPrinter(PrinterName, S: string);
var
  Handle: THandle;
  N: DWord;
  DocInfo1: TDocInfo1;
begin
  if not OpenPrinter(PChar(PrinterName), Handle, nil) then
   raise Exception.Create('打开打印机失败!');
  with DocInfo1 do
  begin
    pDocName    := PChar('Test Doc');
    pOutputFile := nil;
    pDatatype   := 'RAW';
  end;

  StartDocPrinter(Handle, 1, @DocInfo1);
  StartPagePrinter(Handle);
  WritePrinter(Handle, PChar(S), Length(S), N);
  EndPagePrinter(Handle);
  EndDocPrinter(Handle);
  ClosePrinter(Handle);
end;




procedure TForm1.Button1Click(Sender: TObject);
var
  ZPL: string;
  sList: TStringList;
begin
  sList := TStringList.Create;
  try
    sList.Clear;
    sList.LoadFromFile('E:\print.txt');
    showmessage(sList.Text);
    ZPL := sList.Text;
    WriteRawStringToPrinter(comboBox1.Text, ZPL);    //’打印机名’
  finally
    sList.Free;
  end;
end;
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-2-23 16:18:46 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-2-23 16:21:24 | 显示全部楼层
ba21 发表于 2022-2-23 16:18
是不是驱动不对。
https://www.cnblogs.com/chengeng/p/6133764.html

驱动应该没问题,我打印其他的都可以,用别的打印软件也可以。谢谢awa
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-4 01:06

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表