LoginSignup
5
7

More than 5 years have passed since last update.

Pythonからb-PACでラベルを印刷する

Last updated at Posted at 2019-03-12

概要

  • b-PAC
    • Brother製ラベルプリンタ用のSDK(COMコンポーネント)
    • 公式の対応プログラムは以下の通り
      • Visual C++
      • Visual Basic
      • VB Script(WSH)
      • VB Script(for IE)
      • Visual Basic .NET
      • Visual C#

公式で対応していなかったがPythonから印刷を試みる

環境

  • windows10 Home
  • Python3(32bit) *後述
  • b-PAC SDK Ver.3.1/3.2(32bit版) *後述
  • ラベルプリンタ(TD4000)

基本

PyWin32からCOMコンポーネントを叩く

import win32com.client
doc = win32com.client.Dispatch('bpac.Document')
doc.Open(r"/your/directory/path/template.lbx")
doc.GetObject('object_name').text = 'python'

doc.StartPrint('hoge', 0x0)
doc.PrintOut(1, 0x0)
doc.EndPrint

0x0は公式のAPIリファレンスを見れば分かりますが,bpoDefaultです。

ハマったところ

versionとbitの組み合わせでハマりました

公式注意書き

1) b-PAC 3.1以降の“32bit版”か“64bit版”かの選択については、利用されるアプリケーションの≪稼働 bit版≫と合わせてください。
 Winodws OSが“64bit版”でも、アプリケーションが“64bit版”ではないケースがある為、ご注意ください。

≪例 ≫ Windows 10:64bit版のOS環境で、Microsoft Excel を利用アプリケーションとする場合、下記の組合せになります。
  A) Excelが“32bit版”の場合 ⇒ b-PACは“32bit版”
  B) Excelが“64bit版”の場合 ⇒ b-PACは“64bit版”

これを読んで,当初Python3(64bit) + b-PAC(64bit)の環境を構築

しかし,印刷ができない(エラーコード : 11 0x0000000B - - 現在指定されている プリンターには対応していない )

??????

ラベルプリンタの対応表を見てみる

b-PAC SDK Ver.3.1/3.2 (32bit版) b-PAC SDK Ver.3.1/3.2 (64bit版)
TD-4100N -
TD-4000 -
TD-2130N/2130NSA

あーーー,ラベルプリンタがそもそも64bit版に対応していなかった

環境を再構築。

Python3(32bit) + b-PAC(32bit)

Pythonの32bitはcondaで構築
参考

これで無事Pythonからb-PACを用いてラベルプリンタで印刷することができました

5
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
7