1. 程式人生 > >Delphi 呼叫BarTender列印條碼

Delphi 呼叫BarTender列印條碼

方法一:

使用Delphi呼叫BarTender列印條碼,在網上搜索了一下,很多都是介紹匯入ActiveX元件,其實完全沒有必要。用OLE控制元件完全可以解決。但需要注意所使用的BarTender必須是正式的安裝版(PS:破解版好像也可以),試用版和綠色版都不可以二次開發。

下面是測試通過的列子:(需要引用ComObj.Pas檔案)


直接寫程式碼:

procedure TForm1.DoPrintStr(_BarCode, _Text: string);

var
  barApp: Variant;
  barFormat: Variant;
  vPath: string;
begin
  try
    vPath := ExtractFilePath(Forms.Application.ExeName);
    // 列印第一頁
    if not FileExists(vPath+'Test1.btw') then
    begin
      showMessage('列印標籤不存在,請檢查!');
      Exit;
    end;
    barApp := CreateOleObject('BarTender.Application.10');
    barApp.Visible := False;
    barFormat := barApp.formats.open(vPath+'Test1.btw', true, '');

    // 'TEXT'、'BARCODE'均為box.btw標籤紙上的控制元件名稱
    barFormat.SetNamedSubStringValue('Text1', _Text);
    barFormat.SetNamedSubStringValue('BarCode1',_BarCode);
    barFormat.printout(False,False);
    barFormat.close(1);
    barApp.quit(1);
  except
    on E: Exception do
    begin
      ShowMessage(E.ClassName + E.Message);
      Exit;
    end;
  end;
end;

方法二:(安裝控制元件方式)

1. 要實現的條形碼功能 最近一個專案需要在掃描條碼後按固定的格式列印。條形碼列印控制元件客戶習慣使用的是BarTender,使用Delphi呼叫BarTender來完成列印條碼標籤功能。此功能的重點在於: a)         使用BarTender格式列印 b)        格式中有需要變動的部分 2.  條形碼標籤設計 a)       新建一個空白標籤 b)      在畫面上加入一個條形碼控制元件,一個文字控制元件 c)       選中條形碼控制元件,雙擊(或右鍵,屬性),開啟屬性視窗;點選“高階”,選擇“共享/名稱”頁,在共享名稱中輸入條形碼控制元件的名字“BarCode1”;點選確定完成修改。這個步驟來定義在Delphi中(或其它語言VB等)訪問的物件名。 d)      同樣的步驟,給文字控制元件設定名稱為“Text1” e)       儲存為“c:/test.btw” 3.  匯入ActiveX元件 a)         開啟Delphi(版本5.0及以上,其它沒有測試) b)        選擇選單“專案”à“匯入型別庫”(ProjectàImport Type Library) c)         在彈出的視窗中,列出可匯入的型別庫;找到“BarTender 7.75”,選中 d)        將要匯入的類名稱會列在class names中,由於這裡的類名稱會與系統已存在類名稱有重複,將這個全部複製出來,將型別名稱前面都加上Bt。如:TFormat修改為TBtFormat.
e)         類名稱修改完成後,點選”安裝”(Install) f)         系統會安裝元件到ActiveX控制元件頁上 4. 呼叫BarTender列印 a)         新建應用程式 b)        在窗體上拖一個TBtApplication控制元件(ActiveX頁上),命名為btApp1 c)         在窗體上放一個TButton控制元件,命名為btn1,雙擊btn1產生事件 d)        填寫事件程式碼如下: procedure TForm1.btn1Click(Sender: TObject); begin  with btApp1.Formats.Open('c:/test.btw', True, '') do //開啟標籤檔案  begin     SetNamedSubStringValue('BarCode1', '1234567890'); //設定值     SetNamedSubStringValue('Text1', 'Hello BarTender!');     PrintOut(False, False); //列印     Close(btDoNotSaveChanges); //關閉不儲存  end;  btApp1.Quit(btDoNotSaveChanges); //退出 end;  

附加說明:
  Bartender上的設定:(新版本要設定"具名資料來源" 來交換資料)