CUPS印刷
backendファイルを作成することでcupsを使ってps/pdfファイルを作成可能になる。
PSファイル出力†
/usr/lib/cups/backend/ps
#!/bin/sh # # PSDIRは適宜変更してください。 PSDIR=/tmp FILENAME=receipt.ps if [ $# -eq 0 ]; then echo "direct ps:/ \"Unknown\" \"PS Writing\"" exit 0 fi # #psファイルに変換するとページを束ねることができる。 /usr/bin/pdftops $6 - >> $PSDIR/$FILENAME chmod 666 $PSDIR/$FILENAME exit 0
を作成して
# chmod 755 /usr/lib/cups/backend/ps # rm /usr/lib/cups/backend/ps~ # /etc/init.d/cups restart
http://localhost:631でプリンタの追加
プリンタ名:ps デバイス:PS Writing メーカ名:Raw モデル名:Raw Queue(en)
ORCAの設定
マスタ登録、出力先プリンタ割り当て情報のプリンタ名をpsにする。
ファイル出力先、ファイル名の変更は、PSDIR、FILENAMEを書き換える。
receipt.psが完成するまでかなりの時間がかかる。フォルダーの表示設定を一覧にしてサイズが確定するまで待つ。
$ ps2pdf receipt.ps
とするとreceipt.pdfができあがる。
PDFファイル†
/usr/lib/cups/backend/pdf
#!/bin/sh # PRINTTIME=`date +%b%d-%H%M%S` PDFDIR=/home/ormaster/data/orcaprint # if [ $# -eq 0 ]; then echo "direct pdf:/ \"Unknown\" \"pdf Writing\"" exit 0 fi cat $6 > $PDFDIR/$PRINTTIME.pdf chmod 666 $PDFDIR/$PRINTTIME.pdf exit 0
を作成して
# chmod 755 /usr/lib/cups/backend/pdf # rm /usr/lib/cups/backend/pdf~ # /etc/init.d/cups restart
http://localhost:631でプリンタの追加
プリンタ名:pdf デバイス:pdf Writing メーカ名:Raw モデル名:Raw Queue(en)
ORCAの設定
マスタ登録、出力先プリンタ割り当て情報のプリンタ名をpdfにする。
ファイル出力先の変更は、PDFDIRを書き換える。
PDFファイル(レセプトファイル作成用)†
pdftkを使うとpdfファイルを直接結合できる。
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/928splitpdf.html
# apt-get install pdftk
/usr/lib/cups/backend/pdf
#!/bin/sh # export LANG=C sleep 1s PDFDIR=/home/ormaster/data/orcaprint if [ $# -eq 0 ]; then echo "direct pdf:/ \"Unknown\" \"pdf Writing\"" exit 0 fi cat $6 > $PDFDIR/temp.pdf pdftk $PDFDIR/*.pdf cat output $PDFDIR/out.pdf mv $PDFDIR/out.pdf $PDFDIR/receipt.pdf chmod 666 $PDFDIR/receipt.pdf rm $PDFDIR/temp.pdf exit 0
PDFファイル出力すると同時にプリンタで印刷する†
/usr/lib/cups/backend/pdf
#!/bin/sh # PRINTTIME=`date +%b%d-%H%M%S` PDFDIR=/home/ormaster/data/orcaprint # if [ $# -eq 0 ]; then echo "direct pdf:/ \"Unknown\" \"pdf Writing\"" exit 0 fi cat $6 > $PDFDIR/$PRINTTIME.pdf chmod 666 $PDFDIR/$PRINTTIME.pdf lp -d LBP3920 $6 exit 0
lp -d LBP3920 $6でプリンタ出力、LBP3920はプリンタ名(例)。
PDFファイルを添付ファイルとしてメールすると同時にプリンタで印刷する†
$ sudo apt-get install postfix mailutils
sasl認証が必要なので
$ sudo apt-get install sasl2-bin libsasl2-modules $ sudo nano /etc/default/saslauthd
START=yes に変更してreboot
gmailアカウントを新規取得してpostfixのrelayhostとして利用する。(仮にhogehoge@gmail.com パスワードはabcdefghij)
まずはmailコマンドでメールを送ってみる。 $ sudo nano /etc/postfix/main.cf 編集
relayhost =
を
relayhost = [smtp.gmail.com]:587
に変更する。
末尾に
smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/isp_passwd smtp_sasl_security_options = noanonymous smtp_sasl_mechanism_filter = cram-md5, digest-md5, plain, login smtp_use_tls = yes smtp_tls_CApath = /etc/ssl/certs/Thawte_Premium_Server_CA.pem
を追記する。
$sudo nano /etc/postfix/isp_passwd 新規作成
[smtp.gmail.com]:587 hogehoge@gmail.com:abcdefghij
と記述して
sudo postmap /etc/postfix/isp_passwd
としてisp_passwd.dbを作成する。
$ sudo /etc/init.d/postfix restart
mailコマンドでメールを送信してみる。ルートで
# mail xxxx-xxx@yyyyyy.jp
自分の持っているメアドにメールしてみる。ctrl Dで送信。
root <hogehoge@gmail.com>
からのメールとして届く。
うまく行かない場合、
# mailq
としてみて送信されてないようなら
# postsuper -d ALL
として残骸を削除する。
gmailの設定のアカウントとインポートの名前の所で手持ちのメアドを追加すると
# mail xxxx-xxx@yyyyyy.jp -aFrom:手持ちのメアド
で手持ちのメアドからのメールとして届くようになる。
添付ファイルを送信するのにmailコマンドではなくuuenviewを使うと便利。
$ sudo apt-get install uudeview
でuuenviewがはいる。
/usr/lib/cups/backend/pdfmail
#!/bin/sh # PRINTTIME=`date +%b%d-%H%M%S` if [ $# -eq 0 ]; then echo "direct pdfmail:/ \"Unknown\" \"pdfmail Writing\"" exit 0 fi cat $6 |uuenview -b -f '手持ちのメアド' -m 'xxxx-xxx@yyyyyy.jp' - $PRINTTIME.pdf # # lp -d LBP3920 $6 # exit 0