1st version
This commit is contained in:
96
README.md
96
README.md
@@ -0,0 +1,96 @@
|
||||
# ptouch_label
|
||||
|
||||
**バージョン 1.0.0**(初回リリース)
|
||||
|
||||
Brother P-touch シリーズ向けのラベル印刷用 **C コアライブラリ(libptouch)** と、動作確認用 **CLI(`ptouch-print`)** のリポジトリです。
|
||||
|
||||
保有機種: **PT-P900W**(USB・ラスターコマンド)。
|
||||
|
||||
## レイアウト
|
||||
|
||||
| パス | 内容 |
|
||||
|------|------|
|
||||
| `include/libptouch.h` | 公開 API |
|
||||
| `src/libptouch.c` | ライブラリ本体(スタブ) |
|
||||
| `src/cli/main.c` | `ptouch-print` エントリ |
|
||||
| `samples/` | 試験用サンプル画像の置き場(PNG 等) |
|
||||
| `reference/` | 仕様・参考資料(例: ラスター PDF) |
|
||||
|
||||
## ビルド
|
||||
|
||||
依存: **CMake 3.16+**、**libusb-1.0**、**libpng**(開発パッケージ例: `libusb-1.0-0-dev`、`libpng-dev`)。
|
||||
|
||||
```bash
|
||||
cmake -S . -B build
|
||||
cmake --build build
|
||||
```
|
||||
|
||||
成果物(`build/` 以下):
|
||||
|
||||
- `libptouch.a` — 静的ライブラリ
|
||||
- `ptouch-print` — CLI
|
||||
|
||||
## CLI の使い方(雛形)
|
||||
|
||||
**PNG**(拡張子 `.png` または PNG シグネチャ)の場合は幅・高さは画像から取得します。任意で `-t`(0–255)で二値化しきい値を指定できます。
|
||||
|
||||
**1bit packed ラスター**(行優先、行あたり `ceil(width/8)` バイト × 行数)の場合は `-f` に加え `-w` / `-H` が必須です。
|
||||
|
||||
印刷時、`libptouch_print_raster` は内部でラスターを**転置**してから送ります(`-T` / `-M` などのオプションはありません。鏡像のみの変換は行いません)。
|
||||
|
||||
```bash
|
||||
# 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_STRING`(`libptouch_version.h`、CMake の `project(VERSION …)` と同期)
|
||||
- `libptouch_create` / `libptouch_destroy` — コンテキスト
|
||||
- `libptouch_open_usb` / `libptouch_open_usb_vid_pid` / `libptouch_close` — USB(libusb・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/PID**(`lsusb` 等)を調べ、`libptouch_open_usb_vid_pid` に渡すか、既定の PT-P900W なら `libptouch_open_usb` を使います。
|
||||
- ラスターコマンドの詳細は **`reference/` の PDF** および Brother 公開資料に沿って `src/libptouch.c` に実装してください。
|
||||
|
||||
### Ubuntu で sudo なしで USB を開く(udev)
|
||||
|
||||
既定の **04f9:2085**(PT-P900W)向けルールを `udev/99-ptouch-label-brother.rules` に置いています。
|
||||
|
||||
```bash
|
||||
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 を**抜き差し**してください。`groups` に `plugdev` が含まれていれば、`./build/ptouch-print --status` などを sudo なしで実行できます。
|
||||
|
||||
別の Brother 機種(別 PID)のときは、`lsusb` の ID に合わせて同ファイルに行を追加してください。
|
||||
|
||||
## ライセンス
|
||||
|
||||
[MIT License](LICENSE)(`LICENSE` ファイルを参照)。
|
||||
|
||||
Reference in New Issue
Block a user