計算機メモ目次 (目的のページと内容が一致しない場合, 目次から探してください)
CUPS でのテキストファイル印刷環境の変更
問題
環境変数 LANG=ja_JP.EUC-JP の環境で lp コマンドでテキストを
印刷しようとすると, 存在しない /usr/share/cups/charsets/euc-jp を
探してしまい, 結果, 何も出力されずに中断されてしまう.
CUPS についてくる texttops はそもそも日本語に対応していない.
対症療法
LANG=C lp としてプリンタに投げる
日本語テキストについてはユーザが a2ps などで変換する
根本的対策
t2ps の導入(a2ps よりもシンプル)
http://www.uopmu.ees.osakafu-u.ac.jp/~yabu/soft/original/#t2ps
展開して make するだけ. できた t2ps を /usr/local/bin にインストール.
(nkf -e の代わりに /usr/bin/lv -Oej を使用すると万能かも)
cp /usr/share/cups/charsets/utf-8 /usr/share/cups/charsets/euc-jp
mv /usr/lib/cups/filter/texttops /usr/lib/cups/filter/texttops.orig
vi /usr/lib/cups/filter/texttops (下記内容で作成)
chmod +x /usr/lib/cups/filter/texttops
新たな texttops の中身
#!/bin/bash
# CUPS filter to convert text files to postscripts
PATH=/usr/local/bin:/usr/bin
n=0
while [ $# -gt 1 ]
do
n=$(($n + 1))
if [ $n = 1 ]; then
jobid="$1"
elif [ $n = 2 ]; then
user="$1"
elif [ $n = 3 ]; then
title="$1"
elif [ $n = 4 ]; then
copies="$1"
elif [ "x$option" = "x" ]; then
option="$1"
else
option="$option $1"
fi
shift
done
fn="$1"
# Call t2ps with output to stdout
# Here it does not use arguments other than filename
t2ps -c 80 -n 0 -l t1 "$fn"
計算機メモ目次 (目的のページと内容が一致しない場合, 目次から探してください)