始めの言葉

「プリンターから印刷できて当たり前」と、ユーザーからもSIerからも軽視されがちなプリンターの世界ですが、実際にはお困りだったり、思ったような印刷結果が得られないまま我慢してお使いの皆様のために、今までの経験が役立てばと、このブログを立ち上げました。印刷の基本から、応用情報、問題の解決方法を情報発信すると共に、PDF化など、これからどうするかについても、ご相談に乗れれば幸いです。ご質問はコメントでお寄せください。
ラベル レベルE機能 の投稿を表示しています。 すべての投稿を表示
ラベル レベルE機能 の投稿を表示しています。 すべての投稿を表示

2017年4月8日土曜日

IBM 小型レーザー・プリンターの今まで -第6回- "PAGES"まで

"5587-G01" レーザー・プリンターが発表された頃は、日本独自の製品であった"マルチステーション 5550 シリーズ" から、World Wide 標準製品である "PS/2" シリーズの日本語対応版である "PS/55"シリーズに切り替わっていく時代でした。
その移行に対応するために、プリンター側としては、"コンバージド・インターフェイス"と"3バイトECC"に対応しています。
"コンバージド・インターフェイス"と"3バイトECC"については、"プリンターへのデータの流れ - レベルE機能と双方向通信 -"の回をご参照ください。

コンバージド・インターフェイスに対応したプリンターとしては、ドット・プリンターである"5577-G01"が先に発表されています。
ちなみに、"PS/55"では、"PS/2"に対して、日本語フォントをメモリーに内蔵したディスプレイ用のカードを搭載していました。
そして、OS である"J-DOS"は、文字を文字コードとして処理し、画面にはディスプレイ・カードに内蔵した日本語フォントのイメージを表示するという方式を使っています。
ちなみに、"5550 シリーズ"では、"K-DOS"( 漢字 DOS の意味)でしたし、"PS/55" の後の "PC/AT" 互換機では、"DOS/V" となって、共にソフト・フォント(メモリーではなく、ソフトウェアとしてのフォント) となっている点が、大きく異なります。
これは、ちょうどプリンターによる印刷も同じ原理で、J-DOS からは文字コードがプリンターに送られ、プリンターは内蔵しているフォントのイメージを印刷します。
例えば、"5587-G01" プリンターは、240DPI(ドット/インチ)の解像度で、32 x 32 ドット構成の文字を内蔵していましたから、文字コードが送られてくると、32 x 32 ドット構成の文字イメージを印刷します。
この文字が、解像度 180DPI のドット・プリンターが内蔵する 24 x 24 ドット構成の文字と同じ大きさになることは、比例計算すればお分かりになると思います。
"5587-G01" プリンターは、24 x 24 ドット構成の文字、つまりドット・プリンターと同じ文字も内蔵していました。こちらの文字を使うと、ちょうど 3/4 に縮小された文字を印刷することができました。

この当時、"PS/2" から "PS/55" が開発されたように、プリンターの世界でも World Wide 製品を元に日本語対応した製品を開発するという方式が、流行りました。そのレーザー・プリンター版が、"4216-510" プリンターです。
4216 プリンター本体(本来は右に給紙トレイが付く)

"4216" プリンターは、"5587-G01" のプリンター OEM 製造元の会社が開発した、小型のレーザー・プリンターで、接続先のシステムによって、いくかのモデルに分かれます。
それに対して、日本で、"5577互換" の機能(コマンド対応、日本語フォント内蔵)追加を行なったのが、"4216-510" になります。
開発期間の短縮化も求められていたため、"5587-G01" と同じ "3222"互換ではなく、"5577" 互換レベルとしたことは、今から思えば一つの見識だったと思います。
プリンターの機構自体は、小型化を追求した設計となっていて、良いプリンターでしたが、残念ながら対応する用紙サイズが "A4" まででは、国内ではあまり受け入れられませんでした。

一方、その間に、国内の他のレーザー・プリンター・メーカーは、各社独自のコマンド体系を拡充し、それを様々なアプリケーション開発会社に持ち込んで、サポートしてもらってその数を競っていました。そこで、当時のプリンター開発グループでも、各社のコマンドを調査したり、IBM World Wide では標準規格として定義されてきたばかりの "IPDS(Intellient Printer Data Stream)" に習って、"PAGES"(Page printer Advanced Graphics Escape Set)を定義しました。
そして、他社に習って、コマンド解説書を本として準備し、社内のソフトウェア・グループはもちろん、社外のソフトウェア開発会社やユーザーにも情報提供始めました。
"PAGES" のコマンド解説書は、Web でも公開しています。
そして、"PAGES" を装備したプリンターとして始めて発表されたのが、"5587-H01" プリンターです。

2015年6月8日月曜日

プリンターへのデータの流れ - レベルE機能と双方向通信 -

5577系や5400系のインパクト・プリンターのパラレル・インターフェイスには、「コンバージド・モード」と「スタンダード・モード」の2種類があります。ただし、これは5577系のプリンターの場合の言い方で、5400系では前者を「PS/55モード」、後者を「PS/2モード」と呼んでいます。
「コンバージド・モード」とは、IBM 社内では全く日本独自の製品だった「5550シリーズ」から、ワールド・ワイド標準製品である「PS/2シリーズ」を元に日本語対応した「PS/55シリーズ」に切り替わる際に、両方のシステムの規格が異なるパラレル・インターフェイスどちらにも接続できるようにした、プリンターのインターフェイスの規格です。(「コンバージド」は、converged、即ち「統合した」という意味の単語です。)
コンバージド・インターフェイスと「レベルE機能」という言葉には密接な関係があります。
5550 時代や、その後の Windows のドライバー印刷では、インパクト・プリンターの場合、縦24 ドット(24 ビット = 3バイト)の幅の、横 1 行に相当するイメージ・データが送られてきて、プリンターは各ドットのオン/オフに応じて印刷するだけです。そのため、送信されたデータに問題があって、一部のビットのオン/オフが反転したとしても、そのドット(点)の白黒が逆転するだけですから、印刷結果全体には、大きな影響は与えないと判断されていました。しかし、PS/55時代のJ-DOSと呼ばれていたOSからの印刷では、文字データは、Shift-JIS形式の文字コードで送られるので、データ送信の問題によって、文字コードの一部の値に誤りが発生すると、全く他の文字コードになる、つまり全く違った文字を印刷することになり、これは避けなければならないことと考えられました。
そこで、ECC(Error Checking and Correction)、具体的には、プリンターにはデータを3回送信する、受信したプリンターは、3回のデータの内、少なくとも 2 回のデータが一致していれば、正しいデータと判断して印刷するという方式を組み込みました。これが「レベルE機能」と呼ばれるものです。データ量としては3倍になってしまいますが、印刷結果を保証するために考え出された方式です。
また、コンバージド・インターフェイスの機能を活用して、プリンターとシステム間の双方向通信も行っていました。3477等の、所謂「ダム端末(オンライン端末専用機)」や、PS/55上の5250PC(ホット・キーでDOS画面と5250端末画面を切り替えられました。)とパラレル・インターフェイスで接続したプリンターで、用紙切れや用紙ジャム等のプリンターのエラーが発生すると、それはプリンター側から端末を通じてAS/400まで伝わり、"MSGWT"となってユーザーにエラー通知されたものです。
同様に、初めてプリンターを接続した時には、直結型のプリンターを接続した場合と同様に、端末を通じてでも、デバイス(プリンター)として、AS/400上で「自動構成」されました。
5400エミュレーターを取り付けた様子

その後、コンバージド・インターフェイスが復活したのが、「5400エミュレーター」です。5400エミュレーターについては、いずれ詳しくお話しますが、5577系のドット・プリンターをAS/400とTelnet5250EでLAN直結するために作られたオプション製品です。これは、プリンターのパラレル・インターフェイスに取り付けるものですが、AS/400にプリンターの状態を通知するために、「コンバージド・インターフェイス」が活用されました。

これらのことは、AS/400直結型プリンターの場合と同様な、プリンターとAS/400間での双方向通信が実現していたということを表しています。
5400エミュレーター本体