概要
pretix 1.8で導入された Shipping管理機能 の解説 高品質なチケット印刷のための 専用プリンタとLinux用ドライバ 開発経緯 CUPS用フィルタと PPDファイル 作成手順 PythonとPillowを用いた 画像変換・FGL出力 の実装概要 pretixの自動印刷ツールや サポート情報 の案内
pretix Shipping管理とチケット印刷の新機能
-
pretix HostedおよびEnterpriseエディションで Shipping管理機能 を新規導入
-
チケットを PDFダウンロードではなく郵送 で送付する運用をサポート
-
ギフト包装や記念品としての用途に適した 高品質チケット印刷 需要への対応
-
必要機材: サーマルチケットプリンタ と専用チケット用紙
- BOCA LemurとPractical Automation uITL+2003CFの 2種プリンタを比較検証
- 印刷品質はほぼ同等
- uITL+は ネットワーク端子非搭載 だが、 小型金属筐体・低価格 が魅力
- BOCAは多OS対応ドライバ提供、uITL+は Windows専用ドライバのみ
- 両機とも FGL(Friendly Ghost Language) 対応
- BOCA LemurとPractical Automation uITL+2003CFの 2種プリンタを比較検証
Linux用チケットプリンタドライバ自作の経緯
- BOCAドライバはライセンス上 他社プリンタ利用不可 ・ ソース非公開 ・一部古いOSのみ対応
- uITL+を Linuxで利用するには独自ドライバ開発が必要
- UNIX系OSでの印刷は CUPS (Common UNIX Printing System)を利用
- CUPSは標準でFGL非対応
- 必要な作業:
- CUPSフィルタ (ラスタ画像→FGL変換プログラム)作成
- PPDファイル (プリンタ定義ファイル)作成
CUPSフィルタ(rastertofgl)の実装ポイント
- Python を選択(クロスコンパイル不要・開発効率重視)
- CUPS Raster Format v3の読み込み
- structモジュール でバイナリデータをパース
- 各ページの画像データ・メタ情報を namedtuple で管理
- 画像処理部分は Pillow を利用
- CUPSはグレースケール画像を送信、プリンタは 白黒のみ対応
- ディザ処理 で階調表現を維持
- チケットは 横向き印刷 前提で画像回転
- FGL形式でのデータ送信
- 8ラインごとに1バイトへ変換し、 <RCy,x><Gnn> コマンドで送信
- 最後に カット制御コマンド(<p>または<q>) を付加
PPDファイル(プリンタ定義)の作成方法
- CUPS付属の ppdcツール とDRVファイルで記述効率化
- プリンタ名・フィルタ指定・DPI・カラーモデルを記述
- カッター動作オプション (切断しない/ジョブ毎/チケット毎)を選択可能
- 対応用紙サイズ を複数定義(例:8x3.25インチなど)
動作検証・導入手順
- サンプルラスタデータを cat sample.raster | ./rastertofgl > /dev/usb/lp1 でテスト
- フィルタ・PPDを正しいディレクトリに設置しCUPS経由で利用可能
- Arch Linux・Debian向けパッケージ を用意
- GitHubでソースコード公開、今後の改善余地あり(GTK系PDFビューアからの印刷時の不具合等)
pretix Shipping機能・サポート案内
- pretixの Shipping機能 ・自動印刷ツールの利用推奨
- チケットプリンタ・用紙の販売サポート も実施
- 購入・詳細問い合わせは sales@pretix.eu まで