首頁>Linux>source

在我的網路上,我想使用Linux CUPSIPPEverywhere上使用無驅動程式print。 print系統。

我有一些網路print機,该print機仅通過bug即可支援IPP的無驅動程式print.一个不print某些pdf檔案,另一个不print多个副本,依此類推.但是它们都使用其本機PPDprint機驅動程式都能很好地print.因此,我想在網路上提供一个print服務器,该服務器通過自己的print機驅動程式為網路print機提供服務,但在網路上作為每个網路print機的(虛擬?)全功能IPP設備出現。

這通常意味着print服務器正在將無驅動程式IPPprint命令从網路客戶端"轉換"到print機的旧版print命令,因此我在網路上只有IPPEverywhereprint佇列。 預設情况下,CUPS建立一个本地print佇列,该佇列使用IPPEverywhere無驅動程式或通過無驅動程式為print機提供服務 使用其PPD檔案的print機的旧版驅動程式。

┏━━━━━━━━━━━━━┓
┃ localhost   ┃
┃   ┌───────┐ ┃                ┏━━━━━━━━━┓
┃   │ Queue │═╋════════════════┫ Printer ┃
┃   └───────┘ ┃                ┗━━━━━━━━━┛
┗━━━━━━━━━━━━━┛

現在的想法是使print服務器的行為類似於網路上的無驅動程式print機:

┏━━━━━━━━━━━━━┓                ┏━━━━━━━━━━━━━┓
┃ localhost   ┃                ┃ printserver ┃
┃   ┌───────┐ ┃ IPPEverywhere  ┃   ┌───────┐ ┃  legacy PPD driver  ┏━━━━━━━━━┓
┃   │ Queue │═╋════════════════┫   │ Queue │═╋═════════════════════┫ Printer ┃
┃   └───────┘ ┃                ┃   └───────┘ ┃                     ┗━━━━━━━━━┛
┗━━━━━━━━━━━━━┛                ┗━━━━━━━━━━━━━┛

使用旧版驅動程式將print機連線到print服務器没有問题.這是旧的方法(但是將被上遊CUPS版本棄用並删除)。

但是如何找到網路上的print服務器,以便例如可以使用IPPEverywhere連線到我的Android智慧手機並进行print?

最新回復
  • 5月前
    1 #

    有時我只能使用部分解決方案 用於網路上的Linux設備,但不適用於移動設備的通用print解決方案.但是要記錄下来,我会分享.也许社區提供了一些指匯或答案,所以我们可以找到最终的解決方案。

    我认為print機已成功連線,您可以从print服務器进行print:

    printserver ~$ lp -E -d myprinter /usr/share/cups/data/testprint
    

    我使用print機共享来直接訪問print服務器上的佇列.為此,我必须將其配置為預設服務器,而不是 localhost 用於本地print佇列。

    ┏━━━━━━━━━━━━━┓                ┏━━━━━━━━━━━━━┓
    ┃ localhost   ┃                ┃ printserver ┃
    ┃             ┃ IPPEverywhere  ┃   ┌───────┐ ┃  legacy PPD driver  ┏━━━━━━━━━━━┓
    ┃             ┃════════════════╋═══│ Queue │═╋═════════════════════┫ myprinter ┃
    ┃             ┃                ┃   └───────┘ ┃                     ┗━━━━━━━━━━━┛
    ┗━━━━━━━━━━━━━┛                ┗━━━━━━━━━━━━━┛
    

    在安裝了CUPS的print服務器上使用Debian Buster,您必须啟用共享:

    printserver ~$ sudo cupsctl -E --share-printers
    printserver ~$ sudo cupsctl -E   # check settings
    

    在安裝了CUPS的設備上也使用Debian,在 /etc/cups/client.conf中設置預設的print服務器 :

    client ~$ sudo bash -c 'echo "ServerName printserver" >> /etc/cups/client.conf'
    

    這就是我们訪問print機所要做的全部工作.通過以下方法檢查其狀態和選項:

    client ~$ lpstat -E -t
    client ~$ lpoptions -E
    client ~$ lpoptions -E -l
    

    使用最後一條命令,您將找到 lp並非通用的print機特殊選項 ,例如 BRMonoColor 我的彩色print機.本示例將用灰色而不是預設颜色print两张双面纸的副本:

    client ~$ lp -E -d myprinter -n 2 -o fit-to-page -o collate=true -o sides=two-sided-long-edge -o BRMonoColor=Mono ./two-pages.pdf
    

    例如,如果將USBprint機本地連線到客戶端,則可能会出現問题.您不会在 localhost上看到其佇列 .在這種情况下,您始终可以使用環境變數 CUPS_SERVER指定print服務器。 :

    client ~$ CUPS_SERVER=localhost lpstat -E -t
    client ~$ CUPS_SERVER=localhost lp -E ...
    

    References:

      Debian - Printing

      github - IPP Sample Implementations

相似問題

  • bash:在檔案頂部添加两个註釋行
  • rhel:設置Samba以使用windows客戶端的Linux Host与檔案共享