使用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’);