見出し画像

ブラザー製ラベルプリンタ+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が対応らしい。

TD-4Tシリーズの対応表

注釈を見ると、下記。

TD4Tシリーズは、Ver3.4.008以降対応です

というわけで、SDKは、Ver3.4.008に決定。

P-touch Editorバージョンを確認

最新を入手していれば大丈夫だけど確認。Ver3.4対応しているのはP-touch Editor 5.4だそうなので、確認しておく。

サンプルを入手

サンプルあるので、入手してソースを眺める。動作自体はシンプルなので、難しくない。コメントが中国語だったりするのでご注意。

動作イメージを想像

どんな動作イメージなんかなーと想像しておく。

  1. C#プログラムからSDKに印刷内容を渡す

  2. SDKの関数内でゴニョゴニョして、P-touch Editorに渡す

  3. P-touch Editorが、もらった印刷内容をレイアウトに当てはめて、プリンタドライバに渡す

  4. プリンタドライバがラベルプリンタに渡して印刷

ドハマりポイント

さあ、長い前置きが終わり、本編。

サンプルコードをコンパイルすると、ウイルスチェッカーが反応して、exeファイルを自動削除する

どのサンプルだったか忘れたけど、デバッグモードでコンパイルすると、ウイルス類似コードが生成されるようす。公式、それはいかんでしょーと思いつつ、コンパイルはあきらめる。

相互運用型”DocumentClass”を埋め込むことができません

上記でダメだったのでプロジェクトを新規作成、内容をコピペ。
なぜか下記の内容で警告が出る。サンプルコードと同じなのに。

bpac.DocumentClass doc = new DocumentClass();

で、ググってみると書いてる人いたのでとても助かった。

対応

・ソリューションエクスプローラーでbpacを右クリックしてプロパティクリック
・「相互運用型の埋め込み」をFalseに設定

bpacのプロパティ 相互運用型の埋め込み
設定したら赤い波線が消えました

バンドルされていない例外、コンパイルできたが動かない

コンパイルを実行できたので、デバッグモードでテスト印刷すると下記エラーが発生。

バンドルされていない例外

これも先人がいたので知恵を拝借。ありがたい(虚空を拝む)

下記のプラットフォームターゲットを変更する。「Any」→「x64」に変更

プラットフォームターゲット

これで印刷できるようになった。

まとめ

ハマったポイントは大きく2個。おもに先人の知恵により解決できました。めちゃくちゃありがたい。URL先はじっくり読んでおくと非常に勉強になる。
一発作ってしまえば、なんでも使えるいいもんができたなーと思います。
もし、ドハマりした人がいましたら、参考資料としていただけると幸いです。俺の屍を越えてゆけ。まだ死んでない!

この記事が気に入ったらサポートをしてみませんか?