始めの言葉

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

2017年7月16日日曜日

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

前回、最後の PAGE 搭載モデルになるのではとお話しした "Infoprint SP8200 N50" は、オプションで後処理機構を持っています。それによって、印刷した用紙を溜めておける枚数が大きくなるだけでなく、ステープル止めするとか、パンチ穴を開けるといった、後処理ができるようになっています。
印刷速度も近いことから、"Inforpint40" の後継機とも考えられますが、PAGES モードのマイクロコードの開発部門が異なっていることもあり、558x シリーズの PAGES モードに近いレベルの機能となっています。
両者の PAGES モードの代表的な機能を比較すると、次のようになります。(もちろん、それぞれのハードウェアが持っている機能の違いも、大きく影響しています。)

1. ステープル止め     
   - SP8200 N50 : 左/右/上に対して、1箇所、2箇所綴じ、左/右においては斜め綴じ指定可能
   - Infoprint40 : 1箇所、2箇所綴じ指定可能
2. パンチ穴あけ
   - SP8200 N50 : 左/右/上に対して、3箇所指定可能
   - Infoprint40 : 対応していない
3. 排紙トレイの自動切換え
   - SP8200 N50 : 排紙トレイが一杯になったら印刷を止める。
                         空いている排紙トレイへは自動切換えしない。
   - Infoprint40 : 排紙トレイが一杯になったら、自動的に空いている排紙トレイに排紙を続ける。

Infoprint40 の PAGES モードでは、558x プリンター系の持っていた PAGES コマンドに対して、例えば、"N-Up 印刷"(複数ページを1ページに集約して印刷する、縮小印刷の方式)機能に対応するコマンド等を追加していました。
その結果、プリンター・セッション経由の印刷においては、PDF ファイルの中にそれらのコマンドを追加指定することによって、それまで実現できなかった印刷が可能になっていたのです。

"Infoprint SP8200 N50" では、同じ PAGES 拡張コマンドをサポートしていませんでしたが、同様の印刷を行なえるようにするために、"PJL コマンド" と PAGES コマンドを組み合わせて活用することで対応できます。

"PJL コマンド"は、元々、HP 社が規定したレーザー・プリンター用の制御コードですが、他の様々なプリンター制御コード(PCL, PAGES, LIPS等々)と大きく異なる点は、それらよりも基礎の階層のレベルのもので、多くのプリンター・メーカーが共通でサポートしているという点です。
機能面では、"印刷部数指定"、"両面印刷"、"N-Up印刷"、"縮小印刷"等の指定ができますが、例えば、両面印刷を指定するコマンドは共通でも、長辺綴じか短辺綴じかを指定するパラメーターは、プリンター・メーカー間で、微妙に異なっています。
そこで、自分の使用しているプリンターの、PJL コマンドを知る必要が出てきますが、その方法は、以前、連続用紙への印刷から、カット紙への印刷に移行する -第13回 PDFダイレクト印刷における印刷制御- の回でご紹介しています。

PAGES カード使用解説書抜粋 用紙セット方向とステープル位置の関係

PAGES カード使用解説書抜粋 用紙セット方向とパンチ穴位置の関係
この PJL コマンドを PDF ファイルの中で指定する方法は、"Infoprint SP8200 N50" 付属のPAGES カード使用解説書の中で記載されていますが、ここで一部をご紹介します。この考え方をご理解いただくと、プリンター・セッション経由の印刷でのプリンター制御の理解が深まると思います。

ポイントは次のとおりです。
1. "BEGIN MACROS" の中に、PJL コマンド開始を表わすコマンドを "PJS" として定義する。
PJS EQU 1B % - 1 2 3 4 5 X @ P J L 20 0D 0A @ P J L 20 J O B 20 0D 0A
(%、-、1、@ 等は、1バイトの文字として送信される必要があるので、1文字の前後にブランクが入ることにご注目ください。)

2. 同様に PJL コマンド終了を表わすコマンドを "PJE" として定義する。
PJE EQU 1B % - 1 2 3 4 5 X @ P J L 20 0D 0A @ P J L 20 E O J 20 0D 0A @ P J L 20 R E S E T 20 0D 0A 1B % - 1 2 3 4 5 X

3. PAGES モード指定したい PJL コマンドを定義する。ここでは、用紙の左上角をステープル止めするコマンドを "SLV" という名前で定義する。 
SLV EQU @ P J L 20 S E T 20 S T A P L E 20 = 20 L E F T T O P 0D 0A



4. プリンターが、データの先頭で PJL コマンドを処理した後、PAGES モードに切り替えるために、PAGES モードへの切り換えコマンド("CDS" と名付けていますが)を送信するのですが、このコマンド自体が、PAGES コマンドであるという、鶏と卵のような関係があるため、PAGES モードへ切り換えるための、PJL コマンドを "PGS" として次のように定義します。
PGS EQU @ P J L 20 E N T E R 20 L A N G U A G E 20 = 20 P A G E S 20 0D 0A

5. 以上で定義されたコマンドを、次の順番で "START_JOB=" と "END_JOB" の後ろに並べます。この順番が重要です。これによって、先ずプリンターに PJL コマンドが送信され、次に、PAGES モードに切り替えてから印刷データが送信されます。最後に、PJL コマンドの終了コマンドが送られることによって、PJL コマンドが、PAGES の印刷データを挟む形となることが重要です。

START_JOB=PJS SLV PGS CDS INZ FNS
........
END_JOB=INZ PJE


なお、ここでは、"START_JOB=" の中の "FNS" があります。これは、排紙トレイを後処理オプションの排紙トレイに指定するための PAGES コマンドの定義です。ステープル止めを指定する以上、後処理オプションの排紙トレイに排紙するのは当然のことですが、コマンドで指定しておく必要があるということです。
FNS EQU 1B 7E 47 00 06 00 00 03 00 00 00

2017年6月18日日曜日

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

プリンターを PAGES モードに切り替えるためのコマンドが、PAGES のコマンドの中にあります。それだけでは、PAGES モードに切り変わるためには、PAGES モードのコマンドを正しく処理して PAGES モードになる必要があるといった、ちょうど、鶏と卵の関係のようになってしまいます。
実際には、プリンターの処理機能の基礎となるレベルのマイクロコード(ファームウェア)が、プリンターがどのモードであっても、このコマンドを処理できるようにできているのだと思います。

コマンド自体は、Web 上で公開されている PCOMM や CA の 用の PDF ファイルをメモ帳で開くと、次のように記述されていることで、分かります。

/* エミュレーションモード設定  */
CDS EQU 1B 7E 12 00 01 11                       /* PAGES 選択     */

START_JOB=CDS INZ SEL SA4 FA4 SRO P10 LL6

CDS は、Change Data Stream を略して付けた名称と考えられます。
コマンドとしては、"1B 7E 12 00 01 11" であって、これは "5577 モード" への切り換えにもそのまま使用できます。
"START_JOB=" の直後にこのコマンドが記述されていることによって、プリンター・セッションから送信される印刷データの先頭で、プリンターを "PAGES モード"、若しくは "5577 モード" に切り替えて、その後の PAGES コマンドを正しく処理できるようにしている訳です。

Infoprint 1000J シリーズの基本モードである "RPCS モード" のプリンター・ドライバーでは、プロパティ画面のメニューの中で、"基本設定" -> "その他" と選択した次のような画面に "印刷後のエミュレーション" という設定項目があります。
RPCS モードのドライバーで元のエミュレーションに戻す設定

これを、上の画面のように"直前のエミュレーション"と設定しておくと、PAGES モードで印刷後、このドライバーを使って RPCS モードを使って印刷した場合には、プリンターを元のモード、つまり "PAGES モード"に戻すコマンドを、発行すると考えられます。
従って、"PAGES モード"での印刷から始まった場合には、この設定のみで問題無いかもしれませんが、必ずしもそうではないので、"PAGES モード"を使用するプリンター・セッション経由の印刷では、先頭で切り換え用のコマンドを発行する必要があるということです。

プリンター・セッション経由の印刷以外で、PAGES モードを使う印刷としては、OS/400 の HPT 機能を使った、LAN 直結印刷があります。
プリンター・セッション経由の印刷において、PAGES モード 設定のコマンドを使用することは、Infoprint 1000J シリーズの "PAGES 使用解説書"に記載されていることですが、HPT 機能を使った LAN 直結印刷についての記述はありませんでした。
ところが、実際には、1 台の Infoprint 1000J に対して、RPCS モードのドライバーを使った WindowsXP からの印刷と、HPT 機能を使った AS/400 からの LAN 直結印刷を行なっている中で、AS/400 からの印刷が、文字化けしてしまうという問題が発生したお客様がありました。

"RPCS モード"のドライバーで、"直前のエミュレーションに戻す"設定は行なったものの、問題は解決しません。プリンターが、OS/400 から送信されてくる "PAGES モード" の印刷データを正しく識別できず、"RPCS モード"の状態のまま処理してしまうため、文字化けとなってしまうのです。

PDF ファイルと同様に、印刷データの先頭に、"PAGES モード"への切り替えコマンドを埋め込むには、"WSCST ファイル"を編集します。
"WSCST ファイル"を変更する方法は、Web で公開されています。リンク先の 7 ページ目以降をご覧ください。
また、"PAGES モード" 用の"WSCST ファイル"のサンプルも、同じように公開されています。リンク先のテキスト・ファイルを開いてみると、その中に次のような箇所があることが、分かります。

    :INITPRT
      DATA ='1B7E010000'X                   /*初期化設定*/
            '1B7E0300013C'X                 /*行ピッチ設定6LPI */
            '1B7E02000132'X                 /*文字ピッチ設定10CPI */
            '1B7E5A000403AE0000'X.          /*コードページ変更942 */
 
ここが、プリンター・セッション用の PDF ファイルの中の "START_JOB=" 以降に該当します。
そこで、DATA = の次に、"PAGES モード"への切り替えコマンドを、次のように追加します。
 
    :INITPRT
      DATA ='1B7E12000111'X                 /* PAGES 選択*/
            '1B7E010000'X                   /*初期化設定*/ 
 
このお客様では、この "WSCST ファイル" を指定したリモート OUTQ を通して印刷データを送信することによって、プリンターが、先ず "PAGES モード" に切り替わってから、後続のデータを処理するようになり、その結果、文字化けは解消されました。

2017年6月11日日曜日

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

2003年は、WindowsXP がリリースされた年です。この年、IBM は、小型レーザー・プリンターのシリーズとして、"Infoprint 1000 シリーズ"を発表しました。
Infoprint 1332
MFPオプション付き Infoprint 1352
これらの製品は、Lexmark 社製品から OEM 提供を受けたものと思われます。社内開発を断念し OEM 製品による製品シリーズの拡充に切り替えたと考えられ、個人的には残念だったことを覚えています。
国内向け製品も同じ方針に合わせて、日本版という意味で、"Infoprint 1000J シリーズ"と銘打って、A3 サイズ対応で、印刷速度の異なる 3 モデルを、同じ年に発表しています。
この時から、それまでの 4 桁のマシン・タイプと 3 桁のモデル名の他に、各モデルに対応する "Infoprint 1316J" とか "Infoprint 1356J"といった名前が付くようになりました。その結果、この 3 モデルの概要は、次のようになります。

モデル名 型式         印刷速度  最大用紙サイズ
1356J     5596-3M6  32 枚/分  A3
1336J     5596-3M4  28 枚/分  A3
1316J     5596-3M2  22 枚/分  A3

標準モデルでは、PAGES に対応していません。標準で対応しているのは、"RPCS" モードとあることから、リコー社からの OEM 製品であることが分かります。
付属のプリンター管理ツールにも、"Infoprint Navigator" とか "Infoprint Administrator" というように、"Infoprint" の名前が付けられています。
標準では、リコー社独自のプリンター制御言語 "RPDL" にも対応していますが、Windows からの印刷では、"RPCS" モードがお勧めとなっています。"RPCS" モードは、主にイメージ・データとして印刷データを生成し、解像度も 1,200DPI と高くなっている点では、"5589-L36" の時の専用モードと類似の位置づけ、考え方の印刷データ形式と言えると思います。
Infoprint13X6J 標準とフル・オプション付き

では、PAGES はどうなったのでしょうか ? PAGES モードは、遅れてオプションとして発表され、PAGES オプション付きのキッティング・モデルとしてのみ、提供されることになりました。
キッティング・モデルには、発注用に "M" の代わりに "P"が付いた型式(例えば、5596-3P6)が付けられましたが、このことにより、次のような制約が発生しました。

- 標準モデルを購入後、PAGES オプションが必要になっても後付けができない。
- 購入した製品に、PAGES オプションが付いているかは、プリンターの構成情報を印刷しないと分からない。つまり、"5596-3M6" というプリンターに、PAGES オプションが"キッティング"されているので、プリンターに貼られているシールには、"5596-3M6" としか記載されていないということです。

その結果、特約店やお客様では混乱が発生したことがあることは、否めません。

また、標準モデルでは、オプションも含めると、次のようなに多くの種類の印刷データ形式に対応していて、受信した印刷データを自動認識することもできました。
- RPCS
- RPDL
- PostScript3
- ESC/P
- PR201H
しかし、PAGES に対しては少し冷たく、自動認識できないことがありました。そのため、Windows からの "RPCS" モードを使った印刷と、PCOMM プリンター・セッションからの "PAGES" モードでの PDT 印刷が、1 台のプリンターに対して混在する場合、問題が発生することが、少なくありませんでした。その対策に関しては、次回、お話します。
 

2017年6月4日日曜日

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

PC の OS の主流が、まだ、J-DOS や DOS/V だった頃には、ワープロや表計算、オンライン端末といったアプリケーションが、それ自身で印刷データを生成して、プリンターに送信してくるという仕組みでした。
一方、インパクト・プリンターと比べて、レーザー・プリンターは、縮小指定、用紙トレイ指定、用紙方向縦/横指定、4 辺の余白の指定等々、制御コマンドの種類が多いのですが、メーカー間で統一されたコマンドは、ありませんでした。
そうなると、各レーザー・プリンター・メーカーは、標準のプリンター制御コマンドを独自の規格で決めて、多くのアプリケーション・メーカーに対応していただくことで、競争力になると判断したわけです。そして、更に、他社が真似して同じコマンドに対応してきたとしても、その時には、自社が先行してコマンドを拡張しておくことで、自社の優位性が保たれるとも考えました。

その際に、インパクト・プリンターの実績のあった、IBM と EPSON 社は、インパクト・プリンターのコマンドを独自に拡張する方式で、それぞれ、PAGES、ESC/Page というレーザー・プリンター向けの規格を作りました。それ以外のレーザー・プリンター・メーカー、例えば、CANON 社は、LIPS という全くレーザー・プリンター独自の自社規格を決めて、多くのアプリケーション・メーカーのサポートを得ていました。
その中で、多くのプリンター・メーカーがターゲットにしたのが、IBM の AS/400 やメイン・フレームのシステム・ユーザーです。この市場は大きいと判断したのだと思います。
それらのシステムからの印刷を行なうためのアプリケーションは、3270PC であったり、5250PC ですが、それらは、5577 形式か、ESC/P 形式のコマンドしか送信しません。そこで、5577 のマニュアルに記載されているコマンドの説明や、それらアプリケーションからの印刷データを調べて、5577 互換 + 各社独自のレーザー・プリンター制御コマンドという組み合わせの、所謂「5577 エミュレーション・コマンド」(エミュレーションとは、真似という意味)を、レーザー・プリンターのオプションとして販売しました。
5577 コマンドに対する各社の拡張

しかし、その後、Windows の登場によって、印刷データの流れは大きく変化し、アプリケーションは印刷データの生成という作業から解放され、その分の仕事は、自社プリンター用のドライバーの開発として、プリンター・メーカーに移ったわけです。自社の規格を業界標準として競争力を維持するという戦略の下に、独自規格でコマンドを決めてきたことが、Windows の登場によって、自社の負担になってしまったという、皮肉な結果になっています。

そのような時代の変化の下で、AS/400 も含めたホスト・システムから、端末アプリケーションを介して、(PAGES も含めた)5577 互換のレーザー・プリンターへの印刷という図式も、いつの間にか崩れてきたようです。
つまり、一般の Windows アプリケーションと同様に、PCOMM プリンター・セッション経由の印刷も、最早、PDT 印刷ではなく、PDT を指定しないドライバー印刷で対応可能になってきているようです。
これは、PCOMM 側の改良や、プリンター・メーカーによるドライバーの改良の両方が寄与していると思います。

さて、そうなってくると、PAGES の必要性は、どこかに残っているのでしょうか ?
それは、次の 3 つのケースに絞られるかと思います。
1. OS/400 のHPT 機能を使った、AS/400 からの LAN 直結印刷の場合
2. AS/400 上のアプリケーションとして、PAGES コマンドをキャラクター・モードを使って送信する場合
3. AIX 等の UNIX 系のシステムからの文字印刷の場合

Windows のドライバー印刷では、印刷データは、アプリケーションとプリンター・ドライバーが、MS 明朝や、MS ゴシック等々の Windows に付属のフォントのイメージを使って、文字もイメージ・データと各ページのイメージをプリンターに送信してきます。
それに対して、"1" と "3" は、途中にWIndows を介しませんから、文字は文字コードとしてプリンターに送られ、プリンターが内蔵フォントを使って印刷イメージを生成します。
次の画面は、OS/400 V7R1 において、リモートOUTQの設定の画面ですが、コマンド変換するための選択肢である "MFRTYPMDL" にも、例えば "*IBMPAGES300" が準備されています。これは、前回までお話した、300DPI の解像度を持つ、ネットワーク・プリンター・シリーズの PAGES オプション用のものです。
MFRTYPMDL *IBMPAGES300

"2" は、文字通り、キャラクター = 文字としてプリンターを制御する PAGES コマンドをプリンターに届けないとなりませんから、プリンター・セッションでは、印刷データはイメージではなく、文字コードや制御コマンドとしてプリンターに送信する必要があります。
例えば、スプール・データの 1 ページ目は、A3 サイズの用紙に印刷するが、2 ページ目以降は、A4 サイズ用紙に印刷するといった業務の場合、データの先頭で、A3 サイズの用紙がセットされた用紙トレイを指定し、2 ページ目の先頭では、A4 サイズの用紙がセットされた用紙トレイを指定するコマンドを、印刷データの中に埋め込むことになり、このような場合に、キャラクター・モードが使用されます。
この業務を継続するために、PAGES モードを持ったプリンターを使い続けるという方法以外に、PAGES という一種の制約を外すことを検討するのであれば、Mapping Suite のようなソリューションの導入を検討されるのが良いと思います。

2017年1月22日日曜日

ライン・プリンターの全て - 第24回 - たまにいただくお問合せ-1

今回は、今までいただいたお問合せの中から、思い出した順にお話したいと思います。

Q1. 購入したばかりの 5400 プリンターを、Telnet5250E を使って AS/400 と接続するために初期設定を行なっているが、装置記述も OUTQ も自動構成できず、接続できない。

A1. IPアドレスの指定ミスといった単純な理由以外には、次の原因と対策が考えられます。
- 接続先の OS/400 の設定で、自動構成が OFF になっている。
- 接続先の OS/400 の設定で、自動構成は ON だが、接続した装置の数が既に、設定した最大値になっている。
-> これらの場合は、OS/400 の設定を変更する必要があります。

- 既存の装置記述や OUTQ と同じ名前を指定しようとしている。
-> それまで、プリンター・セッション経由の接続で使用していたプリンターを置き換えるに当たって、同じ OUTQ 名をそのまま使用したい場合に、このような現象が起こり得ます。この場合は、既存の装置記述や OUTQ は一旦削除する必要があります。

Q2. プリンター・セッション経由の印刷の時には、プリンターの電源を投入した後は"印刷可能"状態となったが、Telnet5250E による LAN 直結印刷に変更したら、電源投入後は"印刷中断"状態になる。そのため、"印刷"スイッチを押して、"印刷可能"状態に変えないと印刷開始できない。

A2. Twinax ケーブルによる接続の時代もそうだったのですが、AS/400 と直接接続の場合には、プリンターの起動時には"印刷中断"状態となるように決めているようです。
"印刷可能"状態で起動すると、印刷データを送信済みの場合に、プリンターにセットされた用紙が正しいかを確認する間も無く、印刷が始まってしまうことを避けたいと考えられていたのが理由かもしれません。
しかし、通常の PC 用のプリンターの起動時は"印刷可能"状態になりますし、それで不都合はありませんから、私も「印刷可能」状態で起動する方が良いと思っています。

Q3. AS/400 が英語環境の場合でも、5400 プリンターで印刷したい。

A3. 2次言語に"日本語"が導入されていれば、Telnet5250E を使った直接印刷は可能です。しかし、"日本語"環境が全く導入されていないと、直接接続での印刷はできません。
これは、5400 のような日本語プリンターは、OS/400 上では"5553"という名前の"日本語プリンター"として認知されるのですが、日本語環境が無いと、OS/400 上には"5553"が選択肢として存在しないからです。
ちなみに、"5553"という型式は、"マルチステーション5550"の中のプリンターとして発表された、16 ドット漢字用の"5553-A01"、24 ドット漢字用の"5553-B01"というドット・プリンターのものです。
マルチステーション5550 向かって左端が5553

そこで、日本語環境が無くても 5400 プリンターに印刷する方法は、プリンター・セッション経由の接続とすることです。この場合は、OS/400 から見てプリンター・セッションがプリンターの役割を担うことになりますので、実際のプリンターが日本語プリンターであっても関係ないからです。
IBM 6500 シリーズ
IBM 6400 シリーズ
このご質問の背景には、英数文字専用のライン・プリンターの置き換えがあります。
IBM では従来、6400 シリーズ、6500 シリーズという、英数文字専用のライン・プリンターを販売していました。
英数文字専用のプリンターと日本語プリンターの最大の違いは、解像度です。日本語ライン・プリンターは、ドット・プリンターと同じく、漢字を省略無く印刷するために 24 x 24 ドットで印刷します。そのために、180 ドット/インチの解像度、直径 0.2mm の印刷用のピンを使用します。
しかし、アルファベットや数字の印刷にはそこまでの解像度やピンの細さは必要ありません。
その結果、英数文字専用のライン・プリンターは、メリットとして高速印刷と高い耐久性を持っています。
また、接続先のサーバーの種類や、接続インターフェイスの種類も非常に多いという特徴もありました。
ただ、それらのプリンターも販売が終了し、今は OEM 元のプリントロニクス社の P シリーズが販売されているのが現状です。
参考情報

IBM 6500 シリーズ発表レター
IBM 6400 シリーズカタログ

2016年8月14日日曜日

ライン・プリンターの全て - 第5回- 日本語ライン・プリンターの歴史-5

日本語ライン・プリンター・シリーズの中核となる中速モデルが、耐久性を向上した"5400-006"に代わって、一安心といったところでしたが、次の課題が新たに出てきました。
"5400-006"プリンターが発表された1998年の3年前は、Windows95が発売され、インターネットの普及が始まった年です。インターネットの普及に合わせて、企業の現場では、ネットワークは、IBM独自のTokenRing(トークン・リング)方式からEthernet(イーサネット)方式へ、プロトコルも、IBM独自の"SNA"から、"TCP/IP"へというように、メーカー独自規格から業界標準規格に移っていく傾向が始まりました。AS/400 の世界では、機器の接続が、"Twinax"接続から"ネットワーク"接続へ、徐々に移行していったわけです。AS/400 自体でも"Twinax"接続機構は、標準からオプションへと変わって行きます。

そうなると、ライン・プリンターの接続方式も"Twinax"接続ばかりではなく、PCOMM のプリンター・セッションを経由した方式が増えていきました。それは、プリンターに対して印刷データを生成して送信してくるのは、AS/400 ではなくなり、"ibm5577.pdt"というPDTファイルを参照して、5577 形式の印刷データを生成、送信するプリンター・セッションになることを意味します。

そのような状況の中で、お客様から問題として指摘され始めたのが、"Twinax 接続と比べて、プリンター・セッション経由では、罫線のある行の印刷が遅い。"という現象です。(因みに、ライン・プリンターで印刷が遅いというのは、印刷中に紙送りが止まることがあることを意味しています。)
プリンターの開発部門と一緒に原因を調べて判明したことは、次のとおりです。
  1. 罫線は縦24ドットのイメージ・データとして、プリンター・セッションから送られている。
  2. 実際に印刷する罫線は、縦2ドット程度の"黒イメージ"だったとしても、印刷データとしては、残りの縦22ドットの"白イメージ"もあるわけで、罫線の長さに比例して、印刷データ量が大きくなる。
  3. その印刷データを生成する PC 側の処理速度、ネットワークによる通信速度、受信したプリンター側での処理速度、全てに対して負担が大きくなって、印刷速度の低下を引き起こしている。(現在の PC の処理速度や、ネットワークの通信速度だったら考えられないことですが)
5577モード :2ドット幅の横罫線の印刷データ
しかし、プリンターの開発部門で対応できるのは、プリンター側での処理速度でしかありません。それでは効果を期待できませんので、対策として決まったのが、"Telnet5250E"接続の採用です。その狙いは、次の2点です。
  1. 標準のプロトコルとなっていく"TCP/IP"の規格の一部であって、Twinax接続とほぼ同じ操作性を実現できること。
  2. 罫線を引くためのコマンドが、AS/400 から発行されるSCS形式のコマンドとなるため、罫線の始点と終点を座標で指定する方式になる。そのため、罫線を印刷するためのデータ量の大幅な削減が期待できる。
SCSモード : 横罫線の印刷データ
"Telnet5250E"については、AS/400からの印刷 ~基礎編-3~をご参照ください。

"5400-006"プリンターでは、2000年に、LAN カードを Twinax カードとの選択オプションとして発表しました。新規発注分に対して選択できるだけでなく、使用中の"5400-006"プリンターに対しても、技術員による交換作業により、LAN 接続に変更できるようになっていました。
LAN カードは、プロトコルとして"Telnet5250E"だけでなく、"LPR"も初期設定で選択可能となっていました。"LPR"プロトコルに設定した場合には、"5577モード"か"ESC/P"モードに対応したプリンターとして使用できます。具体的には、Windowsが稼動するPCや、AIX が稼動するIBMワークステーション(RS6000)からの印刷にも使用できるということです。整理すると、Twinax接続の代わりにLAN カードを選択した場合、次の3種類の内1種類のプリンターとして使用できるということになりました。
  • AS/400 からTelnet5250Eを使った印刷(SCSコマンド)
  • PC や RS6000 からLPR/LPDを使った印刷(5577モード)
  • PC や RS6000 からLPR/LPDを使った印刷(ESC/Pモード)
実際に、この LAN カードを使った"Telnet5250E"によって、罫線による印刷速度の低下は解消しました。

2016年7月2日土曜日

QRコードの印刷方法 - 第1回 プリンターの持っているコマンドを使う -

2015年10月から連載した"バーコードの印刷方法"では、文字通り"バーコード"、つまり、バーを組み合わせた 1 次元コードを対象としたものでした。1 次元コードは、ほとんどが APW で指定できるという大きなメリットがありましたが、2 次元コード、国内で使用されている"QRコード"は、APW では対応されていません。そのため、AS/400上のアプリケーションから、"QRコード"付きの帳票を印刷するには、工夫が必要です。
QRコード印刷サンプル
"QRコード"は、製造業だけに限らず、様々な業種において、様々なアプリケーションに使用されています。最も大きな特徴は、格納できる文字数の多さと、文字に漢字などの2バイト文字にも対応していることと言えます。では、QRコードをプリンターで印刷するには、どうしたら良いでしょうか?

先ず、1 次元バーコードの時と同様に、プリンターの持っているコマンドをプリンターに送信し、プリンター内部で QRコードを作製して印刷する方式が考えられます。それには、どのような点に注意して、どのようにすれば良いでしょうか?
QRコードの"コマンド"と言いましたが、実は、QRコードを印刷するための"SCSコマンド"はありません。それが、APW で対応していないことの大きな理由となっています。逆に言うと、インパクト・プリンターなら、"5577モード"、レーザー・プリンターなら"PAGESモード"の中に、QRコードのコマンドがあるということです。

コマンドそのもののは、1次元コードのコマンドと同様に、
- 1B 7E 40(バーコード印字形式設定)コマンド
  によって、QRコードであること、QRコードの大きさを指定し、次に
- 1B 7E 42(バーコード印字)コマンド
  によって、印刷位置と格納するデータを指定するという構成です。
なお、QRコードの中に格納するデータの文字コードは、英数文字ならUS-ASCII、漢字ならShift-JISになります。
これらのコマンドやデータを、AS/400 上のアプリケーションからプリンターに送信できる接続方法と対応プリンターの組み合わせを整理すると、次のようになります。

1. PCOMM プリンター・セッション経由のPDT印刷
キャラクター・モードを使って、バーコード・コマンドをアプリケーション内に組み込みます。
インパクト・プリンターなら、5577系、レーザー・プリンターなら、PAGES系のプリンターは、キャラクター・モードにも、QRコードのコマンドにも対応していますので、使用可能です。
サンプル・コードをこちら(5577系, PAGES系)で公開していますので、ご参照ください。
しかし、5400系のライン・プリンターは、キャラクター・モードに対応していません。

2. HPT(ホスト印刷変換機能)を使った LAN 直結印刷
プリンター・セッション経由のPDT印刷と同様です。キャラクター・モードを使って、QRコード用のバーコード・コマンドをアプリケーションから発行するようにします。

3. Telnet5250Eを使った LAN 直結印刷
5400系のライン・プリンターでも、5577モードでは、QRコードを印刷するコマンドを持っていますが、5577系と異なり、キャラクター・モードに対応していませんから、同じ方法は使用できません。
しかし、Telnet5250E 接続の機能の中で、透過モードをサポートしていますので、これを使ってコマンドを送信するようにアプリケーションを組めば、通常の接続方法の下で、QRコードを印刷することができます。

ただ、以上のご説明でお分かりのように、プリンターにコマンドを送信してQRコードを印刷させるには、アプリケーションのプログラミングに大きな手間が掛かります。
そこで、次回は、プログラミングの手間の掛からない方法をご紹介します。

2016年4月10日日曜日

連続用紙への印刷から、カット紙への印刷に移行する -第5回 縮小して両面印刷する-

連続用紙からカット紙に移行する時に、両面印刷に変えると印刷枚数が半分となり、用紙コストを更に削減できます。しかし、連続用紙は用紙が繋がっているのに対して、カット紙は印刷後の用紙の取り扱いに注意しないと、用紙の順番がバラバラになってしまう危険性があります。
そこで、複合機や50枚/分以上の印刷速度を持つプリンターでは、オプションとして用意されている後処理機構を追加すると、印刷直後に自動的にステープル止めを行ない、用紙がバラバラになるのを防ぐことができます。
(もちろん、このオプションを使わなくても手動でステープル止めは可能ですが、手動では、それまでの間に用紙をバラバラにしてしまうリスクは残ります。)
両面印刷した後、左上隅の1箇所や、左辺の2箇所にステープル止めするとした場合、奇数ページは左余白を、偶数ページでは右余白を大きめに設定しておく必要があります。
左右の余白が異なる両面印刷のイメージ
今までお話した PCOMM プリンター・セッション経由の印刷や、HPT 機能を使った印刷、5400エミュレーターII を使った Telnet5250E 接続の印刷では、印刷データ全体に対して余白の値を設定することはできますが、奇数ページと偶数ページで余白の値を変えることはできません。そのため、左余白の値も右余白の値も、同じ大きめな値に設定することになります。
第3回 キャラクター・モードを使った縮小印刷指定でお話した、"キャラクター・モード"を使って奇数ページと偶数ページで異なる値の余白を設定するコマンドを、ページ毎に発行すれば実現できますが、そのためのプログラムは大変です。
しかし、前回ご紹介した"MappingSuite"を使えば、簡単に実現できます。
1. "MapDraw"で新規作成を指定する表示されるフォーマットの定義の画面で、"片面/両面"に"両面(短辺)"を、"片面""両面"に"Portrait"を、"フォーマット名"に"SHUKUSHOH2"を指定します。
MapDraw両面印刷用プロジェクトの定義
(他の値は前回と同じです。)
A4 横長で、短辺側を綴じる場合の設定です。長辺で綴じる場合には、"両面(長辺)"を指定します。










2. 両面の指定を行ったことにより、前面設計用の"DrawF""MapF"("F"は"Front"の意味)の他に、裏面設計用の"DrawB""MapB"("B"は"Back"の意味)の画面が選択できるようになります。また、どちらかの画面で、横132桁、縦66行のスプール・データを取り込むと、もう片方の画面でも、同じスプール・データが表示されます。
MapDraw両面毎に設計可能な画面














3. 次は前回と同様にして、縦66行のグループ、そしてその中に横132桁を指定したゾーンを作成します。ここでのポイントは、前面設計の画面(MapF)では、ゾーンの中の文字の配置は"左揃え"とすること、ゾーンの左端の位置を、奇数ページの左余白の値と合わせることです。
MapDraw前面の設計














4. そして、裏面設計の画面(MapB)では、同じ縦66行のグループの中に、横132桁ですが、文字の配置は"右揃え"とし、右余白の値を前面の左余白の値と同じ値に合わせたゾーンを作成します。
MapDraw裏面の設計














5. この設計をそれぞれ奇数ページと偶数ページに適用するために、条件付けを行ないます。"プロジェクト"タブの"プロジェクトのプロパティ"ボタンを押して表示される画面の"表面"タブの画面では、"Page""Page 1 of 2"と設定します。
MapDraw奇数ページ用の条件付け













6. "裏面"タブの画面では、"Page""Page 2 of 2"と設定します。
MapDraw偶数ページ用の条件付け

7. ここまでの設計の確認には、"マルチ・プレビュー"ボタンを押して、スプール・データのページをめくっていくと、奇数ページと偶数ページでそれぞれ左右余白が一致するかを確認します。
MapDrawマルチ・プレビュー

設計は以上になります。この後、プロジェクトの生成->プロジェクトの関連付け->MapDrawフォーマットの取り込みの手順は、今までお話したとおりです。
このような帳票設計ツールを使うことによって、コマンドの指定では困難な帳票の印刷が簡単に実現できることをご理解いただけたかと思います。

2016年3月21日月曜日

連続用紙への印刷から、カット紙への印刷に移行する -第2回 単純な縮小印刷-

連続用紙に印刷していたデータを、カット紙にそのまま縮小印刷する方法は、3つ考えられます。それぞれ設定方法が異なり、それに応じて運用する場合の操作方法が異なってきますので、どの方法を採用するかは、準備の手間と、エンド・ユーザーの意見を併せて検討して、決める必要があります。ここでは、カット紙を印刷するプリンターは、InfoPrint1000J等の、PAGESモードのプリンターを前提とします。
また、AS/400 からは、PCOMMのプリンター・セッションを使用したPDT印刷か、HPT機能を使用した LAN 直結印刷を想定しています。(5400エミュレーターIIを使用した Telnet5250E 接続の場合には、今までお話したように、5400エミュレーターIIで縮小設定を行うのが良いと思います。)
PAGES印刷条件の例

1. プリンターの初期設定で縮小印刷を指定する方法
これは、プリンターの"PAGES印刷条件"という初期設定メニューの中で、
- 用紙方向 : 縦/横
- 縮小率 : 連続用紙(15"x11")->A4/B4、縦横同じ比率で50%まで1%刻み
- 余白 : 長さを上下左右独立して指定
- 両面印刷 : する/しない、する場合には長辺綴じか短辺綴じの指定
といった各項目を、用紙トレイ毎に設定しておく方式です。
一度、操作パネル上で設定しておくだけで済みますので準備は簡単ですが、用紙トレイ毎にこれらの設定の組み合わせが異なる場合は、印刷する際に、別の方法で用紙トレイを指定しないとなりません。用紙トレイを指定するには、次にお話しする"2."や"3."の方法を採らざるを得ませんので、それであれば、縮小の指定も一緒に行う方が良いということになります。
そのように考えていくと、この方法は、用紙トレイの少ない場合にのみ有効な方法と言えると思いま
す。
もし、"2."や"3."の方法と併用したとしても、操作パネルでの初期設定は、プリンターの内部処理の優先順位が最も低くなっていますので、"2."や"3."の設定が有効となります。

2. PDT ファイルや、リモートOUTQの設定の中に縮小設定のコマンドを埋め込む方法
縮小設定や、余白の設定のための PAGES コマンドを、プリンター・セッション経由の場合は
プリンター・セッション経由の印刷 第2回 - PDFファイルの編集 -
の回でお話した方法で、HPT機能を使った LAN 直結印刷の場合には、
HPT機能を使った印刷 - WSCSTについて-
の回でお話した方法で埋め込むことで、指定することができます。
この場合、複数の設定の組み合わせ(縮小の比率や余白の値)があっても、1つ1つの設定の組み合わせに対応した OUTQ が作られることになりますので、ユーザーは、印刷先の OUTQ を切り替えることで、縮小の設定を切り替えて印刷するという運用を実現できます。
コマンドを埋め込む際の注意点は、
- 縮小率を指定するコマンドは、必ず、用紙トレイ指定のコマンドの後ろで指定すること
- バーコード・コマンドを使ったバーコード印刷のあるデータを縮小する際には、必ず、縦横同じ比率の縮小率を指定すること(連続用紙->A4/B4という縮小率の指定は、縦横の縮小率が異なるため、バーコードの位置や大きさが正しく印刷されません。)
この方法であれば、同じプリンターに対しても、ユーザーが印刷先に指定する OUTQ さえ正しく指定していれば、様々な種類の設定を切り替えて印刷させることができるというメリットがあります。

ユーザーによる OUTQ の切り替えも難しいような場合には、次の"キャラクター・モード"を使って、印刷データにコマンドを埋め込むという方法が有効になりますが、その説明は長くなりますので、次回に譲ります。
 

2016年3月5日土曜日

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

ライン・プリンターに始まって、ドット・プリンターに広がった"Telnet5250E"ですが、次にはレーザー・プリンターにも対応して欲しいというご要望が出てきました。レーザー・プリンターの場合、次のような印刷の制御にも対応しないとなりません。
- 給紙トレイ(用紙サイズ)の指定
- 用紙方向(縦長/横長)の指定
- 縮小率の指定
- 印刷開始位置(上と左の余白)指定
PAGES モードを持ったレーザー・プリンターの場合は、1つの給紙トレイに対して、これらの値をセットで操作パネル上で初期設定しておけば、印刷の度に給紙トレイを選択することで、希望通りの印刷はできます。
しかし、AS/400 からの印刷では、毎回手動で設定を変更するという方法は現実的ではなく、例えば、"プリンター・セッション経由の印刷 第2回 - PDFファイルの編集 -"の回でお話したように、これらの値のセットに対応した"OUTQ"を選択するという方式の方が望まれます。
そのために、レーザー・プリンターにも対応した"5400エミュレーターII"では、初めに2つのデバイスが登録できるようになりました。
つまり、5400エミュレーターIIが持っている設定用の"Webページ"上で、給紙トレイや用紙方向などの上記の値をプル・ダウン・メニューやラジオ・ボタンを使って指定し、1つの"デバイス"として登録させると、その設定に応じて印刷できる OUTQ が、OS/400 上に自動構成されるという仕組みです。この"デバイス"というセットが、初めは2つでしたがその後3つまで登録できるようになりました。
これは、1台の5400エミュレーターIIにおいて、3つまでの"Telnet5250E"のセッションをOS/400 との間で張っているということを意味しています。
デバイス設定の画面
プリンター・セッション経由の印刷や、HPT機能を使った印刷では、PAGESのコマンドを理解して、ユーザーが自分でPDFやWSCSTを編集する必要がありましたが、5400エミュレーターIIでは、Webページ上で簡単に設定できますので、PAGESのコマンドを理解する必要はありません。5400エミュレーターIIの中で、設定に応じたPAGESコマンドを印刷データに付加してプリンターに送信している訳です。
ただ、少し難しいのは、余白の値の設定方法です。元の PAGES コマンドでは、1/1440インチ単位の値を16進数で指定することになっていますので、この画面でもその値を入力する必要があります。例えば、10mmに設定したい場合には、次のような計算になります。
10 / 25.4 = 0.3937 インチ -> 0.3937 x 1440 = 567 (567/1440インチ) -> 567を16進数に変換 -> 237
10ではなく、237をセットすることで、余白の値は10mmになります。

5400エミュレーターIIがレーザー・プリンター向けに発行するコマンドは、PAGES になりますので、対応するレーザー・プリンターは、PAGES モードを持ち、なおかつパラレル・インターフェイスを持ったモデルになります。InfoPrint1000J シリーズの初代のモデルである InfoPrint13xx シリーズでは良かったのですが、次の世代の InfoPrint17xx シリーズになると、パラレル・インターフェイスの形状がハーフ・ピッチ36ピンと呼ばれる小型のものになりました。その結果、5400エミュレーターIIを取り付けるには、プリンターに付属のハーフ・ピッチ/フル・ピッチ変換アダプターを介することになるのですが、そうすると、5400エミュレーターII自体の重みによって少し垂れ下がったような状態となり、接触不良を起こす場合が出てきたのは、残念なことでした。また、その後は、パラレル・インターフェイス自体が時代遅れとなったのか、PAGES モードを持った高速モデル SP8200 ではパラレル・インターフェイスが無いため、5400エミュレーターIIは使用できないことになったのも、時代の流れとは言え、寂しいものでした。


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と、レーザー・プリンターの組み合わせのお話は長くなりますので、次回にします。

2016年2月6日土曜日

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

1999年のiSUC(アイザック、1年に1回行なわれる AS/400 ユーザーの交流・情報交換会)で、"AS/400 印刷ガイド(中小型プリンター編)と称して行なったセッションの資料を読み返してみると、その中に"パフォーマンス・アップするには"というテーマのページがあります。そこでは、ライン・プリンターの"パフォーマンスが遅い現象"として、次の事例を記載しています。
  • <現象> AS/400 から、PC 経由で、罫線の多い帳票を印刷した時のパフォーマンスが、Twinax 接続時に比べて低下した。
  • <条件> PC の OS は、Windows95/98。PC とプリンターはパラレル接続。PDT印刷。
  • <対策> PC とプリンターの接続をパラレル接続から、LAN 接続に変更する。
  • <該当機種> "5400-006"、"5407-011"、"5417-011"
  • [解説] Twinax 接続の時には、罫線は、制御コード(コマンド)としてプリンターに送られてきます。しかし、PC経由の場合、PCOMM プリンター・セッションで、罫線はイメージ・データに変換されるため、データ量が非常に大きくなります。更に、Windows95/98 では、パラレル・インターフェイスでのデータ処理の優先順位は、他の処理に比べて低くなっています。そこで、優先順位が高いLANポート経由のデータ処理に変更することによって、パフォーマンスの向上が期待できます。
1999年iSUCセッション資料
今から見ると、ライン・プリンターの接続方式は、Twinax 接続だったこと、罫線がイメージ・データに変換されてデータ量が大きくなることが、印刷速度に影響すること、PC とプリンターの接続はパラレル・インターフェイスが標準だったこと、(ここには記載されていませんが)Windows95/98 では、LPR 印刷は標準機能ではサポートされていないため、何かLPR 印刷用のツールを導入する必要があったこと等、正に隔世の感があります。

当時、AS/400 側でも、IBM としての方針もあってと思いますが、Twinax 接続は標準ではサポートされず、徐々にオプションとなっていきました。そうなると、ライン・プリンターを中心とした、AS/400 直結型のプリンターも、LAN(実質的には、TCP/IP) 接続する必要性が高くなりました。その場合、Twinax 接続の世界で、ユーザーが永年慣れ親しんで、当たり前となっていた操作性を落とさずにLAN 接続に移行できることが求められます。その結果、ライン・プリンターを初めに採用されたのが、"Telnet5250E"です。
"Telnet5250"は、元々、TCP/IPの機能の一つとして、5250 端末の画面表示用に、IETF(The Internet Engineering Task Force)で決められた規格です。
https://www.ietf.org/rfc/rfc2877.txt 
Twinax 接続は、IBM が独自に決めた規格でしたが、Telnet の規格の決まった時代は、最早、規格を IBM が決めるのではなく、オープンな場で決める時代に変わったと言えるでしょう。
ただ、プリンターにはそのまま適用することはできません。何故なら、Twinax 接続では実現できていた
  • 用紙切れやジャム等のプリンターのエラー状態を OS/400 に通知する。
  • エラー・メッセージが表示された時に、"メッセージ応答"として、ページ範囲を指定して印刷再開する。
  • スプール送信中に、印刷の"保留"や"取り消し"を指定する。
  • もちろん、接続した時には、OS/400 上に装置記述が自動構成される。
といった機能も盛り込む必要があります。そのために拡張されたことを明示するために、プリンター用には、Telnet5250E(Enhancement)と呼んでいます。

ライン・プリンター"5400-006"用のオプション・カードを皮切りに、"5400"シリーズのライン・プリンターの各種モデル、連続用紙用のレーザー・プリンター"Infoprint 250(5300-025)"、小型のドット・プリンターや、PAGES モードを持つ小型レーザー・プリンター用のオプションである"5400エミュレーターII"等、AS/400 から印刷用に使用されるプリンターでは、Telnet5250E 接続となってきたわけです。
次回は、Telnet5250E の特徴や注意点をお話します。

2015年11月22日日曜日

バーコードの印刷方法 - 第2回 コマンドを使う、もう一別の方法 -

前回お話した"APW"のバーコード・パラメーターを使う方法は、対応できるプリンターの種類や接続方法の条件がありました。また、毎ページ同じ場所のデータを、毎ページ同じ場所に印刷するには良いのですが、それらがページ毎に変化する場合には、対応できません。
そこで、プログラミングが必要となる、手間の掛かる方法ですが、それらの制限を緩和できる方法を、今回はお話します。

1. "5400プリンター拡張コマンド(テキスト・コマンド)"を使用する
このコマンドの仕様は、下記のサイトで公開されています。
http://www.ricoh.co.jp/pps/download/manual/lineimpact/pages_command.html
考え方としては、通常のデータでは無いような3文字("!#%"か"!@&")の後に、「バーコード印刷」「バーコード設定」のコマンドを「文字データ」として、印刷データの中に組み込むと、プリンターがそれらを、文字ではなくコマンドと解釈してバーコードのイメージを生成して印刷するというものです。
インパクト・プリンターでのバーコード印刷サンプル
特徴は、次のとおりです。
- コマンドの構造が簡単であること
- コマンドを文字として入力しますので、スプールを表示した時に、そのまま文字として表示されることにより、後で確認し易いこと
- バーコードの他に、文字拡大、OCR-B フォント指定も指定できること

一方、注意点は
- 使用可能なプリンターは、5400 シリーズのライン・プリンター(モデル006、S06を除く)と、5400エミュレーターIIを使ってTelnet5250E接続した 5577 系とPAGES対応のプリンターになること

- 5400 プリンターや 5400 エミュレーターII の初期設定で、先頭の3文字を設定すること
- コマンドを記述した場所の影響で2行に跨ってしまうと、コマンドの中に「CR+LF」(復帰+改行)が含まれてしまうことになりますので、避けた方が良いこと(次の2つの方法にも共通)
- コマンドと言っても、印刷されない文字データという扱いですから、1ページの中の印刷する文字の無いところに配置すること(次の2つの方法にも共通)
- 特にバーコードを印刷するためのコマンドは、その後、改行することで実行されますから、最後に必ずLF(改行)を送信すること(次の2つの方法にも共通)

です。

2. "//LA// コマンド"を使用する
5557シリーズと、5577-H05/G05 プリンター単体の場合は、5557拡張制御コマンド"//n// コマンド"を使用できます。
バーコード用のコマンドは、下記のサイトで公開されています。
http://www.ricoh.co.jp/pps/download/pdf/5577g05h05_command_enlargement.pdf
http://www.ricoh.co.jp/pps/download/pdf/5577g05h05_command_notes.pdf
コマンドの考え方や使い方は、「1」のコマンドのものとさほど変わりません。
注意点も
- 使用可能なプリンターは、5557 シリーズと、5577 シリーズでも"H05""G05"モデルののドット・プリンターになること
- プリンターの初期設定で「プリンター・タイプ」を「5557モード」に変更すること
- コマンドの中に、何バイトのコマンドかを示す「カウント」を指定しますが、コマンド全体が2行に跨ることは避けること
です。

3. "キャラクター・モード"を使用する
"キャラクター・モード"は、IBM ブランド時代から、ドット・プリンターでも、PAGES モードのレーザー・プリンターでもサポートしてきた機能なので、上記の2つの方法よりも使用可能なプリンターの種類は多くなります。プリンターが解釈できるコマンドを、文字データとしてプリンターに送信するという基本的な考え方は同じで、異なる点は
- 先頭に付加する文字列は、”&$%$"か、"$?!#"の4文字であること
- プリンターが、コマンドやデータとして解釈する部分はその後に続く何バイトかを、4文字の後に2バイトの16進数で追加します。(2文字が1バイトです。この4文字は数に含めません。)
対応機種や実際のコーディングのサンプルは、下記のサイトで公開されています。
http://www.ricoh.co.jp/pps/support/techinfo/character_mode_jp.html
注意点は
- プリンターの初期設定で、先頭の4文字を設定する必要があること
- ライン・プリンターの5400シリーズでは、"5577モード"で使用する場合であっても、キャラクター・モードはサポートしていないこと
(従って、QRコード用のコマンドは、"5577モード"で持っていますが、下で述べる"透過モード"を使わないと、AS/400 からは送信できないということになります。)
他は、上の2つの方法と同様です。


以上の3つの方法は、文字データとして、PC 用のプリンターのコマンドをAS/400から送信し、プリンターの機能としてコマンドとして解釈し、処理する方法です。
そのため、プリンターのモデルによる制約がありますが、もう一つ別の方法として、16進コードで、PC 用のプリンターのコマンドを送信する"透過モード"という方法があります。
こちらの方が、PCOMM のプリンター・セッションの機能として、印刷データの中に16進コードで含まれたプリンター用のコマンドを、プリンターに対してコマンドとして送信する方式なので、プリンターのモデルやメーカーの制約は少なくなります。
しかし、16進で記述することになりますので、文字データして記述するよりも、ハードルは高くなると思います。
この方法に関しても、下記のサイトで詳しい情報を公開しています。
http://www.ricoh.co.jp/pps/support/techinfo/transparent_mode_jp.html

考え方は、キャラクター・モードと似たところがあって、先頭に"03"、そして送信するコマンドのバイト数を付加して、AS/400から送信すると、プリンター・セッションでは、"03"を外し、バイト数の値で指定された長さのコマンドをプリンターに送信するというものです。
従って、あくまでもプリンター・セッション経由、PDT印刷が前提となります。

どの方法にしても、プログラミングのスキルが必要になりますし、実際に印刷しながらの調整は必要になりますので、もっと効率の良い簡単な方法はないのか ? という疑問も出てきます。
そこで、次回は画面上でバーコードを大きさや場所を簡単に指定できるソリューションをご紹介します。



2015年9月22日火曜日

HPT機能を使った印刷 - コマンド変換機能の制約 -

PCOMM の PDT印刷では、PDT ファイルの定義に従って PCOMM のプリンター・セッションが、AS/400 から受信した印刷データの中の制御コードを、5577 形式や PAGES 形式に変換してプリンターに送信します。HPT 機能を使った LAN 直結印刷の場合も同様のコマンド変換を、OS/400 が行ないます。そのプログラムのソース・コードは共通という話を以前に聞いたこともあります。
ただ、実際には、両者の間には次のような違いがあります。

1. HPT 機能では、"AFP"プリンター用のデータを PAGES 形式に変換して、PAGES プリンターに印刷できますが、PCOMM 経由の印刷では対応していません。
"AFP"プリンターに関しては、AS/400 ユーザーのお客様では使用実績が多くないため、このブログでは触れませんので、ここで簡単にご紹介します。
InfoPrint4100


InfoPrint SP8200
"AFP(Advanced Function Presentation)"プリンターには、連続用紙対応の大型高速レーザー・プリンターや、カット紙対応の高速レーザー・プリンターがあります。高速印刷であることは、大量印刷を意味し、大量印刷であることは、ページ抜けや、重複ページの印刷の防止といった"印刷管理"機能を必要とす
ることを意味します。また、Windowsアプリケーションからの印刷のように自由な、文字の種類や大きさ、配置の印刷を、AS/400 から直接行なえるメリットがあります。
しかし、AS/400 にも対応する様々な"帳票ソリューション"(我がMapping Suiteもそうですが)が提供され、プリンターの状況監視も、TCP/IP の世界では"SNMP"プロトコルとそれに対応したツールが実現する今となっては、"AFP"の優位性も少なくなってしまったと言えるかもしれません。
リモートOUTQ の設定で、"メーカー・タイプ及び型式"に"*IBMPAGES300"を指定することで、印刷データが"AFP"プリンター用の場合は、OS/400 が、PAGES コマンドの中のイメージ送りコマンドに変換します。つまり、"AFP" のデータをイメージに変換して印刷する訳です。
この場合、LPR 印刷になりますから、本来の"AFP" プリンターで行なえたプリンターとの双方向通信による印刷管理はできません。プリンターの状態に関わりなく、印刷データを送信したら終了です。
2. "APW"やプリンター・ファイルで指定した次のパラメーターは、5577 形式や PAGES 形式への変換に制約があります。("APW"については、今後、機会を改めてご紹介します。)
  • "APW"のバーコード・パラメーター:PCOMM プリンター・セッションでは変換できません。HPT 機能を使った印刷では、"MRGAPW" の際の"DEVTYPE"に"*SCS"を指定し、HPT では "PAGES" モードへの変換を指定した場合のみ、変換されます。
  • 角丸付き罫線:PCOMM プリンター・セッション経由の場合は、"MRGAPW" の際の"DEVTYPE"に"*PAGES"を指定した場合のみ、HPT では "PAGES" モードへの変換を指定した場合のみ、変換されます。("DEVTYPE"は"*SCS"でも"*PAGES"でも共通)
  • 網掛け:PCOMM プリンター・セッション経由の場合は、"MRGAPW" の際の"DEVTYPE"に"*PAGES"を指定した場合のみ、HPT では "PAGES" モードへの変換を指定した場合のみ、変換されます。("DEVTYPE"は"*SCS"でも"*PAGES"でも共通)
  • 文字拡大(2 x 4 と 4 x 2): "DEVTYPE"で"*PAGES"を指定し、PCOMM プリンター・セッション経由の場合のみ変換されます。
  • 文字拡大(3 x 3):"DEVTYPE"で"*SCS"を指定し、HPT で "PAGES" モードへの変換を指定した場合のみ、変換されます。
  • 文字拡大(4 x 4):"DEVTYPE"で"*SCS"か"*PAGES"を指定し、HPT で "PAGES" モードへの変換を指定した場合のみ、変換されます。
上記以外の"APW"のパラメーターで通常使用されるものは、プリンター・セッション経由の印刷でも、HPT 機能を使った印刷でも変換されますので、コマンド変換で最も注意する必要のあるのは、バーコード・パラメーターになるのではないでしょうか ? 

2015年8月26日水曜日

HPT機能を使った印刷 - リモートOUTQの作成 -

今回は、先ず、LPR 印刷に相当するリモートOUTQからの印刷のために、リモートOUTQを実際に画面を追いながら作っていきます。サンプルとして、OS/400 V7R1 上で、PAGES モードのレーザー・プリンターへの直接印刷用のリモートOUTQ を作ります。
CRTOUTQ初めの画面
リモート・システムと待ち行列の指定
  1. 5250 端末画面で、"CRTOUTQ"というコマンドを実行します。左の画面は"QUSRSYS"というライブラリーに、"IP1000J"というリモートOUTQを作成する場合のサンプル画面です。それらの指定は任意ですが、"リモート・システム"には、必ず"*INTNETADR"を入力して実行キーを押します。(F4 キーを押すと、"*INTNETADR"以外にも選択肢が表示されます。)
  2. そうすると、"リモート印刷装置待ち行列"欄以下が表示されますので、そこに、宛先プリンターのLANカード固有の値を入力します。画面の"lp"(半角小文字)は、通常、多くのレーザー・プリンターや複合機用に使用できるようです。(Windowsの場合の、Standard TCP/IPポートのパラメーターである「キュー名」が、これに該当します。)
  3. 次のページでは、"接続タイプ"には、必ず"*IP"を、"宛先タイプ"には、必ず"*OTHER"を指定します。"ホスト印刷の変換"はデフォルトの"*YES"になっていると思いますので、カーソルをここへ移動して実行キーを押すと、追加のパラメーターが表示されます。
  4. *IBMPAGES300を指定
  5. ここで、次に表示される"メーカー・タイプ及び型式"で、印刷データをどのプリンターのモードに変換するかを指定します。プリンター・セッション経由の印刷では、PDT の選択に該当するわけです。F4 キーを押すと実に多くの選択肢が表示されますが、ここでは、PAGES モードのプリンター用として、2番目の画面に出てくる"*IBMPAGES300"を選択します。
<参考情報>
  •  同じ画面に"*IBM5575"があります。5577 モードに変換するには、これを選択します。("*IBM5575AMOV"は、テストしたことがありません。)
  • PAGES と名前が付いた選択肢が他にもありますが、今までの実績では"*IBMPAGES300"がお勧めです。
  • 他に日本語の印刷に対応した選択肢としては、"*CANLIPS3"があり、これは CANON 社のレーザー・プリンター用ですが、これもテストはしたことがありません。
CANON LIP3用の指定
  • もう一つは、"*ESCPDBCS"です。これは、ESC/P モードのインパクト・プリンター用ですが、これもテストはしたことがありません。
  • インパクト・プリンター用としては、他に、NEC 社プリンター用として"*NECPCPR201"がありますが、今後の修正は無いことが IBM 社のサイトに記載されています。
  • ESC/P用の指定
  • PCL モードのレーザー・プリンター用として、"*HP"で始まる名前のものが多数あります。このモードで日本語を印刷するには、プリンターには日本語用の内蔵フォントがありませんので、OS/400 からフォント・イメージを持った印刷データを送信する必要があります。(HP 社のレーザー・プリンターは日本語内蔵フォントを持っているようですが。) しかし、OS/400 自身もそのままでは日本語フォントのイメージを持っていませんので、AFP プリンター用のフォント・ライセンスを購入(導入)していただき、そのフォントを使用するように指定する必要が出てきます。

2015年7月28日火曜日

プリンター・セッション経由の印刷 第4回 - 追加の設定 -

前回の続きですが、印刷の度に、START_JOB= 以下に記述したコマンドを印刷データの先頭に送信するようにするには、プリンター・セッションのワークステーション・プロファイルの編集が必要です。具体的には次の手順になります。
ワークステーション・プロファイルをメモ帳で開く
  1. コンパイルして作成されたPDTファイルを指定したプリンター・セッションを、独自の名前を付けて保管します。保管されるファイルが、ワークステーション・プロファイルと呼ばれるもので、拡張子は、".ws"です。私のPC上のCA V6.0では、C:\Users\ログイン・ユーザー名\AppData\Roaming\IBM\Client Access\Emulator\private に保管されています。
  2. プリンター・セッションは一旦閉じてください。
  3. このファイルをメモ帳等のテキスト・エディターで開きます。開くと表示のような画面が現れますので、その中に[printers]と書かれた行を見つけます。
  4. その下の行に Use_Default=Y という1行を追加します。
  5. そのファイルを上書き保存して、プリンター・セッションを起動してください。
この1行を追加することによって、プリンター・セッションからの印刷データの先頭には、毎回、自分で設定したコマンドが追加されて、プリンターに送信されます。

他に注意が必要なケースは、1ページの行数が66行を越えるデータの場合です。PDFファイルに戻りますが、メモ帳で開くと、/* Session Parameters */の直下に"MAXIMUM_PAGE_LENGTH=066"という行があります。この行の値が、デフォルトの"66"のままの場合、1ページの中のデータの行数が67以上あると、66行目までしか印刷されません。もし 1 ページに 66 行以上の行数がある場合には、この値を大きくしてください。なお、改ページする行数は、あくまでもプリンター・ファイルで定義されているのであって、ここの値ではありませんから、1ページの行数を越える大き目の値にしておけば良いわけです。

また、今までのトラブル対応の経験の中で判明した、追加設定には次のものがあります。これらは当時のPCOMMやCAのバージョンにおいて有効だったものですが、その後のバージョンでも通用するかどうかは、確認していません。
  • 透過(ASCII Transparent)モードを使用する場合
いずれもう少し詳しくご紹介しますが、5577 モードや PAGES モードの PC プリンターに印刷する場合に、AS/400上のスプール・データの中に、5577 モードや PAGES モードのコマンドを16進コードで埋め込むことができます。これを「透過モード」と言いますが、プリンター・セッション経由で印刷する場合には、次の設定が必要です。
- プリンター・セッションのワークステーション・プロファイルの中の[printer]の下に、 ATRN=Y を1行追加して、プリンター・セッションを再起動します。
  • 新JISフォントを内蔵していない古いモデルのプリンターで、新JIS並びの文字で印刷する
2015年4月13日の投稿で申し上げたように、新JISと旧JISで文字コードが入れ替わった文字の組み合わせが29組あります。
http://as400printhelp.blogspot.jp/2015/04/jisjis.html
現在使用されているプリンターで、新JISに対応していないような古いものは無いと思いますが、もし、そのようなプリンターでも新JIS並びに合わせた文字で印刷するには、次の設定を行います。
- プリンター・セッションのワークステーション・プロファイルの中の[printer]の下に、 OldJIS=Y を1行追加して、プリンター・セッションを再起動します。

2015年7月21日火曜日

プリンター・セッション経由の印刷 第3回 - PDFファイルのコンパイル -

PDFファイルの編集が完了したら、既存の PDF ファイルとは別名で、同じ"Pdfpdf"というフォルダーの下に保存します。次はこれを PDT ファイルにコンパイルすることで、初めて PDT 印刷に使用できるようになります。手順は次のとおりです。
"PDT の選択"ボタン
1. プリンター・セッションの画面でプリンター設定画面を開きます。

2. "PDT ファイルの使用"欄にチェックを入れて、"PDT の選択"ボタンを押します。









"PDF の変換"ボタン

3. "PDT ファイルの選択"画面が表示されるので、"PDF の変換"ボタンを押します。









PDF から PDT への変換

4. "PDF ファイルから PDT ファイルへの変換"画面が表示されるので、"Pdfpdt"フォルダーに保管した PDF ファイル(ここではpages.pdf)を指定して、"変換"ボタンを押します。





正しく変換された場合


5. "PDF ファイル変換ユーティリティー"の画面上で、"テーブルは正しくコンパイルされました"というメッセージが表示されたら、"OK"ボタンを押します。も し、エラーが発生したら、編集した PDF ファイルを開いて、中のコマンドや記述のしかた(1バイトずつスペースを挟んで記述されているか等)をチェックしてください。
生成された PDF の選択



6. "PDT ファイルの選択"画面が自動的に表示されるので、コンパイルされた PDT ファイル(ここでは pages.pdt、PDF ファイルと同じファイル名で、拡張子が pdt になります。)を指定して"OK"ボタンを押します。

編集した PDF ファイルをコンパイルして PDT ファイルを作成し、PDT 印刷用に指定するのはここまでですが、実際にはこれだけでは不十分なケースが多くあります。ほとんどのレーザー・プリンターでは、AS/400 からの印刷だけではなく、Windows のアプリケーションからのドライバー印刷にも自動切換えで使用されます。また、AS/400 からの印刷でも、全てが同じ余白の設定や縮小率の設定では対応しきれないので、何種類かの設定に対応するための PDT ファイルを用意して、それら PDT ファイルに1対1で対応するプリンター・セッションを切り替えて印刷するケースも多くあります。
ところが、PDT 印刷の標準では、PDF ファイルの中で指定した、印刷データの先頭に付加するコマンド
START_JOB=CDS INZ SEL SA4 FA4 SRO P10 LL6
は、1回しか印刷データに付加されません。そのため、例えば、pages.pdt を使ったPDT 印刷の後、Windows ドライバー印刷を行って、プリンターが Windows ドライバー用のモードに変わってしまうと、次の AS/400 からの印刷では、プリンターは Windows ドライバー用のモード のままで切り替わらない可能性が出てきます。また、同じ AS/400 からの印刷でも他の設定で印刷すると、その設定のままの状態となっています。
そこで、印刷データの先頭に付加したコマンドを、毎回、プリンターに送信する必要が出てきます。


2015年7月15日水曜日

プリンター・セッション経由の印刷 第2回 - PDFファイルの編集 -

前回お話したPDTファイルは、プリンター・セッションのプログラムが使用するものなので、中身は読めませんが、元になるPDFファイルは、ユーザーが自分の使用目的に合わせて編集できるようになっています。インパクト・プリンターを使用している場合には、通常はそのままの状態で使用しますが、独自に編集する必要があるのは、次のような場合が考えられます。
  1. 1ページの行数が66行よりも多いデータを印刷する。
  2. 前トラクターと後ろトラクターにそれぞれ2種類の連続用紙をセットして、それを操作パネルのスイッチを使って手動で切り替える代わりに、OUTQを選択することで自動的に切り替える。
これらに対応するための方法は、基本的にレーザー・プリンター向けの編集方法と考え方は同じですから、この後はレーザー・プリンターを使用する際の編集方法に話を進めます。
レーザー・プリンターは、ページ・プリンターという呼び方もあるように、ページ単位で印刷処理します。つまり、プリンター内で1ページ分の印刷データが準備できてから印刷動作を開始します。その結果、インパクト・プリンターではできない
  • 縮小印刷
  • 用紙方向の縦長・横長指定
という機能がありますし、更にカット紙用のレーザー・プリンターでは
  • 用紙トレイ選択・排紙トレイ選択
  • 両面印刷(長辺綴じ・短辺綴じ指定)
  • 上下左右の余白設定
といった機能を持っていて、これらを組み合わせた設定をPDTファイルに組み込むことで、自動的に希望の印刷結果が得られるようになります。
では、早速、PAGESモードのプリンター用のPDFファイルを使ってご説明します。PAGESモード用のPDFファイルは、PCOMMやCA標準の ibm5585.pdf を元に作られたものが、下記のサイトで公開されています。
http://www.ricoh.co.jp/pps/download/utility/pdt_pdf.html
このファイルを PC にダウンロードして、メモ帳等のエディターで開きます。(ダブル・クリックするとAdobe Reader が起動してエラーが表示されますので、ご注意ください。)
上から順番に見ていくと、すぐに"BEGIN_MACROS"があります。
(/*と*/で挟まれた部分は、コメント・アウト、つまり説明用のテキストで、機能には関係しません。)
初めの"NUL EQU 00"は、このPDFファイルの中では、"NUL"という3文字は、16進コードのコマンド"00"を表わしているという定義になります。つまり、任意の英数3文字 EQU(Equal イコール)16進コードのコマンドという書き方で、コマンドを英数3文字に置き換えているわけです。更に先を見ると、PAGES独自のコマンドの例として、用紙方向横長指定として、SRO EQU 1B 7E 50 00 01 03 と書かれた行があります。これは、SRO は、16進コードのコマンド 1B 7E 50 00 01 03 を置き換えるという意味になります。
AS/400から送られる印刷データの先頭に、これらのコマンドを追加するための指定は、"BEGIN_MACROS"の先にある
/*                     Control Codes                                  */
の直下の START_JOB= の行で行います。デフォルトで記述されている
START_JOB=CDS INZ SEL P10 LL6
は、
CDS(Change Data Stream)プリンターをPAGESモードにセットする -> INZ(Initialize)初期化する -> SEL(Select)印刷可能状態にする -> P10 文字ピッチを10cpiにする ->LL6 行ピッチを6lpiにする
という順番でプリンターにコマンドを送ることを意味しています。そこで、この行を、その下にコメント・アウトされているサンプル
START_JOB=CDS INZ SEL SA4 FA4 SRO P10 LL6
に置き換えると、プリンターをPAGESモードに設定し(CDS)、A4用紙のトレイから給紙して(SA4)、連続帳票からA4への縮小(FA4)して、印刷する設定になります。
なお、細かい話ですが、PAGESの場合、トレイ指定コマンド(ここではSA4)と、縮小コマンド(ここではFA4)は、この順番で記述しないと指定が有効になりませんので、ご注意ください。
また、余白の設定を併せて行うとすると、少し難しくなります。MACROの中に「余白ヘッダー部」として"MRG"があります。これを使うのですが、これはヘッダー部だけ、つまり何ミリにするかという値が含まれていませんので、START_JOB=の後ろに組み込む時に MRG の後ろに値を追加する必要があります。
余白の値は、値(ミリ)をインチに換算した値 x 1440を16進数にした値を、1バイトずつスペースで区切って記述します。例えば、用紙方向横長で、上余白10mm、左余白15mmに設定するには
  1. 上余白の値の計算 10mm÷25.4mm/インチx1440 = 567 -> 16進に換算= 0237 
  2. 左余白の値の計算 15mm÷25.4mm/インチx1440 = 850 -> 16進に換算= 0352
  3. 用紙方向横長のMACROは SRO
  4. MRGの後ろに左余白、上余白の順で1バイトずつブランクを挟んで記述します。
START_JOB=CDS INZ SEL P10 LL6 FB4 SB4 SRO MRG 00 00 03 52 00 00 02 37 00 00
 

このコマンドで設定した余白の値は、プリンターの操作パネルから初期設定で指定した
余白の値の影響は受けません。

余白の値の定義

2015年7月8日水曜日

プリンター・セッション経由の印刷 第1回 - PDT印刷とは -

前回までのお話で、ポートの設定もできたので、次はいよいよ、プリンター・セッションのお話にしたいと思います。PCOMMやクライアント・アクセス(以降CA)、あるいはIBM製以外のエミュレーターでも考え方は同じで、プリンター・セッション経由の印刷には、
  • プリンター・セッションが印刷データを生成する方式
  • 一般的な Windows のアプリケーションと同様に、プリンター・セッションが、Windowsとデータのやり取りをして、プリンター・ドライバーが印刷データを生成する方式
の2種類の方法があります。前者はPCOMMやCAでは、「PDT印刷」と呼ばれています。PDT とは、Printer Definition Table の略で、5577 用の場合には、AS/400から送信されてくる文字コードをEBCDIC から Shift-JIS へ、制御コマンドは SCS形式から 5577形式へ変換するための参照テーブル(表)を意味しています。つまり、この表を参照しながら、プリンター・セッションがAS/400からの印刷データを 5577系のプリンターで印刷可能なデータ形式に変換する訳です。
PCOMMやCAには標準で用意されている PDT には、日本語対応のものは
  • 5577
  • ESC/P
  • PAGES
  • LIPS III
英語対応のものは
  • PPDS(IBMプロプリンター)
  • PCL
  • Basic ASCII
  • EPSON
 となっています。
標準添付されているPDTファイル
添付の画面は、CA V.6のフォルダーとファイルの構成ですが、"Pdfpdf"というフォルダーの中にこれらの PDT ファイルが用意されています。この中で、"PAGES"プリンター用に使用するのは、”ibm5585.pdt"です。"ibm5587.pdt"は古いバージョンで、これを指定すると正しい印刷結果が得られないことがありますので、ご注意ください。
"ibm5577b.pdt"に関しては、かつて、このPDTを指定すると、罫線印刷用の SCSコマンドを 5577 用の罫線コマンドに変換できたというお客様からの情報をお聞きしたことがありますが、PCOMMやCAのバージョンが変わると変換できなかったこともありましたので、現時点では"ibm5577.pdt"との違いは無いと思われます。

プリンター・セッションのPDT印刷の設定方法は、プリンター・セッションの画面で、「停止」ボタンを押して「作動可能」ランプを緑から黒に変えた後、「ファイル」->「プリンター設定」を選択して表示された画面(添付)で、「PDTファイルの使用」欄にチェックを入れます。そうすると、「PDTの選択」ボタンが使える状態に変わりますので、このボタンを押します。
プリンター設定画面

PDT選択画面

そうすると、左のような「PDTファイルの選択」画面が表示されますので、使用するプリンターに合わせたPDTファイルを指定して、保存します。
インパクト・プリンターを使用する場合には、通常はこの設定だけで終了ですが、レーザー・プリンターの場合には、「縮小」や「両面印刷」といったプリンター制御のための設定が必要になります。そのためには、「PDFファイル」を編集して、それをPDTファイルにコンパイルする必要がありますが、その方法は次回にお話します。