Delphi 调用BarTender打印条码

时间:2022-08-31 19:11:36

使用Delphi调用BarTender打印条码,在网上搜索了一下,很多都是介绍导入ActiveX组件,其实完全没有必要。用OLE控件完全可以解决。但需要注意所使用的BarTender必须是正式的安装版(PS:破解版好像也可以),试用版和绿色版都不可以二次开发。

下面是测试通过的列子:(需要引用ComObj.Pas文件)


function DoPrint:Boolean;
var
  barApp: Variant;
  barFormat: Variant;
  vPath: string;
begin
  Result := False;
  try
    vPath := ExtractFilePath(Forms.Application.ExeName);
    // 打印第一页
    if not FileExists(vPath+'box.btw') then
    begin
      showMessage('打印标签不存在,请检查!');
      Exit;
    end;
    barApp := CreateOleObject('BarTender.Application.7');
    barApp.Visible := False;
    barFormat := barApp.formats.open(vPath+'box.btw', true, '');

    // 'TEXT'、'BARCODE'均为box.btw标签纸上的控件名称
    barFormat.SetNamedSubStringValue('TEXT', ‘TEXTValue’);
    barFormat.SetNamedSubStringValue('BARCODE', 'BARCODEValue');
    barFormat.printout(False,False);
    barFormat.close(1);
    barApp.quit(1);
  except
    on E: Exception do
    begin
      ShowMessage(E.ClassName + E.Message);
      Exit;
    end;
  end;
  Result := True;
end;


对于Delphi调用Codesoft软件也是同样的道理,只是不同的软件内部封装的方法不一样。参见 http://blog.csdn.net/qq_19784269/article/details/50570239