小泉保昌さんが作成された LIPS III、LIPS IV、LIPS IVc 用の Ghostscript
ドライバである gdevlips4-1.2.0 を改造して gdevlips4-19980330
を作りました。
gdevlips4-19980330 と gdevlips4-1.2.0 との違いは次のようになっています。
・lips3, lips4, lips4c, lbp2030
*上マージンが 63/300 inch (約10.3 mm)であったのを 5 m (lips4c は 8 mm)
にした。
*ページサイズ変更に完全対応した。
*トレイ給紙と自動給紙の切替えに対応した。
*複数部印刷に対応した。
・lips4
*ラスターイメージの圧縮に対応した。
*両面印刷ユニットに対応した。
・lips3
*ラスターイメージの圧縮に対応した。
このドライバは<http://www.bukka.p.chiba-u.ac.jp/~ohmori/>から
取得することができます。
--
大森 紀人
千葉大学 薬学部 薬品物理化学研究室
Norihito Ohmori <ohm...@p.chiba-u.ac.jp> writes:
> *上マージンが 63/300 inch (約10.3 mm)であったのを 5 m (lips4c は 8 mm)
> にした。
*上マージンが 63/300 inch (約10.3 mm)であったのを 5 mm (lips4c は 8 mm)
にした。
大森@千葉大です。
> 小泉保昌さんが作成された LIPS III、LIPS IV、LIPS IVc 用の Ghostscript
> ドライバである gdevlips4-1.2.0 を改造して gdevlips4-19980330
> を作りました。
このドライバーをダウンロードされた方には申し訳ないのですが、
公開したgdevlips4-19980330とgdevlips4-19980331には
致命的なバグがあることを発見しました。
次のパッチを当てるか、
<http://www.bukka.p.chiba-u.ac.jp/~ohmori/gdevlips4-19980331-2.tar.gz>
をダウンロードして下さるようお願いします。
gdevlips4-19980331 用のパッチ
--- gdevlips4.c.old Mon Mar 30 22:34:42 1998
+++ gdevlips4.c Mon Mar 30 22:36:46 1998
@@ -129,7 +129,7 @@
#define lips_device(procs, dname, dpi, color_bits, print_page_copies, manualFeed)\
{ std_device_std_color_full_body(gx_device_lips, &procs, dname,\
(int)((long)(DEFAULT_WIDTH_10THS_A4) * (dpi) / 10),\
- (int)((long)(DEFAULT_WIDTH_10THS_A4) * (dpi) / 10),\
+ (int)((long)(DEFAULT_HEIGHT_10THS_A4) * (dpi) / 10),\
dpi, dpi, color_bits,\
-(5. / MMETER_PER_INCH) * (dpi), -(5. / MMETER_PER_INCH) * (dpi),\
(5. / MMETER_PER_INCH) * 72.0, (5. / MMETER_PER_INCH) * 72.0,\
@@ -688,10 +688,10 @@
else if (width == LIPS_ENVYOU4_HEIGHT && height == LIPS_ENVYOU4_WIDTH)
fprintf(prn_stream, "%s51p", LIPS_CSI); /* EnvYou4 landscape */
else if (width <= height)
- fprintf(prn_stream, "%s80p%d%d", LIPS_CSI, width *10, height *10);
+ fprintf(prn_stream, "%s80;%d;%dp", LIPS_CSI, width *10, height *10);
/* portrait */
else
- fprintf(prn_stream, "%s81p%d%d", LIPS_CSI, height *10, width *10);
+ fprintf(prn_stream, "%s81;%d;%dp", LIPS_CSI, height *10, width *10);
/* landscape */
/* Duplex mode */
gdevlisp4-19980330用のパッチ
--- gdevlips4.c.old Mon Mar 30 14:41:30 1998
+++ gdevlips4.c Mon Mar 30 22:49:51 1998
@@ -130,7 +130,7 @@
#define lips_device(procs, dname, xdpi, ydpi, color_bits, print_page_copies, manualFeed)\
{ std_device_std_color_full_body(gx_device_lips, &procs, dname,\
(int)((long)(DEFAULT_WIDTH_10THS_A4) * (xdpi) / 10),\
- (int)((long)(DEFAULT_WIDTH_10THS_A4) * (ydpi) / 10),\
+ (int)((long)(DEFAULT_HEIGHT_10THS_A4) * (ydpi) / 10),\
xdpi, ydpi, color_bits,\
-(5. / MMETER_PER_INCH) * (xdpi), -(5. / MMETER_PER_INCH) * (ydpi),\
(5. / MMETER_PER_INCH) * 72.0, (5. / MMETER_PER_INCH) * 72.0,\
@@ -657,10 +657,10 @@
else if (width == LIPS_ENVYOU4_HEIGHT && height == LIPS_ENVYOU4_WIDTH)
fprintf(prn_stream, "%s51p", LIPS_CSI); /* EnvYou4 landscape */
else if (width <= height)
- fprintf(prn_stream, "%s80p%d%d", LIPS_CSI, width *10, height *10);
+ fprintf(prn_stream, "%s80;%d;%dp", LIPS_CSI, width *10, height *10);
/* portrait */
else
- fprintf(prn_stream, "%s81p%d%d", LIPS_CSI, height *10, width *10);
+ fprintf(prn_stream, "%s81;%d;%dp", LIPS_CSI, height *10, width *10);
/* landscape */
/* Duplex mode */
> 小泉保昌さんが作成された LIPS III、LIPS IV、LIPS IVc 用の Ghostscript
> ドライバである gdevlips4-1.2.0 を改造して gdevlips4-19980330
> を作りました。
ということですがバージョンアップをしまして、
現在 gdevlips4-19980403となっています。
<http://www.bukka.p.chiba-u.ac.jp/%7Eohmori/gdevlips4-19980403.tar.gz>
から入手して下さい。
このバージョンからは、
<605qpt$f50$1...@kuma.fastnet.or.jp>の記事において伊藤祥晴さんが
投稿した、gdevlips4-1.2.0へのパッチの内容を含んでおります。
# 本人から指摘されるまでこのパッチの存在を知りませんでした。
# 伊藤さんどうもありがとうございます。
具体的には LIPS IV の圧縮方式をバイトランレングス圧縮法から
パックビッツ(TIFF)圧縮法に変更したため不連続なビットが続く場合の
圧縮率が上がり、(gdevlips4-19980330と比較して)使用メモリー量が減りました。
私の作ったドライバではラスターイメージを分割せずに一挙に転送
しているのでプリンタ側の処理が必要以上に遅くならないという
特徴があり、伊藤さんの圧縮法とあわせてかなりデータ量を減らせ、
印刷速度が上がります。
# といっても スピードアップは10~20 % 程度でしょう。
tiger.psの場合の圧縮の比較です。
lips3.dev lips4.dev
gdevlips4-1.2.0 981,588 bytes 3,932,644 bytes
gdevlips4-1.2.0+伊藤パッチ 691,633 bytes 675,354 bytes
gdevlips4-19980403 646,750 bytes 471,936 bytes
--------------------------------------------
また、面白い機能として -sUserName オプションでプリンタのステータス部に
表示するメッセージを動的に変更することができるようになりました。
lpdの印刷システムを使っている場合、次のようなフィルターを
/etc/printcap のインプットフィルターとして用いると、印刷した
ユーザ名を表示することができます。
#!/bin/sh
user=/dev/null
#
# Get username from filter parameters
#
while [ $# != 0 ]
do case "$1" in
-n) user=$2 ; shift ;;
*) ;;
esac
shift
done
gs -q -sDEVICE=lips4 -dSAFER -dNOPAUSE -sUserName=$user -sOutputFile=- -
exit 0