このリポジトリには、HP の HPLIP ドライバー スイートでサポートされる HP および Apollo プリンターで印刷するためのプリンター アプリケーションが含まれています。
PAPPL を使用して、複数のオペレーティング システムからの IPP 印刷をサポートします。さらに、cups-filters 2.x (libcupsfilters、libppd のフィルター関数) および pappl-retrofit (プリンター アプリケーションでのクラシック CUPS ドライバーのカプセル化) のリソースを使用します。この作業 (または現在の pappl-retrofit のコード) は hp-printer-app から派生しています。
プリンター ドライバー自体およびプリンター ハードウェアと通信するソフトウェアは、HPLIP (HP Linux Imaging and Printing) ドライバー スイートから取得されます。また、サポートされるプリンター モデルとその機能に関する情報も含まれます。
あなたの貢献を歓迎します。問題やプルリクエストを投稿してください。
注: HPLIP は HP によって積極的に保守されており、最新のプリンター モデルを継続的に追加し、ソフトウェアを新しい環境/Linux ディストリビューションに適応させています。したがって、HP が HPLIP をプリンター アプリケーションに変えるか、少なくともこれを従来の CUPS/SANE ドライバーの代替として提供するのが正しい方法になります。特に、ネイティブ プリンタ アプリケーションを作成する必要があります。つまり、内部で PPD、CUPS フィルタ、CUPS バックエンドを使用しないことになります。また、それらのユーティリティは CUPS から独立させる必要があります。
PostScript プリンターの場合、特に HP 以外の PostScript プリンターに既にインストールされている場合は、PostScript プリンター アプリケーションを使用することもできます。
また、お使いのプリンターがドライバーレス IPP プリンター (AirPrint、Mopria、IPP Everywhere、Wi-Fi Direct Print、電話からの印刷) であるかどうかも確認してください。この場合、プリンター アプリケーションはまったく必要ありません。最新の HP プリンターは、最も安価なモデルであっても、ドライバーレスの IPP プリンターです。 USB 専用プリンタでもドライバレス IPP にすることができ、通常は USB 経由でドライバレス IPP を使用できます。このような場合には、まず ipp-usb を試してください。
hpcups
プリンタ ドライバと HPLIP のすべてのプリンタ PPD を提供するプリンタ アプリケーションで、HP および Apollo のほとんどのプリンタでの印刷をサポートします。これにより、写真用紙などの写真を簡単に高品質に印刷できます。 PostScript プリンタで PIN で保護された印刷を行うためのhpps
CUPS フィルタも含まれています。
プリンターも HPLIP で検出されます。 USB プリンターの場合はhp
CUPS バックエンドが使用され、ネットワーク プリンターの場合はhp-probe
ユーティリティ (CUPS バックエンドとして動作するようにスクリプトにカプセル化されています) が使用されます。
プリンターとの通信はhp
CUPS バックエンドによって行われるため、(少なくとも USB の場合) IEEE-1284.4 パケット プロトコル (USB のプロトコル 7/1/3) が使用され、単純なストリーム プロトコル (標準のような) は使用されません。 CUPS および PAPPL バックエンドは使用します)。このようにして、印刷とスキャンを同時に実行したり、少なくとも印刷中にプリンターのステータスを確認したりできるはずです。すべてのプリンタがこのプロトコルをサポートしているわけではありません。サポートしていない場合は、標準のストリーミング プロトコルが使用されます。また、 hp
バックエンドを必要とするその他の特別な機能もサポートされています。 [プリンターの追加] Web インターフェイス ページの [デバイス] で、[HPLIP (HP)] エントリを選択します。
hp
バックエンドではプリンターへの双方向アクセスが許可されていないことに注意してください。 PostScript プリンタをお持ちで、印刷とスキャンを同時に行うのではなく、プリンタのアクセサリ構成のリモート クエリのサポートを希望する場合は、USB およびネットワーク プリンタ用の CUPS の標準バックエンドも利用できます。
異常なシステム構成またはパーソナル ファイアウォールを使用している場合、HP のバックエンドがプリンターを検出できない可能性があります。また、この状況では、ホスト名/IP フィールドと組み合わせた完全手動の「ネットワーク プリンター」エントリなどの標準バックエンドが役立ちます。
PAPPL の標準バックエンドの代わりに CUPS を使用すると、互換性の問題がある USB プリンタが使用されている (編集可能である) という奇妙な回避策が作成され、出力はソケット (通常はポート 9100)。 SNMP バックエンドを構成できます (コミュニティ、アドレス スコープ)。
非 PostScript プリンタで印刷される PWG ラスター、Apple ラスター、または画像入力データは PostScript または PDF に変換されず、必要な色空間と解像度に変換/スケーリングされてからhpcups
ドライバーに供給されるだけです。
非 PostScript プリンタで印刷する場合、PDF および PostScript 入力データは Ghostscript を使用してラスター データにレンダリングされます。 Ghostscript は、PDF を PostScript プリンタ用の PostScript に変換するためにも使用されます。
サポートされているプリンター モデルとその機能に関する情報は、HPLIP に含まれる PPD ファイルに基づいています。これらは、圧縮アーカイブとして Snap にパッケージ化されています。
標準ジョブの IPP 属性は、それらに最適なドライバーのオプション設定にマッピングされるため、ユーザーは、標準の IPP 属性のみをサポートし、PPD オプションを取得できないあらゆる種類のクライアント (電話や IoT デバイスなど) から印刷できます。トレイ、メディア サイズ、メディア タイプ、両面印刷は簡単にマッピングできますが、色と品質となると、関連するオプションが PPD ファイルで大きく異なるため、マッピングはさらに複雑になります。ここでは、 print-color-mode
( color
/ monochrome
)、 print-quality
( draft
/ normal
の組み合わせごとに適切なオプション設定のセットを自動的に見つけるアルゴリズムを使用します (割り当て用に最大 3000 個の PPD ファイルを手動で編集したい人)。 / high
)、および現在のプリンターの PPD のprint-content-optimize
( auto
/ photo
/ graphics
/ text
/ text-and-graphics
)。そのため、プリンター固有のオプション設定を操作することなく、プリンターの品質や速度を最大限に活用することができます (元のオプションには Web 管理インターフェイスから引き続きアクセスできます)。
HPLIP プリンタ アプリケーションのスナップは、HP から直接ではなく、Debian のパッケージ リポジトリから HPLIP のソース コードを取得します。Debian のパッケージには、HP に報告されたバグを修正するパッチが約 80 個含まれていますが、そのパッチは上流で採用されませんでした。したがって、Snap を使用すると、ユーザーは Debian パッケージと同じ信頼性と品質のエクスペリエンスを得ることができます。
Web インターフェイスの追加ページを介した HPLIP 独自のプラグインのダウンロードのサポート。これにより、電源を入れるたびにファームウェアをロードする必要がある、または特定の独自の印刷データ形式を使用する一部のレーザー プリンタのサポートが追加されます。これは、スナップとプリンタ アプリケーションのクラシック インストールの両方で機能します (root として実行する必要があります。それ以外の場合は、プラグインのステータス チェックのみが行われます)。
HP の多機能プリンターでのスキャンのサポート。これには、PAPPL でのスキャン サポートが必要です (GSoC 2021 では大幅に進歩しました)。
PDF テスト ページ。たとえば、bannertopdf フィルターを使用して生成されます。
ベンダー オプションの人間が読める文字列 (PAPPL によるサポートが必要: 問題 #58: ローカリゼーション サポート)
国際化/ローカリゼーション (PAPPL によるサポートが必要: 問題 #58: ローカリゼーションのサポート)
ps_status() 関数による SNMP インク レベル チェック (PAPPL によるサポートが必要: 問題 #83: CUPS はバックエンド経由で IPP および SNMP インク レベル ポーリングを実行します。PAPPL にはこのための機能が必要です)
カップフィルターのビルドオプション。libqpdf および/または libppd なしでビルドします。前者では、QPDF をダウンロードしてビルドしなくても、このプリンター アプリケーションのスナップを作成できます。
このプリンター アプリケーションを実行して使用するには、Snap ストアからインストールするだけです。
sudo snap install --edge hplip-printer-app
次に、以下の手順に従ってセットアップします。
スナップを自分で構築するには、このリポジトリのメイン ディレクトリで次のコマンドを実行します。
snapcraft snap
これにより、必要なパッケージがすべてダウンロードされ、HPLIP プリンター アプリケーションが構築されます。 PAPPL (近日公開予定の 1.0) と Cups-filters (予定日 2.0) は、まだ適切なリリースがないため、GIT リポジトリから直接プルされることに注意してください。これにより、このプリンター アプリケーションが突然ビルドされなくなる可能性もあります。
結果のスナップ実行をインストールするには
sudo snap install --dangerous hplip-printer-app_1.0_amd64.snap
プリンター アプリケーションはサーバー デーモンとして自動的に起動されます。
Webインターフェイスに入る
http://localhost:8000/
Web インターフェイスを使用してプリンターを追加します。名前を入力し、検出されたプリンターを選択して、メーカーとモデルを選択します。また、インストールされているアクセサリ、ロードされているメディア、およびオプションのデフォルトを設定します。プリンタが PostScript プリンタの場合、アクセサリの構成とオプションのデフォルトもプリンタからポーリングされることがよくあります。
Web インターフェイス内のプリンターのエントリに「独自のプラグインが必要」という注記がある場合は、HP のプラグインをインストールする必要があります。このためには、このプリンタ エントリの [プラグイン] ボタンをクリックするか、Web インターフェイスのフロント ページの [その他の設定] にある [独自のプラグインのインストール] ボタンをクリックし、画面の指示に従います。
次に、PDF、PostScript、JPEG、Apple Raster、または PWG Raster ファイルを印刷します。
hplip-printer-app FILE
または、CUPS で印刷します。CUPS (およびカップブラウズ) は、このプリンター アプリケーションでセットアップされたプリンターをドライバーレス IPP プリンター (IPP Everywhere および AirPrint) として検出して扱います。
見る
hplip-printer-app --help
さらなるオプションについては。
ターミナル ウィンドウで詳細なログを記録するには、「-o log-level=debug」引数を使用します。
追加の USB quirk ルールについては、ファイルを/var/snap/hplip-printer-app/common/usb/
に追加できます。既存のファイルは、(新しいルールを導入するため) スナップが更新されるたびに置き換えられるため、簡単なテストの場合にのみ編集してください。
/var/snap/hplip-printer-app/common/cups/snmp.conf
ファイルを編集して、SNMP ネットワーク プリンター検出を構成できます。
また、スナップを行わず、PAPPL、cups-filters 2.x、および pappl-retrofit をシステムにインストールすることなく、「クイック アンド ダーティ」ビルドを実行することもできます。 PAPPL の最新の GIT スナップショット、cups-filters の最新の GIT スナップショット、pappl-retrofit の最新の GIT スナップショット (それぞれのマスター ブランチ) が含まれるディレクトリが必要です。これらはすべてコンパイルする必要があります ( ./autogen.sh; ./configure; make
)。インストールは必要ありません。また、必要なすべてのライブラリのヘッダー ファイルもインストールします (「libcups2-dev」をインストールすると完了します)。
hplip-printer-app.c のあるディレクトリでコマンド ラインを実行します。
gcc -o hplip-printer-app hplip-printer-app.c $PAPPL_SRC/pappl/libpappl.a $CUPS_FILTERS_SRC/.libs/libppd.a $CUPS_FILTERS_SRC/.libs/libcupsfilters.a $PAPPL_RETROFIT_SRC/.libs/libpappl-retrofit.a -ldl -lpthread -lppd -lcups -lavahi-common -lavahi-client -lgnutls -ljpeg -lpng16 -ltiff -lz -lm -lusb-1.0 -lpam -lqpdf -lstdc++ -I. -I$PAPPL_SRC/pappl -I$CUPS_FILTERS_SRC/ppd -I$CUPS_FILTERS_SRC/cupsfilters -I$PAPPL_RETROFIT_SRC/pappl/retrofit -L$CUPS_FILTERS_SRC/.libs/ -L$PAPPL_RETROFIT_SRC/.libs/
Makefile もありますが、これには PAPPL、cups-filters 2.x、および pappl-retrofit をシステムにインストールする必要があります。
走る
./hplip-printer-app --help
スナップされていないバージョンを実行する場合、デフォルトでは、PPD ファイルは次の場所で検索されます。
/usr/share/ppd/
/usr/lib/cups/driver/
/var/lib/hplip-printer-app/ppd/
代わりに、 PPD_PATHS
環境変数を設定して他の場所を検索できます。
PPD_PATHS=/path/to/my/ppds:/my/second/place ./hplip-printer-app server
任意の数のパスをコロンで区切ったリストを変数に入力するだけです。ラッパースクリプトを作成することをお勧めします。
HPLIP のhpcups
ドライバーの PPD ファイルのみが考慮され、他の PPD ファイルは無視されることに注意してください。
プリンターは、HPLIP のhp
バックエンド (USB) または HPLIP のhp-probe
ユーティリティ (ネットワーク) を介してのみ検出されます。後者の場合、ユーティリティを CUPS バックエンドのように使用できるようにするHP
という名前のラッパー スクリプトが含まれています (検出モードのみ)。これにより、特に HP プリンターと Apollo プリンターのみが検出されるようになります。他のメーカーのプリンターはサポートされていません。
ジョブはhpcups
を通じてフィルタリングされ、 hp
バックエンド (USB とネットワークの両方) 経由でプリンターに送信されます。
このプリンタ アプリケーションで代替として提供される標準 (HPLIP ではない) バックエンドは、PAPPL ではなく CUPS のバックエンドです。つまり、USB プリンタの場合は、互換性問題に対する CUPS の USB quirk 回避策が使用され、ネットワーク プリンタは IPP、IPPS、およびLPD プロトコルおよび SNMP プリンター検出は構成可能です。
/usr/share/cups/usb
および/etc/cups/snmp.conf
ファイルの USB Quirk ルールは、必要に応じて編集できます。
HPLIP がインストールされていることを確認し、標準のバックエンド、CUPS (少なくともそのバックエンド) を使用する場合は確認してください。
PDF または PostScript ジョブを印刷するには Ghostscript も必要です。
テスト ページtestpage.ps
にアクセスするには、TESTPAGE_DIR 環境変数を使用します。
TESTPAGE_DIR=`pwd` PPD_PATHS=/path/to/my/ppds:/my/second/place ./hplip-printer-app server
または、テスト ページ (PostScript、PDF、PNG、JPEG、Apple Raster、PWG Raster) を独自に作成する場合:
TESTPAGE=/path/to/my/testpage/my_testpage.ps PPD_PATHS=/path/to/my/ppds:/my/second/place ./hplip-printer-app server
HPLIP プリンター アプリケーションの著作権 © 2020 は Till Kamppeter に帰属します。
これは、PAPPL を使用したラスター プリンター アプリケーションの最初の実用モデルである HP PCL プリンター アプリケーションから派生したものです。ここから入手できます:
https://github.com/michaelrsweet/hp-printer-app
HP PCL プリンター アプリケーションの著作権 © 2019-2020 by Michael R Sweet です。
このソフトウェアは、GPL2/LGPL2 ソフトウェア (古いバージョンの CUPS など) に対するリンクを許可する例外を除いて、Apache ライセンス バージョン 2.0 に基づいてライセンスされています。詳細については、ファイル「LICENSE」および「NOTICE」を参照してください。