Haiku OSでCanon TS8230から印刷してみた!IPP Print Bridge実践編

みなさん、こんにちは。

当サイトではBeOSの流れを汲む絶賛開発中の Haiku OS に関し、定期的に検証記事をご紹介しています。半分私の趣味みたいなものですが、マイナーOSに目がないのです。

ところで、Haiku OSのようなマイナーで尖ったOSを使っていると、地味に困るのが「印刷環境」です。

昨今はペーパーレス化が進んで紙に印刷する機会こそ減っているものの、確定申告の書類や役所の提出物など、「どうしても今すぐ印刷したい!」という場面は未だにあります。しかし、プリンタードライバーはメーカーやOSごとにバラバラ。当然マイナーOSにメーカーが対応しているはずもなく、全くのゼロから印刷環境を構築するのは、正直かなりの苦行です。

ところが現代は素晴らしい時代です。プリント環境の標準化(AirPrintなど)が進んだおかげで、Haiku OSであっても「IPP Print Bridge」というツールを使えば、ネットワーク上のAirPrint対応プリンターへ手軽に印刷できるようになりました!(もちろん100%の皮肉を含んでいます。苦行が荒行になったくらいですww)

今回は、手元にあるAirPrint対応プリンター Canon PIXUS TS8230 を使って、Haiku OSから実際に印刷を通すまでの手順(修行の道のり)を詳しくご紹介します。


Haikuの「標準印刷環境」が抱える絶望的な壁

まず現状の共有ですが、Haiku OSに最初から備わっている標準の印刷環境は、現代のプリンターに対してほぼ全滅と言っていい状態です。

具体的には、「印刷実行の手前」で以下のような絶望的な壁にぶつかります。

  • Page Setup(ページ設定)
    → 想定通りに動かない
  • Save as PDF(PDF保存)
    → 用紙サイズが未定義エラーになり動作しない
  • WebPositive(標準ブラウザ)
    → そもそも印刷機能自体が未実装
  • Pe / StyledEdit(テキストエディタ)
    → 印刷ダイアログを出すとフリーズ・強制終了する
  • CUPS(印刷サーバー)
    → バージョンが古すぎて、現代のトレンドである「AirPrint」や「IPP Everywhere」に非対応

つまり、「Haiku OS単体では、現代のプリンターには1枚たりとも印刷できない」と言っても過言ではないのが実情です。


救世主「IPP Print Bridge」の仕組み

そんな暗黒の印刷環境に光を宿してくれる救世主が、neo67氏の「IPP Print Bridge」です。

このツールは、Haiku OS側の印刷出力をプリンターが理解できる共通言語(image/urf(AirPrint)、application/PCLm、image/jpegなど)に変換し、ネットワーク経由でIPPプリンターへ直接流し込んでくれる「翻訳レイヤー」として機能します。

内部的にはPDFやPostScript、JPEGファイルを受け取り、必要に応じてGhostscriptで変換してプリンターに送信しています。ちなみに、PostScriptやJPEGは用紙サイズ情報を持たないため、サイズを確実に固定して綺麗に印刷したい場合は「PDF」を入力として使うのが一番安定します。

海外のコミュニティではBrotherやHP製のプリンターで動作確認されていますが、要するに「AirPrint対応機」であれば相性は抜群。我が家の Canon TS8230 でもバッチリ動作しました!


IPP Print Bridgeのインストール&初期設定

それでは、さっそく環境を作っていきましょう。

1. 必要な依存パッケージのインストール

IPP Print Bridgeは裏で「Ghostscript」を使用するため、以下のパッケージが必要になります。Python3とGhostscriptをターミナルからサクッと入れましょう。(Ghostscriptは未導入の環境が多いと思います)

pkgman install ghostscript_gpl python3

2. 本体ファイルのインストール

公式サイトからzipファイルをダウンロードして展開します。

ターミナルで展開したフォルダに移動し、インストールスクリプトを実行します。

./install.sh

インストールが完了すると、ファイルは /boot/home/PrintSpool に配置され、Deskbar(デスクバー)の「Anwendungen」に Haiku IPP Print Bridge が追加されます。

Haiku IPP Print Bridge ができる
メニューにHaiku IPP Print Bridge ができる

※すでに古いバージョンを入れていて設定ファイル(config.json)がある場合、上書きされずに保持されます。古いファイルは自動的にデスクトップの Save/PrintSpool-backup-YYYYMMDD-HHMMSS へバックアップされます。

3. プリンターの対応状況チェック

ツールに付属しているPythonスクリプトを使って、自宅のプリンターがURFやPCLmをサポートしているか確認してみましょう。Terminalで以下を実行します(プリンターのIPアドレスはご自身の環境に合わせて書き換えてください)。

/boot/home/PrintSpool/tools/check_ipp_printer.py ipp://192.168.X.X:631/ipp/print

私のTS8230では、見事に以下の合格通知が返ってきました!

RESULT: OK – this printer reports image/urf and image/jpeg support over IPP. Recommended first test: image/urf

4. アプリ側へのIPアドレス設定

Deskbarから「Haiku IPP Print Bridge」を起動すると、シンプルなウィンドウが立ち上がります。

Haiku IPP Print Bridge
Haiku IPP Print Bridge

メニューの [Printer] ➔ [Edit active profile…] をクリックし、開いたウィンドウでプリンターの固定IPアドレスを入力します。WindowsやMacのように自動検出はしてくれないので、ここは漢(おとこ)の手動設定が必要です。

IPアドレスを手動設定
IPアドレスを手動設定

安定したPDF作成には「LibreOffice」が必須!

先述の通り、IPP Print Bridgeで安定して印刷するには「正しいPDFファイル」を用意する必要があります。しかし、Haiku標準のPDFプリンタ機能は用紙設定が壊れていて使い物になりません……。

そこで色々と試行錯誤した結果、現状唯一の解として浮上したのが「LibreOfficeの『Export as PDF(PDFとしてエクスポート)』機能」です。

LibreOfficeのPDF出力機能を使えば、

  • 用紙サイズがしっかり A4 に固定される
  • 日本語フォントも問題なくドキュメント内に埋め込まれる
  • Haiku OS側のバグった印刷APIを一切経由しないため、動作が超安定する

という完璧な挙動を示してくれます。ブラウザ(WebPositive)で見ているWebページを印刷したい時も、一度テキストや画像をLibreOffice Writerにコピペで貼り付けてからPDF化するのが一番の近道です。


実際の印刷手順(ワークフロー)

環境が整ったら、以下のステップで印刷を行います。

  1. LibreOfficeで文書を作成
    印刷したい内容をWriterやImpressで作成・コピペ配置します
  2. [File] ➔ [Export as PDF…] で書き出し
    特に用紙指定をせずとも、デフォルトで綺麗なA4サイズのPDFが出来上がります
    (ただし、環境によってサイズが変わる可能性があります。このあたり、用紙サイズの指定ができないので未検証です)
  3. IPP Print Bridgeを起動
    ウィンドウ内の「Enqueue file」ボタンを押し、PDFファイルを選択します
  4. 作成したPDFを選択
    Bridgeが自動的にPDFを解析し、URF/PCLmデータに変換してプリンターへ送信します
  5. プリンター側で印刷開始!
    TS8230がデータを読み込んだ瞬間、小気味よい音を立てて印刷がスタートします!

おまけ – LibreOfficeのメニューが文字化けする場合の対策

Haiku OSに日本語版のLibreOfficeを導入すると、メニューバーやサイドバーの文字が「□□□」のように文字化けしてしまうケースがあります。

libreofficeのメニューが文字化け
LibreOfficeのメニューが文字化け

この現象が発生した場合は、HaikuのPreferences → 外観設定にある「フォント」を開き、システムフォントを Noto Sans CJK JP などの日本語対応フォントに変更してみてください。

Noto Sans CJK JP に変更
Noto Sans CJK JP に変更

もしシステムに日本語フォント自体が入っていない場合は、あらかじめHaikuDepotなどから noto_fonts_cjk などのパッケージを追加インストールしておきましょう。これでメニューもすっきり綺麗に表示されるようになります。

日本語が表示された
日本語が表示された

諦めなければマイナーOSでも印刷はできる!

今回の検証結果をまとめるとこんな感じです。

  • Haikuの標準印刷機能はほぼ全滅だけど、絶望しなくて大丈夫
  • IPP Print Bridge が、現代のプリンターへの架け橋(翻訳機)になってくれる
  • 印刷元データは LibreOfficeで生成したPDF を使うのが大正解
  • Canon PIXUS TS8230(AirPrint対応機)での動作をしっかり確認!

標準印刷機能が動かないと知った時は一瞬目の前が真っ暗になりましたが、AirPrintという共通規格と、有志の開発した素晴らしいツールのおかげで、Haiku OSの実用性がまた少し高まりました。眠っているAirPrint対応プリンターがお手元にある方は、ぜひロマン溢れるHaiku OSからの印刷にチャレンジしてみてください!

本日も最後までお読みいただきありがとうございました。

それでは、よいHaiku OSライフを!

カテゴリ: その他, ハードウェア

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

上部へスクロール