SVG印刷対応とメディア情報APIを追加
SVG入力を現在テープ幅に自動フィットして印刷できるようにし、アプリ側が余白計算できるようにテープ幅・DPI・最小送り量を取得するAPIを追加する。 Made-with: Cursor
This commit is contained in:
16
README.md
16
README.md
@@ -11,15 +11,15 @@ Brother P-touch シリーズ向けのラベル印刷用 **C コアライブラ
|
||||
| パス | 内容 |
|
||||
|------|------|
|
||||
| `include/libptouch.h` | 公開 API |
|
||||
| `src/lib/libptouch_*.c` | ライブラリ本体(core / usb / print / status / png) |
|
||||
| `src/lib/libptouch_*.c` | ライブラリ本体(core / usb / print / status / png / svg) |
|
||||
| `src/cli/main.c` | `ptouch-print` エントリ |
|
||||
| `samples/` | 試験用サンプル画像の置き場(PNG 等) |
|
||||
| `samples/` | 試験用サンプル画像の置き場(PNG/SVG 等) |
|
||||
| `ruby/` | Ruby FFI gem(`libptouch`)・コマンド `ptouch-print-png`(PNG のみ)— `ruby/README.md` |
|
||||
| `reference/` | 仕様・参考資料(例: ラスター PDF) |
|
||||
|
||||
## ビルド
|
||||
|
||||
依存: **CMake 3.16+**、**libusb-1.0**、**libpng**(開発パッケージ例: `libusb-1.0-0-dev`、`libpng-dev`)。
|
||||
依存: **CMake 3.16+**、**libusb-1.0**、**libpng**、**librsvg-2.0**(開発パッケージ例: `libusb-1.0-0-dev`、`libpng-dev`、`librsvg2-dev`)。
|
||||
|
||||
```bash
|
||||
cmake -S . -B build
|
||||
@@ -38,7 +38,9 @@ cmake --build build
|
||||
|
||||
## CLI の使い方(雛形)
|
||||
|
||||
**PNG**(拡張子 `.png` または PNG シグネチャ)の場合は幅・高さは画像から取得します。任意で `-t`(0–255)で二値化しきい値を指定できます。
|
||||
**PNG**(拡張子 `.png` または PNG シグネチャ)の場合は幅・高さは画像から取得します。
|
||||
**SVG**(拡張子 `.svg`)の場合は現在装着中テープの印字可能ドット幅に合わせて自動拡大・縮小します(USB 接続が必要)。
|
||||
任意で `-t`(0–255)で二値化しきい値を指定できます。
|
||||
|
||||
**1bit packed ラスター**(行優先、行あたり `ceil(width/8)` バイト × 行数)の場合は `-f` に加え `-w` / `-H` が必須です。
|
||||
|
||||
@@ -48,6 +50,9 @@ cmake --build build
|
||||
# PNG — 検証のみ(USB 不要)
|
||||
./build/ptouch-print -n -f label.png
|
||||
|
||||
# SVG — 幅を現在テープにフィットさせて検証(USB 必要)
|
||||
./build/ptouch-print -n -f label.svg
|
||||
|
||||
# PNG — しきい値を指定
|
||||
./build/ptouch-print -n -f label.png -t 160
|
||||
|
||||
@@ -59,6 +64,7 @@ cmake --build build
|
||||
|
||||
# USB 接続時
|
||||
./build/ptouch-print -f label.png
|
||||
./build/ptouch-print -f label.svg
|
||||
./build/ptouch-print -f sample.raster -w 128 -H 64
|
||||
|
||||
# PT-P750W / PT-P710BT(`lsusb` の PID に合わせる)
|
||||
@@ -74,8 +80,10 @@ cmake --build build
|
||||
- `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_get_current_media_info` — 現在テープ幅(mm)・印字可能幅(dots)・DPI・最小余白(mm)を取得
|
||||
- `libptouch_check_raster` — ラスターバッファの検証のみ
|
||||
- `libptouch_png_file_to_raster` / `libptouch_free_raster` — PNG を 1bit ラスターに変換(libpng)
|
||||
- `libptouch_svg_file_to_raster_fit_current_tape` — SVG を現在テープ幅に合わせて 1bit ラスターへ変換(librsvg + cairo、USB 必須)
|
||||
- `libptouch_print_raster` — ラスター印刷(USB・PDF のコマンド列、内部で転置)
|
||||
- `libptouch_strerror` / `libptouch_last_error` — エラー情報
|
||||
|
||||
|
||||
Reference in New Issue
Block a user