2026-04-12 08:52:54 +09:00
2026-04-12 08:52:54 +09:00
2026-04-12 08:52:54 +09:00
2026-04-12 08:52:54 +09:00
2026-04-12 08:52:54 +09:00
2026-04-12 08:52:54 +09:00
2026-04-12 08:52:54 +09:00
2026-04-12 08:52:54 +09:00
2026-04-12 08:52:54 +09:00
2026-04-12 08:52:54 +09:00
2026-04-12 08:52:54 +09:00

ptouch_label

バージョン 1.0.0(初回リリース)

Brother P-touch シリーズ向けのラベル印刷用 C コアライブラリlibptouch と、動作確認用 CLIptouch-print のリポジトリです。

保有機種: PT-P900WUSB・ラスターコマンド

レイアウト

パス 内容
include/libptouch.h 公開 API
src/libptouch.c ライブラリ本体(スタブ)
src/cli/main.c ptouch-print エントリ
samples/ 試験用サンプル画像の置き場PNG 等)
reference/ 仕様・参考資料(例: ラスター PDF

ビルド

依存: CMake 3.16+libusb-1.0libpng(開発パッケージ例: libusb-1.0-0-devlibpng-dev)。

cmake -S . -B build
cmake --build build

成果物(build/ 以下):

  • libptouch.a — 静的ライブラリ
  • ptouch-print — CLI

CLI の使い方(雛形)

PNG(拡張子 .png または PNG シグネチャ)の場合は幅・高さは画像から取得します。任意で -t0255で二値化しきい値を指定できます。

1bit packed ラスター(行優先、行あたり ceil(width/8) バイト × 行数)の場合は -f に加え -w / -H が必須です。

印刷時、libptouch_print_raster は内部でラスターを転置してから送ります(-T / -M などのオプションはありません。鏡像のみの変換は行いません)。

# PNG — 検証のみUSB 不要)
./build/ptouch-print -n -f label.png

# PNG — しきい値を指定
./build/ptouch-print -n -f label.png -t 160

# 1bit ラスター — 検証のみ
./build/ptouch-print -n -f sample.raster -w 128 -H 64

# プリンタステータステープ幅・種類・色・エラービット等、PDF の 32 バイト応答)
./build/ptouch-print --status

# USB 接続時
./build/ptouch-print -f label.png
./build/ptouch-print -f sample.raster -w 128 -H 64

-n--dry-run)では読み込みと libptouch_check_raster まで実行します。

libptouch API概要

  • バージョン — LIBPTOUCH_VERSION_MAJOR / MINOR / PATCH / LIBPTOUCH_VERSION_STRINGlibptouch_version.h、CMake の project(VERSION …) と同期)
  • libptouch_create / libptouch_destroy — コンテキスト
  • libptouch_open_usb / libptouch_open_usb_vid_pid / libptouch_close — USBlibusb・VID/PID
  • libptouch_get_status / libptouch_status_fprint — ステータス情報リクエストESC i Sの応答
  • libptouch_check_raster — ラスターバッファの検証のみ
  • libptouch_png_file_to_raster / libptouch_free_raster — PNG を 1bit ラスターに変換libpng
  • libptouch_print_raster — ラスター印刷USB・PDF のコマンド列、内部で転置)
  • libptouch_strerror / libptouch_last_error — エラー情報

ラスター形式は include/libptouch.h のコメントに合わせてください。

PT-P900W / Linux でのメモ

  • 接続は libusb-1.0 のみ。機種ごとに VID/PIDlsusb 等)を調べ、libptouch_open_usb_vid_pid に渡すか、既定の PT-P900W なら libptouch_open_usb を使います。
  • ラスターコマンドの詳細は reference/ の PDF および Brother 公開資料に沿って src/libptouch.c に実装してください。

Ubuntu で sudo なしで USB を開くudev

既定の 04f9:2085PT-P900W向けルールを udev/99-ptouch-label-brother.rules に置いています。

sudo cp udev/99-ptouch-label-brother.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules
sudo udevadm trigger
sudo usermod -aG plugdev "$USER"

再ログインするか、端末で newgrp plugdev のあと試すか、USB を抜き差ししてください。groupsplugdev が含まれていれば、./build/ptouch-print --status などを sudo なしで実行できます。

別の Brother 機種(別 PIDのときは、lsusb の ID に合わせて同ファイルに行を追加してください。

ライセンス

MIT LicenseLICENSE ファイルを参照)。

Description
print label with p-touch label printer
Readme MIT 3.3 MiB
Languages
C 67.6%
Ruby 29.5%
CMake 2.9%