ブラザー製ラベルプリンタ+b‐PACでドハマりしたの巻
前回の記事の続き
やりたいこと詳細は前回の記事を見てもらうとして、C#でWindowsソフト作って、ボタン押すと印刷してほしい、ということ。
b-PACは、全体的に不親切というか、プロフェッショナル向けなのでご注意ください。初歩的な説明はないし、トラブルは自分でなんとかしてというスタンス。勝手に作ってるソフトにまでサポートする義務ないしね。
開発環境
Windows10 (64bit)
Visual studio Express 2017
SDK(b‐PAC)
SDKなどを入手する
SDK及びサンプルコードは、下記から入手。
対応OS、対応プリンタ、対応Editorバージョンを見て選ぶ。
今回のプリンタは「TD-4Tシリーズ」らしい。シリーズ名称が混乱する。
SDKを入手
まずOSから選ぶ。一応もうすぐ移行するWin11対応としておく。
Ver3.4.003もしくは、Ver3.4.008が対応らしい。
注釈を見ると、下記。
というわけで、SDKは、Ver3.4.008に決定。
P-touch Editorバージョンを確認
最新を入手していれば大丈夫だけど確認。Ver3.4対応しているのはP-touch Editor 5.4だそうなので、確認しておく。
サンプルを入手
サンプルあるので、入手してソースを眺める。動作自体はシンプルなので、難しくない。コメントが中国語だったりするのでご注意。
動作イメージを想像
どんな動作イメージなんかなーと想像しておく。
C#プログラムからSDKに印刷内容を渡す
SDKの関数内でゴニョゴニョして、P-touch Editorに渡す
P-touch Editorが、もらった印刷内容をレイアウトに当てはめて、プリンタドライバに渡す
プリンタドライバがラベルプリンタに渡して印刷
ドハマりポイント
さあ、長い前置きが終わり、本編。
サンプルコードをコンパイルすると、ウイルスチェッカーが反応して、exeファイルを自動削除する
どのサンプルだったか忘れたけど、デバッグモードでコンパイルすると、ウイルス類似コードが生成されるようす。公式、それはいかんでしょーと思いつつ、コンパイルはあきらめる。
相互運用型”DocumentClass”を埋め込むことができません
上記でダメだったのでプロジェクトを新規作成、内容をコピペ。
なぜか下記の内容で警告が出る。サンプルコードと同じなのに。
bpac.DocumentClass doc = new DocumentClass();
で、ググってみると書いてる人いたのでとても助かった。
対応
・ソリューションエクスプローラーでbpacを右クリックしてプロパティクリック
・「相互運用型の埋め込み」をFalseに設定
バンドルされていない例外、コンパイルできたが動かない
コンパイルを実行できたので、デバッグモードでテスト印刷すると下記エラーが発生。
これも先人がいたので知恵を拝借。ありがたい(虚空を拝む)
下記のプラットフォームターゲットを変更する。「Any」→「x64」に変更
これで印刷できるようになった。
まとめ
ハマったポイントは大きく2個。おもに先人の知恵により解決できました。めちゃくちゃありがたい。URL先はじっくり読んでおくと非常に勉強になる。
一発作ってしまえば、なんでも使えるいいもんができたなーと思います。
もし、ドハマりした人がいましたら、参考資料としていただけると幸いです。俺の屍を越えてゆけ。まだ死んでない!