filter ; フィルター作成

次へ

Epson PMA-890 印刷の為の フィルター ps その1

なには ともあれ 雛型 ということで

$ grep if /etc/printcap
...
        :if=/usr/bin/txt-if:\
        :if=/usr/bin/lp-if:\
...

まあ 個々の環境により 異るでしょうが この場合 cannon BJ F360 を 一度 設定していたので まあ 何かできていました そうでなければ

#        :if=/usr/bin/lpf:

がしかし /usr/bin/lpf という ものは無いのです ところが

# find / -name lpf
/usr/sbin/lpf
# file /usr/sbin/lpf
/usr/sbin/lpf: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV),\
for GNU/Linux 2.0.0, dynamically linked (uses shared libs), not stripped

ちょっと扱うには 骨でしょう ということで

lp-if

有るのであれば見てみましょう

# cat /usr/bin/lp-if
#!/bin/sh
#
# PostScript ファイル用のフィルタ
#
WIDTH=$1
LENGTH=$2
INDENT=$3
NAMEFLAG=$4
LOGIN=$5
HOSTFLAG=$6
HOST=$7
ACCT=$8  
#
/usr/bin/gs -q -dNOPAUSE -sDEVICE=bjc800  -sOutputFile=- -

txt-if

これも 有るのであれば見てみましょう

# cat /usr/bin/txt-if
#!/bin/sh
#
# 通常のテキスト用のフィルタ(if)
# これらはlprからifに渡される引数です。
#
WIDTH=$1
LENGTH=$2
INDENT=$3
NAMEFLAG=$4
LOGIN=$5
HOSTFLAG=$6
HOST=$7
ACCT=$8  
#
WIDTH=`echo $1 | awk '{ print substr($1,3) }'`
if [ -z "$WIDTH" -o "$WIDTH" = "0" ]; then WIDTH=80; fi

LENGTH=`echo $2 | awk '{ print substr($1,3) }'`
if [ -z "$LENGTH" ]; then LENGTH=66; fi

INDENT=`echo $3 | awk '{ print substr($1,3) }'`
if [ -z "$INDENT" ]; then INDENT=0; fi

/usr/bin/nkf -e  | /usr/bin/psconv -V$WIDTH-$LENGTH -j | \
/usr/bin/gs -q -dNOPAUSE -sDEVICE=bjc800  -sOutputFile=- -

filterlite

また pipslite を 導入した後で /etc/printcap を 見ると

# written for pipslite
lite|lp:\
    :sd=/var/spool/lpd/lite:\
    :mx#0:\
    :sh:\
    :lp=/var/run/ekplp0:\
    :if=/usr/lib/pipslite/filterlite:
# pipslite  end

の様な 部分が有ります。この場合は ”/usr/lib/pipslite/filterlite” が フィルターに なっているのです。

現状で 理解している事

”pipslite & ”で立ち上げると 印刷が出来るようになっている。 条件 は png ファイルのみの印刷で ps および pdf は 印刷対象外である。

印刷するには ps ファイルを 一度 png に 変換する作業が必要である。

わずか一例 cannon BJ F360 ではあるが ” -sDEVICE=bjc800” は ps ファ イルを プリンター BJ F360 が 印刷できるようにする フィルターの様である。

”/usr/share/pipslite/readme/readmelite.ja” に

5.3.2 オプションの仕様 ・起動モード 書式 -ui n1 パラメータ n1 = X GUIが起動 C コマンドラインで動作 GUIの起動有無を指定します。

の 表現がある

これらから どうにかして

:if=/usr/lib/pipslite/filterlite:

に 対応する ものを 作成出来れば 良いということになります。以下を参考 に試みる事にします。

http://www.linet.gr.jp/~kojima/Plamo/ML/htdocs/200401/msg00206.html
http://www.linet.gr.jp/~kojima/Plamo/ML/htdocs/200401/msg00232.html

にゃんたろう 拝!

2008年11月24日 (月) 21:01:03 JST 作成


次へ

filter ; フィルター作成

Copyright © 2006.-2008. nyantarou All Rights Reserved.