打印機(jī)主要用的是蘋果出的cups
程序攘烛,幾乎在所有平臺適配所有打印機(jī)食听。
大概步驟:
- 用USB把打印機(jī)連接到樹莓派上
- 在樹莓派安裝
cups
奸披,并設(shè)置用戶權(quán)限 - 隨便找個網(wǎng)頁打開
http://樹莓派IP:631
- 點(diǎn)最上方的Adnimistartor欄,進(jìn)入管理員設(shè)置,用戶名密碼和樹莓派相同
- 點(diǎn)擊
add printer
添加打印機(jī) - 如果能檢測到打印機(jī)連接依溯,這里就會顯示正確的型號老厌,不需要手動選一大堆
- 一路下一步瘟则,完成添加黎炉。
- 在本機(jī)Mac或任何設(shè)備,在系統(tǒng)設(shè)置里添加網(wǎng)絡(luò)打印機(jī)
- 隨便找個文檔打印
參考:樹莓派搭建網(wǎng)絡(luò)打印機(jī) 掃描儀服務(wù)器
安裝:
sudo apt-get install cups -y
sudo usermod -aG lpadmin $USER
sudo cupsctl --remote-any
# Process to this url to manage printers:
# https://ServerIP:631/
安裝好后訪問地址:https://ServerIP:631
客戶端連接局域網(wǎng)內(nèi)打印機(jī)
Mac上醋拧,在系統(tǒng)設(shè)置里添加打印機(jī)慷嗜,如果是在局域網(wǎng)內(nèi)的,這里會直接顯示出來打印機(jī)丹壕,添加即可庆械。
Windows上,控制面板>設(shè)備和打印機(jī)>添加打印機(jī)>無線打印機(jī)
IOS上菌赖,直接在任何頁面缭乘,點(diǎn)擊Share分享,選擇Print打印琉用,就會自動檢測局域網(wǎng)內(nèi)的打印機(jī)堕绩,然后打印。
IOS上打印PDF等文件邑时,就麻煩一點(diǎn)奴紧,因?yàn)辄c(diǎn)share后沒有print的選項(xiàng)。
目前下載第三方app的支持都不是很好晶丘。幾經(jīng)嘗試后發(fā)現(xiàn)黍氮,唯一的方法是:點(diǎn)擊share -> 保存到iCloud -> 打開iCloud -> share -> 打印。這樣就不用裝第三方軟件了浅浮,只是步驟多了一些沫浆。
客戶端連接遠(yuǎn)程打印機(jī)
默認(rèn)打印機(jī)只能在局域網(wǎng)共享,很多客戶端原生情況下也不支持遠(yuǎn)程打印機(jī)共享滚秩。
一般的解決方案是讓客戶端(手機(jī)或電腦)聯(lián)入打印機(jī)所在的VPN专执,假裝成局域網(wǎng)內(nèi)設(shè)備,再打印叔遂。
問題:樹莓派cups版本太低 不支持一些打印機(jī)
基于樹莓派ARM架構(gòu)的原因他炊,很多軟件都不能一鍵安裝,或者是版本長期不更新已艰。
比如CUPS的現(xiàn)在版本是2.1以上痊末,但是Raspbian上的CUPS版本最高只有1.7。
另外gutenprint
的版本也是很重要的因素哩掺。
基于這幾項(xiàng)凿叠,都很有必要刪除舊版本,然后編譯安裝新版本。(沒有一鍵安裝盒件,當(dāng)然只能自己編譯了)
參考請直接跳到CUPS的Github官網(wǎng):https://github.com/apple/cups
以下編譯不成功蹬碧,編譯很難成功!
# 首先卸載本地的舊版本
$ sudo apt-get remove --purge cups
# 安裝編譯所需依賴
sudo apt-get install autoconf build-essential libavahi-client-dev \
libgnutls28-dev libkrb5-dev libnss-mdns libpam-dev \
libsystemd-dev libusb-1.0-0-dev zlib1g-dev -y
# 下載源文件
git clone https://github.com/apple/cups.git
# 自動配置
cd cups
./configure
# 如果沒有錯誤產(chǎn)生炒刁,則開始編譯
make
遇到編譯錯誤:
Making all in cups...
Compiling tls.c...
In file included from tls.c:39:0:
tls-gnutls.c: In function ‘httpCredentialsAreValidForName’:
tls-gnutls.c:397:56: error: conversion to ‘int’ from ‘unsigned int’ may change the sign of the result [-Werror=sign-conversion]
if (!gnutls_x509_crl_get_crt_serial(tls_crl, (unsigned)i, rserial, &rserial_size, NULL) && cserial_size == rserial_size && !memcmp(cserial, rserial, rserial_size))
^
In file included from tls.c:39:0:
tls-gnutls.c: In function ‘httpLoadCredentials’:
tls-gnutls.c:784:17: error: conversion to ‘int’ from ‘size_t’ may change the sign of the result [-Werror=sign-conversion]
decoded = alloc_data - num_data;
^
tls-gnutls.c: In function ‘http_gnutls_load_crl’:
tls-gnutls.c:1027:14: error: conversion to ‘int’ from ‘size_t’ may change the sign of the result [-Werror=sign-conversion]
decoded = alloc_data - num_data;
^
cc1: all warnings being treated as errors
../Makedefs:266: recipe for target 'tls.o' failed
make[1]: *** [tls.o] Error 1
Makefile:180: recipe for target 'install-data' failed
make: *** [install-data] Error 2
更新:編譯安裝gutenprint
一般都說不用更新cups
恩沽,如果打印機(jī)驅(qū)動不支持或沒有,則安裝更新gutenprint
即可翔始。因?yàn)閏ups本身是沒有驅(qū)動包的罗心,它是依賴gutenprint
集成的各個打印機(jī)驅(qū)動。
首先到gutenprint
官網(wǎng)下載最新版的打印機(jī)驅(qū)動源代碼:http://gimp-print.sourceforge.net/
找到合適版本點(diǎn)擊下載后得到一個tar包城瞎,比如gutenprint-5.2.14.tar.bz2
渤闷。
以下以此包來編譯安裝。
sudo apt-get install automake autopoint openjade jade sgmltools-lite byacc docbook-utils flex libcups2-dev libcupsimage2-dev libusb-dev
wget https://jaist.dl.sourceforge.net/project/gimp-print/gutenprint-5.2/5.2.14/gutenprint-5.2.14.tar.bz2
tar -xvf gutenprint-5.2.14.tar.bz2
cd gutenprint*
sudo ./configure
sudo make clean
sudo make
sudo make install
安裝好后脖镀,不用重啟飒箭,直接到cups網(wǎng)頁里,add printer添加打印機(jī)蜒灰,就能看到比以前多了很多很多種型號弦蹂,這時候應(yīng)該就有你想要的打印機(jī)驅(qū)動了。