Raspberry Piを使ってAirPrintされたものをPDFにする

えー、

  • iPadとかからAirPrintで印刷
  • Raspberry PiがそいつをPDFに変換
  • PCからそのPDFを読み込んでUSBメモリかなんかにコピー
  • コンビニに持って行って紙に出す

というワークフローがあったとして、Raspberry Pi側の設定。私は常識人なので、Raspbian(Lite)を使ってます。そして自宅にプリンタを置くつもりはありません。

やることは、

  • avahi daemonを上げる
  • cups daemonを上げる
  • cups-pdf関連の設定
  • sambaの設定

といったメニュー。

まずはcupsとcups-pdfを設定していく。

  • sudo apt install -y cups cups-pdf python-cups avahi-discover
  • sudo usermod -aG lpadmin pi
  • sudo vi /etc/cups/cupsd.conf
    • 「Listen localhost:631」を「Port 631」に書き換え
    • 全てのLocationに「Allow @Local」を追加
  • sudo mkdir -p /var/spool/PDF
  • sudo chmod 777 /var/spool/PDF
  • sudo vi /etc/cups/cups-pdf.conf
    • Out /var/spool/PDF
    • AnonDirName /var/spool/PDF
    • Label 2
    • Grp lpadmin
    • DecodeHexStrings 1
  • sudo systemctl start cups
  • sudo systemctl enable cups
  • sudo systemctl start avahi-daemon
  • sudo systemctl enable avahi-daemon
  • sudo lpadmin -p CUPS-PDF -v cups-pdf:/ -P /usr/share/ppd/cups-pdf/CUPS-PDF.ppd -E
  • sudo lpadmin -d CUPS-PDF

次に、Sambaの設定。

  • sudo apt install -y samba
  • sudo vi /etc/samba/smb.conf
    • [PDF]
      • path = /var/spool/PDF
      • read only = no
      • browseable = yes
      • guest ok = yes
      • force user = nobody
  • sudo systemctl start smbd
  • sudo systemctl enable smbd
  • sudo systemctl start nmbd
  • sudo systemctl enable nmbd
    • samba.serviceはmaskedというロック状態になっている。これを起動しようとして色々苦労したが、無駄だった

あとは、/var/spool/PDFに入った古いファイルを削除して回る設定をする。Debianなのでtmpwatchではなくsystemdのsystemd-tmpfiles-cleanを使う。

  • sudo vi /etc/tmpfiles.d/cups-pdf.conf
    • d /var/spool/PDF 0777 nobody nogroup 30d –

PC側の設定としては、Sambaで共有しているディレクトリへのリンクを、スタートメニューかデスクトップかクイックメニューか…とにかくどこか分かりやすい場所にリンクを置いとくこと。

あとMacではこれね。.DS_Storeを作らない/読まない設定。

  • defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool TRUE

これでまあまあな状態になった。Raspberry Piなので処理は遅く、多くのページを印刷すると爆発しそうだが、とりあえず数ページなら問題ないみたい。これで当分は大丈夫かな。設定自体はかなりのノーガード。あと謎のファイルcups-pdf_log.pdfができる。

iOSからは、普通に印刷するときにプリンタを選択できる。当然この仮想プリンタはMacやWindowsからも使えますが、まどろっこしいので直接PDFにした方がいいでしょうね。Androidは追加でアプリを入れたら使えましたが、若干怪しいところもあるのでAndroidからの印刷はやめておこう…

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です