linux列印驅動適配

2021-10-04 09:28:35 字數 1631 閱讀 8079

國產作業系統適配

cups除錯和可能產生的問題

linux作業系統列印驅動適配。

cups即common unix printing system,即通用unix列印系統,所有linux作業系統,均採用cups進行列印。

cups提供了列印任務所需要的介面和工具。

cups將上層的資料,通過其自帶的轉換工具,例如pdftopdf、gstoraster等轉換為相應的資料格式。cups的轉換步驟是依據ppd檔案中cupsfilter一欄指定的資料格式來轉換的。

上述轉換後的資料(例如raster資料),將作為cupsfilter中指定的filter程式的輸入,繼續轉換為印表機支援的資料格式。

參考資料:

cups過濾器結構圖

[外鏈轉存失敗,源站可能有防盜煉機制,建議將儲存下來直接上傳(img-tquijy7k-1585105550455)(d:/nwt_recv/%e5%ad%99%e5%b8%85/cups%e8%bf%87%e6%bb%a4%e5%99%a8%e7%bb%93%e6%9e%84%e5%9b%be.png)]

cups raster(柵格)資料格式

link

ppd檔案存放在/usr/share/cups/model/下,安裝印表機是,首先會根據印表機url,找到該目錄下對應的ppd檔案。

標準的cups安裝已經攜帶了很多ppd(postscript printer description)。另外,foomatic-filters,gimp -print和hplip已經自帶了很多ppd檔案,cups會自動去制定路徑下檢測他們。

對於linux列印驅動,製造商都會提供乙個ppd檔案,其中包含有關特定印表機型號的所有特定於印表機的資訊:基本印表機功能,例如印表機是否為彩色印表機,字型,postscript級別等,尤其是使用者可調整的選項,例如紙張尺寸,解析度等。

ppd的內容將影響列印配置介面中顯示的列印選項內容。

filter(介面卡),就是我們要開發的列印驅動,它的作用的是將cups的raster資料轉換為印表機支援的列印格式資料。

主要解決國產作業系統環境不穩定、交叉編譯錯誤(缺少相關庫)等問題。

其中列印驅動開發即filter的開發。

filter開發一般基於:

cupsapi介面說明

foomatic原始碼

foomatic-rip是一種通用列印過濾器,可與每個已知的免費軟體印表機後台處理程式一起使用。它具有以下功能:

它將postscript和pdf(以及其他檔案格式)從標準輸入轉換為印表機的本地語言(通常放置在標準輸出中)。

編譯出來的foomatic-rip可識別印表機資料,並進行相應的轉換,然後根據ppd中內容將轉換後的資料再次轉換為ppd指定的內容。

libusb

國產作業系統下,有時會出現usb列印亂碼,具體原因未知。可採用呼叫libusb下的resetusb相關介面規避掉。

修改log等級

vi /etc/cups/cupsd.conf

其中loglevel指定了log的等級,將其改為debug,可輸出所有等級log

檢視log檔案

檢視正常列印時的log:

cat /var/log/cups/access_log

檢視出錯時的log:

cat /var/log/cups/error_log

linux 安裝印表機驅動

1 linux 開源印表機驅動專案 裡面有所支援的印表機驅動。3 安裝並開啟 cups 服務,修改 cups 配置檔案 cupsd.conf 以支援在區域網上從其他電腦上 web 方式管理印表機。4 安裝印表機 5 修改 smb.conf 配置檔案以便共享印表機,客戶端瀏覽印表機並雙擊安裝印表機到本...

鴻蒙適配wifi驅動 1

本文首發於 lhm s notes歡迎關注我的新部落格 一入wifi深似海 使用者態 wpas 適配 首先找到如下目錄,是開源wpas 由於之前看了點wpas的具體實現 知道在linux系統中wpas與核心打交道是通過兩種標準介面,要麼是nl80211介面,要麼是wext wireless exte...

印表機驅動 報錯 正在列印

2 注意 設定埠。開啟控制面板 裝置和印表機,找到對應型號印表機,右鍵選擇 印表機屬性 檢視 埠 選項,預設是選擇lpt1埠,如果是usb轉接線使用usb001之類的埠 如果遇到報錯 正在列印 1 開啟 服務 找到print spooler,停止該服務 2 ctrl r開啟執行,輸入spool,刪除...