始めの言葉

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

2017年6月25日日曜日

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

ここで、少し脇道に逸れますが、PAGES モードのプリンターにとって外せない話題が、5400エミュレーターII です。
5400エミュレーターII は、前々回の IBM 小型レーザー・プリンターの今まで -第14回- "PAGES"-8 でご紹介した "Infoprint 13x6J" シリーズ 3モデルを発表した後の、2006年10月に発表されました。
5400エミュレーターII 外観

5400エミュレーターIIについては、既に LAN 直結で双方向通信する印刷方式"Telnet5250E" - 第5回 - でご紹介していますので、ここでは簡単な概要のみお話ししたいと思います。

初代 5400 エミュレーターは、 5400 シリーズ・ライン・プリンターと同様に、5577 系のドット・プリンターをTelnet5250E を使って、AS/400 と直接 LAN 接続して使用したいというお客様のご要望に基づいて製品化されたものです。その後、ドット・プリンターでできるのなら、PAGES のレーザー・プリンターでも、Telnet5250E 接続にできるはずというお客様の声に押されて、初期設定によって、レーザー・プリンターも選択できるようになった 5400 エミュレーターII ができました。
技術的な要素の他には営業政策的な意味もあったと思いますが、初代 5400エミュレーターからの移行(改造)はできず、5400エミュレーターII は、別製品として発表されました。
5400エミュレーターII の開発に当たって、一つの山は、プリンターと接続するパラレル・インターフェイスの規格が、ドット・プリンターとレーザー・プリンターでは異なる点にありました。
5400エミュレーターでは、ドット・プリンターに AS/400 からの印刷データを送信するだけでなく、逆に、プリンターから、印刷中とか、用紙切れや用紙ジャムといったエラー状態、といった情報を把握して AS/400 に送信するために、パラレル・インターフェイスの規格の中でも、コンバージド・モードという、正にこの目的にぴったりのインターフェイスの規格を使用していました。(ちょうど、ドット・プリンターをダム端末、即ち、端末専用機に接続する場合と同じです。)
ところが、当時のレーザー・プリンターには既にコンバージド・モードはありません。そのため、5400エミュレーターII では、パラレル・インターフェイスとして標準の IEEE1284 規格に合わせたインターフェイスで分かる範囲で、プリンターの状態を把握することになりました。
その結果、5400エミュレーターII の初期設定を行なう Web ページの画面では、初めにドット・プリンターに接続するのか、レーザー・プリンターに接続するのかを選択するようになっていました。それによって、インターフェイスの規格が変わり、内部で処理するマイクロコードが全く異なってくるからです。
5400エミュレーターII の機能

お客様のご要望に合わせて機能を拡張し、対応機種を増やしてきた 5400エミュレーターII ですが、いくつかの制約はありました。

- "Infoprint13x6J" の後継シリーズである "Infoprint17x6J"シリーズでは、パラレル・インターフェイスがハーフ・ピッチ・サイズで小型であったため、5400エミュレーターII を取り付けるためには、付属の変換アダプターが必要でした。その結果、取り付けると 5400エミュレーターII 自体の重さで下に傾いてしまい、接続が不安定になるという現象が発生しました。

- 更にその後に発表された "InfoPrint SP 8200 モデルN50" は、50ページ/分という PAGES モードを持ったレーザー・プリンターでは最高速のモデルでしたが、パラレル・インターフェイスが無かったため、5400エミュレーターII を使用できませんでした。

- レーザー・プリンターは受信バッファーのメモリー・サイズが大きいため、プリンター側では印刷データをたくさん溜められます。受信済みの印刷データを印刷するのは、プリンターの責任という考え方でできていますので、プリンターの電源を切られない限り、用紙ジャムや用紙切れ等のエラーが発生しても、印刷完了するまでは、メモリーから印刷データが消されることはありません。その結果、5400エミュレーターII 経由の印刷では、ページ数が少ないスプールの場合、印刷データは、一瞬でプリンター側に溜められますので、5250 端末の OUTQ の画面での、スプールの取り消しや保留が効かないということが発生します。また、取り消しできたとしても、想定以上の多くのページ数を印刷した後になってしまうということになります。この点は、受信バッファーの小さいドット・プリンターと異なる点で、如何ともしがたい点です。

- 5400エミュレーターII の価格が、レーザー・プリンター本体並みと揶揄されるくらいになってしまいました。これは開発費用の影響もありますが、一方ではレーザー・プリンターの低価格化がかなり進んだという面もあるかと思います。(初代の 5587-G01 の価格や速度と、Infoprint1000J シリーズのそれを比較すると 20年という歳月を考えさせられます。)



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" プリンターです。

2016年2月28日日曜日

LAN 直結で双方向通信する印刷方式"Telnet5250E" - 第4回 -

5400 シリーズのライン・プリンターで、Telnet5250E 接続ができるようになると、小型のプリンターでも同様に接続できるようにして欲しいというお客様の要望が出てきました。そこで、5400 シリーズのLAN カードを元にして開発されたのが、"5400エミュレーター"です。シリアル・インパクト・プリンターの中でも、ほとんどが、AS/400 から PCOMM プリンター・セッション経由の印刷に使用されていた、5577 や 5579 用として発売されました。
5400エミュレーター本体

Telnet5250E 接続の双方向通信の機能を満たすために、プリンターと 5400 エミュレーターを接続するパラレル・インターフェイスでは、プリンターの状態を把握できる"コンバージド・インターフェイス・モード"を活用しています。
5577-W02/V02 や 5579-L02 以降のモデルでは、5400エミュレーター用の 5V の電源を供給するための、コネクターがプリンター側に用意されましたので、5400エミュレーター用に1つ追加で電源コンセントを用意する必要がなくなりました。
 5400エミュレーターは、OS/400 から送信されてくるSCSコマンドを受信し、5577 形式のコマンドに変換します。これによって、PCOMM プリンター・セッション経由の印刷ではPCOMMの変換機能が制約としていた、バーコード・コマンドや3倍以上の文字拡大の指定コマンドが、5579/5577 シリーズでも、5400 シリーズ同様に使えるようになったわけです。
5400エミュレーター装着

その結果、同じ帳票を印刷するために、印刷枚数や要求される処理時間によって、5400 シリーズから 5577 シリーズまで、機種を選択する範囲が広がったのは、5400エミュレーターの大きなメリットと言えるかと思います。
更に、5400エミュレーターでは、5400 シリーズが、当時は対応していなかった、Telnet5250E と LPR の自動切換え機能に対応していましたので、AS/400 からの印刷と、Windows からの印刷を自動切換えで行なうこともできました。なお、この機能は、後に、5400 シリーズでも対応しています。

その後、今度は、インパクト・プリンターだけでなく、レーザー・プリンターでも同様に、Telnet5250E 接続できるようにして欲しいというご要望が上がってきました。
しかし、レーザー・プリンターのパラレル・インターフェイスでは"コンバージド・モード"を持っていません。そこで、それでもプリンターの状況を把握できるように、5400エミュレーター側で対応し、名前も、5400エミュレーターIIと変更しました。
5400エミュレーターIIでは、初期設定の際に、使用するプリンターがインパクト・プリンターか、レーザー・プリンターかを指定します。それに応じて、他の設定メニューが変わってきます。
5400エミュレーターIIと、レーザー・プリンターの組み合わせのお話は長くなりますので、次回にします。

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エミュレーター本体