Catalog
  1. 树莓派记6
    1. 打印
      1. 安装
      2. 配置
      3. 测试
      4. 添加打印机
        1. Window 10
        2. Android
    2. 扫描
      1. 安装
      2. 解决sudo问题
      3. 扫描参数
      4. 图形化
      5. PDF
      6. 共享
树莓派记6

树莓派记6

最近又开始折腾吃灰好久的吃灰派了,起因是住家换下来一台打印机就给我了,型号是HP Deskjet 1513。我就想着,只要把它连接到树莓派上那不就是一个网络打印机了吗2333。

打印

打印没什么难的,只要安装CUPS,然后一步步照着做就ok了。

安装

  1. 安装CUPS, sudo apt-get install cups

  2. 把你的用户加到lpadmin组里去,sudo usermod -a -G lpadmin pi。根据Debian Wiki lpadmin组是用来

    Allows members to manage printers and pending jobs sent by other users.

  3. 启动cups的网络打印服务sudo cupsctl --remote-any

配置

  1. 登录cups的网络后台192.168.x.xx:631
  2. CUPS for Administrators -> Adding Printers and Classes 按照指示一步步添加打印机,如果要在其他电脑上打印需要把Share勾上。在过程中如果找不到相对应的PPD文件 (Postscript Printer Description),可以去打印机品牌官网上找该型号的驱动,里面一般有对应的PPD。这里我给出hp的。

测试

  1. 配置完成就可以打印测试页。
  2. 如果测试也没有打印成功可以去查看一下日志sudo cat /var/log/cups/error_log
  3. 如果错误是 no such file /usr/lib/cups/filter/hpcups之类的,请确保安装sudo apt-get install printer-driver-hpcupssudo apt-get install hplip

添加打印机

Window 10

控制面板中添加打印机很容易就可以找到我们的打印机。如果找不到可以手动添加打印机192.168.x.xx:631/printers/你在CUPS中设置的打印机的名字

Android

类似于电脑的手动添加,在设置里添加打印机。

扫描

相比起打印扫描花费了我更多的时间来调试,因为坑更多。

安装

和打印一样,我们也使用开源的软件SANE来实现

  1. 安装SANE sudo apt-get install sane
  2. sudo sane-find-scanner查找你的扫描仪
  3. scanimage -L测试扫描仪是否连接成功
  4. 如果成功了就可以直接scanimage --format=png > test.png扫描

是不是觉得很简单,但往往事与愿违。我卡在了第3步。不管怎样,我死活找不到设备,直到我尝试了sudo scanimage -L这才扫描到了设备。但是我总不能每次都用管理员权限扫描吧,Google了一会找到了解决方法,我不是很懂为什么,但是还是说一下。

如果你连sudo权限下都扫描不到,建议去SANE官网查询一下扫描仪型号是否支持。

解决sudo问题

  1. 把saned用户添加进lp组sudo adduser saned lp

  2. 把从sudo sane-find-scanner获得的<vendor ID> and<product ID>记下来

  3. 修改文件/etc/udev/rules.d/55-libsane.rules(如果没有就创建),添加

    SYSFS{idVendor}=="04b8", MODE="0666", GROUP="scanner", ENV{libsane_matched}="yes"

    其中的04b8就是你的vendor ID但是没有前面的0x

  4. 改完重启,再输入测试scanimage -L

扫描参数

输入scanimage --help -d 'device name from scanimage -L'查看打印机支持那些参数比如说--resolution--color之类的。

图形化

有些人不习惯CLI应用的话,可以安装带GUI的扫描程序xsane

PDF

如果不指定格式 scanimage 会默认扫描成pnm格式。这玩意我听都没听过。如果想要pdf的话可以安装软件ImageMagickpnm转成pdf

  1. sudo apt-get install imagemagick
  2. convert xxx.pnm xxx.pdf

这个不止可以转换pnm,png,jpeg等等都可以相互转换,总之是一款很强大的图片处理软件。

这里我给出我用的脚本 scan.sh output.pdf

#!/bin/bash
set -e
DIR=`mktemp -d`
CUR=$PWD
cd $DIR
scanimage --resolution 300 > temp.pnm
convert *.pnm $CUR/$1

共享

SANE也是支持共享的,但是我懒得弄了,就直接把扫描的输出目录放到一个Samba共享的文件夹底下了。

Author: Peter Duan
Link: https://peter-duan.github.io/hexo/2021/08/02/raspberrypi-6/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.

Comment