0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

CUPS+Gutenprint on Raspberry pi で自宅のプリンタをLANプリンタ化して、ついでにRAMディスクにsmb共有作ってPDF自動プリントをやってみた

Last updated at Posted at 2023-02-19

初めに

この記事は拙作「「Windows印刷鯖で、クライアントだけはドライバレスで印刷できる」ようにする (https://qiita.com/sambar_gamer/items/80f91f619b92400ef647) 」の派生ネタになります。

環境

  1. プリンタ: Canon MP490 (Gutenprintドライバを使用)
  2. Raspberry Pi 3 (部屋にあったやつ。)
    1. OSはRaspberry pi OS(arm64版)を使用

やった事:

  1. Raspberry Pi OSのインストール&初期設定(説明を省略)
  2. CUPSの設定(説明省略)
  3. Sambaの設定
    • 印刷用PDFファイルの仮置き場として、64MBのramddiskを作成・マウントする 1
    • /etc/fstab に tmpfs /share tmpfs defaults,size=64m 0 0 を追記
    • # mount -a を実行して /share をマウント
    • /etc/samba/smb.conf に下記を追記
    [pdfprint_tmp]
    path = /share
    read only = no
    guest ok = no #guestの印刷を許可したい場合はyesにする
    writable = yes
    
    • # systemctl restart smbd.service を実行して、sambaを再起動する
    • crontab に定期的に /share 内のファイルを削除する設定を追加する (推奨。でも説明略。2)
  4. inotifywaitを使用して、「pdfファイルが置かれたら自動でlpコマンドを実行」の設定をする 34
    • [Linux] inotifywaitを使ってファイル更新時に任意のコマンドを実行する (https://qiita.com/sonodar/items/ddeeb98525ef4c03d48e) を参照願います。
    • pdfの自動印刷の場合、watch-file.serviceのExecStart 行は、ExecStart=/usr/local/bin/watch_pdf.sh /share '\.[pP][dD][fF]$' "lp" になる。
    • コメントで「ファイル名に空白が含まれる場合に対応するパッチ」を投稿させていただきました。

参考資料

備考

  1. 常識的な使い方なら、64MBも要らないと思う。

  2. セキュリティ上の要求があるなら、「印刷後直ちに削除」のシェルスクリプトを作って、それを実行する方が良い。

  3. リンク先で言及されてるけど、systemd.path の方が良いのかなぁ。

  4. 試し刷り用の「1枚だけ印刷」用ディレクトリと、「メンバー全員分印刷」用ディレクトリを分ける方法もあったかも。
    (この場合、watch-file.sh と watch-file.service を「試し刷り用」「メンバー全員分」用の2つ作るのが簡単か?)

0
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?