[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:13178] PM-670C で印刷する方法



 こんにちは。島田です。

 いろいろ調べてやっとできました。
 Debian 2.0 で、ネットワークにつながった Windows 98 マシンの PM-670C に
印刷する方法です。

 日本語のテキスト・ファイルの印刷に成功しました。画像やグラフ入りの
PostScript ファイルの印刷についてはまだ実験していません。

 試行錯誤で、あちこちのサイトをみながら試行錯誤したので、設定など詰めが
甘いかもしれません。
 おかしな点がありましたら、ご指摘いただけましたら幸いです。


 使ったソフトは次の通りです。

    a2ps.pl-1.43-pre1 : Kazumasa Utashiro さんによる拡張のもの
    smbprint : Hamm の samba(smbfs?)に付属のもの
    gs-ja : Hamm のもの

 ドライバは stcolor を使いました。mjc720 とか epag とかではまりましたが、
stcolor でないとだめでした。

 各種ファイルの記述は文末の通りです。

 printcap の /dev/pm-670c というのは、あらかじめ作っておいたデバイス・ファ
イルです。/dev/null でもいいらしいんですが、gs は排他的にこれをオープンす
るから、/dev/null にしない方が安全らしいです。
 作り方はたしか mknod --mode=666 /dev/pm-670c としたと思います。

 a2ps は、Hamm に付属のものではありません。前述ファイル名で archie すれ
ば見つかると思います。私は
ftp://ftp.iij.ad.jp/pub/IIJ/dist/utashiro/perl/ から get しました。
a2ps.pl-1.43-pre1 を /usr/local/bin にコピーし、これに a2ps の名でシンボ
リック・リンクしておきました。

 日本語テキスト・ファイル(もちろん ASCII も)の印刷の仕方の例は、

    a2ps -p japanese.txt | lpr

などです。私の場合、Debian 2.0 マシンにプリンタは接続していないので、lp 
がネットワーク経由のプリンタ PM-670C にしてあるからです。
 詳しくは a2ps -help でみてください。


-----
/etc/printcap

lp|EPSON PM-670C remote printer at vision
        :lp=/dev/pm-670c
        :sd=/var/spool/lpd/lp
        :af=/var/spool/lpd/lp/lp-acct
        :lf=/var/spool/lpd/lp/lp-errs
        :if=/usr/local/sbin/gsf
        :pl#66
        :pw#80
        :pc#150
        :mx#0
        :sh

-----
/usr/local/sbin/gsf

#!/bin/sh
/usr/bin/gs -q -dSAFER -dNOPAUSE -sPAPERSIZE=a4 -sDEVICE=stcolor \
    -r360x360 -dMicroweave -dUnidirectional -sOutputFile=- - \
  | /usr/local/sbin/smbprint
exit $?

-----
/usr/local/sbin/smbprint

#!/bin/sh -x

# This script is an input filter for printcap printing on a unix machine. It
# uses the smbclient program to print the file to the specified smb-based 
# server and service.
# For example you could have a printcap entry like this
#
# smb:lp=/dev/null:sd=/usr/spool/smb:sh:if=/usr/local/samba/smbprint
#
# which would create a unix printer called "smb" that will print via this 
# script. You will need to create the spool directory /usr/spool/smb with
# appropriate permissions and ownerships for your system.

# Set these to the server and service you wish to print to 
# In this example I have a WfWg PC called "lapland" that has a printer 
# exported called "printer" with no password.

#
# Script further altered by hamiltom@xxxxxxxxxx (Michael Hamilton)
# so that the server, service, and password can be read from 
# a /usr/var/spool/lpd/PRINTNAME/.config file.
#
# In order for this to work the /etc/printcap entry must include an 
# accounting file (af=...):
#
#   cdcolour:\
#	:cm=CD IBM Colorjet on 6th:\
#	:sd=/var/spool/lpd/cdcolour:\
#	:af=/var/spool/lpd/cdcolour/acct:\
#	:if=/usr/local/etc/smbprint:\
#	:mx=0:\
#	:lp=/dev/null:
#
# The /usr/var/spool/lpd/PRINTNAME/.config file should contain:
#   server=PC_SERVER
#   service=PR_SHARENAME
#   password="password"
#
# E.g.
#   server=PAULS_PC
#   service=CJET_371
#   password=""

#
# Debugging log file, change to /dev/null if you like.
#
logfile=/tmp/smb-print.log
# logfile=/dev/null


#
# The last parameter to the filter is the accounting file name.
#   Extract the directory name from the file name.
#   Concat this with /.config to get the config file.
#
eval acct_file=\${$#}
spool_dir=`dirname $acct_file` 
config_file=$spool_dir/.config

# Should read the following variables set in the config file:
#   server
#   service
#   password
eval `cat $config_file`

#
# Some debugging help, change the >> to > if you want to same space.
#
echo "server $server, service $service" >> $logfile

(
# NOTE You may wish to add the line `echo translate' if you want automatic
# CR/LF translation when printing.
#       echo translate
	echo "print -"
	cat
) | /usr/bin/smbclient "\\\\$server\\$service" $password -U $server -N -P >> $logfile


-----
/usr/local/sbin/.config

server=vision
service=pm-670c
password="Naisho"
user=shimaden


----------------------------------------------------------------------
Mail: shimaden@xxxxxxxxxxx
Home Page: http://www.annie.ne.jp/~shimaden/
島田博幸
Hiroyuki Shimada
----------------------------------------------------------------------