此儲存庫包含一個印表機應用程序,用於在 HP HPLIP 驅動程式套件支援的 HP 和 Apollo 印表機上進行列印。
它使用 PAPPL 支援來自多個作業系統的 IPP 列印。此外,它還使用cups-filters 2.x(libcupsfilters、libppd中的過濾器函數)和pappl-retrofit(在印表機應用程式中封裝經典CUPS驅動程式)的資源。這項工作(或現在的 pappl-retrofit 的程式碼)源自 hp-printer-app。
印表機驅動程式本身以及與印表機硬體通訊的軟體取自 HPLIP(HP Linux 成像和列印)驅動程式套件,以及有關支援的印表機型號及其功能的資訊。
歡迎您的貢獻。請發布問題並拉取請求。
注意:HPLIP 由 HP 積極維護,他們不斷添加最新的印表機型號並使軟體適應新的環境/Linux 發行版。因此,如果 HP 將 HPLIP 轉變為印表機應用程式或至少提供它作為經典 CUPS/SANE 驅動程式的替代方案,這也是正確的方法。特別是,他們應該創建一個本機印表機應用程序,這意味著它在內部不使用 PPD、CUPS 過濾器和 CUPS 後端。此外,它們的實用程式需要獨立於 CUPS。
對於 PostScript 印表機,您還可以使用 PostScript 印表機應用程序,特別是如果您已經為某些非 HP 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 印表機並且喜歡支援遠端查詢印表機附件配置而不是同時列印和掃描,則也可以使用 CUPS 的 USB 和網路印表機標準後端。
如果您有不尋常的系統配置或個人防火牆,HP 後端可能無法發現您的印表機。同樣在這種情況下,標準後端(包括與主機名稱/IP 欄位結合的完全手動「網路印表機」條目)可能會有所幫助。
使用CUPS 取代PAPPL 的標準後端為USB 印表機提供了奇怪的解決方法,這些印表機具有正在使用的相容性問題(並且是可編輯的),並且除了套接字之外,輸出還可以通過IPP、IPPS (加密!)和LPD 傳送到印表機(通常連接埠 9100)。可以設定 SNMP 後端(社群、位址範圍)。
要在非 PostScript 印表機上列印的 PWG Raster、Apple Raster 或影像輸入資料不會轉換為 PostScript 或 PDF,它只會轉換/縮放到所需的色彩空間和分辨率,然後送入hpcups
驅動程式。
對於在非 PostScript 印表機上列印,PDF 和 PostScript 輸入資料將使用 Ghostscript 渲染為光柵資料。 Ghostscript 也用於將 PDF 轉換為 PostScript 印表機的 PostScript。
有關受支援的印表機型號及其功能的資訊是根據 HPLIP 中包含的 PPD 檔案。它們作為壓縮存檔打包在 Snap 中。
標準作業 IPP 屬性會對應到最適合它們的驅動程式選項設置,以便使用者可以從僅支援標準 IPP 屬性且無法擷取 PPD 選項的任何類型的用戶端(例如電話或 IoT 裝置)進行列印。紙盒、介質尺寸、媒體類型和雙面列印可以輕鬆映射,但當涉及顏色和品質時,它會變得更加複雜,因為 PPD 文件中的相關選項差異很大。在這裡,我們使用一種演算法,可以自動(想要手動編輯約 3000 個 PPD 檔案來完成作業)為print-color-mode
( color
/ monochrome
)、 print-quality
( draft
/ normal
的每種組合找到正確的選項設定集/ high
),以及目前印表機 PPD 中的print-content-optimize
( auto
/ photo
/ graphics
/ text
/ text-and-graphics
)。因此,您可以輕鬆獲得印表機的全部品質或速度,而無需處理特定於印表機的選項設定(仍可透過 Web 管理介面存取原始選項)。
HPLIP 印表機應用程式的Snap 從Debian 的打包儲存庫而不是直接從HP 取得HPLIP 的原始碼,因為Debian 的軟體包有約80 個修復bug 的補丁,這些bug 已報告給HP,但上游未採用該補丁。因此,使用 Snap 用戶應該獲得與使用 Debian 軟體包相同的可靠性和品質體驗。
支援透過 Web 介面中的附加頁面下載 HPLIP 的專有外掛程式。這增加了對某些雷射印表機的支持,這些印表機每次打開時都需要加載韌體或使用某些專有的列印資料格式。這在 Snap 和印表機應用程式的經典安裝中都有效(必須以 root 身份運行,否則只能檢查插件的狀態)。
支援在 HP 多功能印表機上進行掃描。這需要 PAPPL 中的掃描支援(在 GSoC 2021 中取得了良好進展)。
PDF 測試頁,例如使用bannertopdf 過濾器產生的。
供應商選項的人類可讀字串(需要 PAPPL 的支援:問題 #58:本地化支援)
國際化/在地化(需要 PAPPL 的支援:問題 #58:在地化支援)
透過 ps_status() 函數檢查 SNMP 墨水量(需要 PAPPL 的支援:問題 #83:CUPS 透過後端進行 IPP 和 SNMP 墨水量輪詢,PAPPL 應該具有這方面的功能)
cups-filters 的構建選項,無需 libqpdf 和/或 libppd 即可構建,前者將允許創建此印表機應用程式的快照,而無需下載和構建 QPDF
要運行並使用此印表機應用程序,只需從 Snap Store 安裝它即可:
sudo snap install --edge hplip-printer-app
然後按照以下說明進行設定。
要自行建立 Snap,請在此儲存庫的主目錄中運行
snapcraft snap
這將下載所有需要的套件並建立 HPLIP 印表機應用程式。請注意,PAPPL(即將推出的 1.0)和 cups-filters(即將推出的 2.0)是直接從其 GIT 儲存庫中提取的,因為還沒有合適的版本。這也可能導致該印表機應用程式突然不再建置。
安裝產生的 Snap 運行
sudo snap install --dangerous hplip-printer-app_1.0_amd64.snap
印表機應用程式將作為伺服器守護程式自動啟動。
進入網頁介面
http://localhost:8000/
使用 Web 介面新增印表機。提供名稱,選擇發現的印表機,然後選擇品牌和型號。還可以設定已安裝的附件、已載入的媒體和選項預設值。如果印表機是 PostScript 印表機,則附件配置和選項預設值也經常會從印表機輪詢。
如果您的印表機在網路介面中的條目有「需要專有插件」的備註,則您需要安裝HP的插件。為此,請按一下此印表機項目中的「外掛程式」按鈕或 Web 介面首頁「其他設定」下的「安裝專有外掛程式」按鈕,然後按照螢幕上的指示進行操作。
然後使用以下指令列印 PDF、PostScript、JPEG、Apple Raster 或 PWG Raster 文件
hplip-printer-app FILE
或使用 CUPS 列印,CUPS(以及 cups-browsed)發現使用此印表機應用程式設定的印表機並將其視為無驅動 IPP 印表機(IPP Everywhere 和 AirPrint)。
看
hplip-printer-app --help
以獲得更多選擇。
使用“-o log-level=debug”參數在終端機視窗中進行詳細日誌記錄。
您可以將檔案新增至/var/snap/hplip-printer-app/common/usb/
以取得其他 USB 怪異規則。編輯現有文件僅用於快速測試,因為它們會在 Snap 的每次更新時被替換(以引入新規則)。
您可以編輯/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 (USB) 的hp
後端或 HPLIP(網路)的hp-probe
實用程式發現印表機。對於後者,包含一個名為HP
包裝器腳本,該腳本使該實用程式可以像 CUPS 後端一樣使用(僅限發現模式)。這尤其使得只有 HP 和 Apollo 印表機被發現。不支援其他製造商的印表機。
作業透過hpcups
進行過濾,並透過hp
後端(USB 和網路)發送到印表機。
此印表機應用程式中作為替代方案提供的標準(不是HPLIP)後端是CUPS 後端,而不是PAPPL,這意味著對於USB 印表機,使用CUPS 的USB 怪異解決方法來解決相容性問題,網路印表機也可以與IPP、IPPS 和LPD 協定和 SNMP 印表機發現是可設定的。
如果需要,可以編輯/usr/share/cups/usb
中的 USB Quirk 規則和/etc/cups/snmp.conf
檔。
確保您已安裝 HPLIP,如果您想使用標準後端,請確保 CUPS(至少其後端)。
您還需要 Ghostscript 來列印 PDF 或 PostScript 作業。
若要存取測試頁面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 所有。
它源自 HP PCL 印表機應用程序,這是使用 PAPPL 的光柵印表機應用程式的第一個工作模型。它可以在這裡找到:
https://github.com/michaelrsweet/hp-printer-app
HP PCL 印表機應用程式版權所有 © 2019-2020,作者:Michael R Sweet。
該軟體根據 Apache 許可證版本 2.0 獲得許可,但允許連結到 GPL2/LGPL2 軟體(如舊版本的 CUPS)。有關詳細信息,請參閱文件“許可證”和“通知”。