始めの言葉

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

2016年7月23日土曜日

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

  • 5427-001

5327 プリンターの上位機種という位置づけで発表されたのが、5427-001 プリンターです。"001"というモデル名しか無いことから、Twinax 接続のみだったことが、分かります。
<"5427-001"プリンターの主な仕様>
- 印刷速度 : 500 行/分(通常速モード)
                  640行/分(高速モード、18x24 ドットという高さ2/3の文字になります。)
- 想定月間平均印刷枚数 : 12,000枚(15x11 インチ・サイズ用紙)
- 複写枚数 : オリジナル + 4 枚(コピー強化モード無し)
- 内蔵日本語フォント : IBM 明朝体、旧JIS規格
- 英小文字と半角カナの共存印刷 : 不可
- バーコード・コマンド : 非対応
- 販売期間 : 1992年 - 2002年
- 保守終了 : 2008年3月31日

当時は最上位モデルという位置づけでしたが、現行のライン・プリンターの仕様と比較すると、印刷速度も、想定月間平均印刷枚数も、"中速"プリンター・クラスだったことに、時代の変化を感じさせられます。
  • 5417-001、5417-011

5327-001/011の後継機という位置づけプリンターです。5327 同様に、"001"モデルが"Twinax"接続、"011"モデルが"パラレル・インターフェイス"接続です。
外観が大きく変わり、トップ・カバーは金属ではなく樹脂製に変わって、丸みを帯びたデザインとなっています。ただ、そのため、印刷後の用紙を置くと、滑って落下するという、お客様のご指摘をいただいたことがあります。
また、機能面では、5327 と比較すると、数々の機能拡張が行なわれました。
  1. 高速モードや超高速モードを実現するために、横方向のドットをそれぞれ1/3、2/3間引く方式が取り入れられました。周囲のドットの配置に配慮して適切なドットを間引くロジックの効果によって、文字の品質を然程落とさず、縦24ドットの文字で高速化を実現しています。この方式は、その後の5400シリーズでも採用されています。
  2. 同じ行を2度打ちする"コピー強化モード"により、複写可能枚数は、オリジナル+7枚まで増えました。
  3. "英小文字セット"、"カナ文字セット"と呼ぶ2種類の半角文字のセットを内蔵して選択可能としたことにより、"CCSID5026"と"CCSID5035"という 2種類の、英小文字と半角カナ文字が共存する印刷に対応しました。(文字コードの話 - 文字化けはなぜ起きるか? 参照)
  4. バーコード・コマンドに対応しました。バーコードを含む帳票を設計するための"APW(APSU)"も用意されたことで、AS/400 の世界で簡単にバーコード付きの帳票を印刷できるようになりました。(ただし、Twinax接続の場合のみ) 
5417プリンター外観
<"5417-001/011"プリンターの主な仕様>
- 印刷速度 : 330 行/分(通常速モード)
                  430行/分(高速モード、横方向1/3ドット間引き)
                  500行/分(超高速モード、横方向2/3ドット間引き)
- 想定月間平均印刷枚数 : 8,000枚(15x11 インチ・サイズ用紙)
- 複写枚数 : オリジナル + 7 枚(コピー強化モード)
- 内蔵日本語フォント : IBM 明朝体、旧JIS規格
- 英小文字と半角カナの共存印刷 : 可
- バーコード・コマンド : 対応(6種類)

- 販売期間 : 1994年 - 1998年
- 保守終了 : 2005?年


超高速  高速 通常速モードのドット構成例
ドットを間引かない、本来の 24x24 ドットの文字を印刷するモードを"通常速"モードと名づけて、操作パネルを始め、マニュアルやカタログに記載しましたが、他社のライン・プリンターでは、1/3ドットを間引く"高速モード"を"通常速モード"と呼ぶようになっています。この呼び方の違いで、誤解を招いた例は少なくなく、未だに続いています。

5327 プリンターの後継機という位置づけだったにも関わらず、想定月間平均印刷枚数が 2/3 となっていたことにより、耐久性の面でトラブルとなってしまったお客様があったことの反省が、後の5400-006モデルに生かされたということは、忘れられません。

2016年7月17日日曜日

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

これからしばらくは、プリンター自体、特に AS/400 からの印刷では標準と言えた、"ライン・プリンター"のお話を続けたいと思います。今回は、日本語ライン・プリンターの歴史です。
  • 5227-001、5227-011

 180dpi(ドット/インチ)の解像度により、24x24ドットの漢字を印刷できる、日本語ライン・プリンターの最初のモデルです。
これ以前に、5224 や 5225 という日本語を印刷できるライン・プリンターがあったということを聞いたことがあります。実物は私も見たことがありません。ただ、解像度が低いため、日本語プリンターの範疇には入れられないと聞きました。5577 シリーズと同じ、180dpi の解像度で、24x24 ドットの漢字が印刷できる、国内製造の印刷機構を持ったライン・プリンターとしては、初めてのモデルであることは、確かです。

<001モデルと011モデルの違い>
"001"モデルは、Twinax インターフェイスを持った、System36/38(発表当時は、まだ AS/400 は出ていません。)接続用のモデルです。"001"モデルの後に発表された"011"モデルは、COAX インターフェイスを持った、メイン・フレームと呼ばれる汎用コンピューター接続用のものです。

<"5227-001"プリンターの主な仕様>

- 印刷速度 : 180 行/分
- 想定月間平均印刷枚数 : 8,000枚(15x11 インチ・サイズ用紙)
- 複写枚数 : オリジナル + 4 枚(コピー強化モード無し)
- 内蔵日本語フォント : IBM 明朝体、旧JIS規格
- 英小文字と半角カナの共存印刷 : 不可
- バーコード・コマンド : 非対応
- 販売期間 : 1985年(001モデル)1986(011モデル)年 - 1995/05/31
- 保守終了 : 2000年12月31日
  • 5327-001、5327-011

5227 プリンターを高速化したモデルです。そのため、耐久性も 1.5 倍に向上しています。
また、5327 プリンター用に開発されたインク・リボンやカセットは、5427、5400-L10/F10を除く、その後のライン・プリンターのモデルに共通に使用できるようになっています。
5327プリンター

<001モデルと011モデルの違い>
"001"モデルは、Twinax インターフェイスを持った、AS/400 接続用のモデルです。一方、"011"モデルは、5227 の場合と異なり、インターフェイスはパラレル・インターフェイスとなっています。そのため、制御コマンドも"5577"モードとなっています。
5227-011モデル同様、汎用機からの印刷を想定しているのですが、3270PC(DOS版のホスト・エミュレーター)や、ダム端末と呼ばれていたホスト接続専用端末に接続して、それらを介してホスト・システムと接続する仕組みとなっています。これは、5227-011のように、プリンターが COAX インターフェイスを持つということは、ホスト・エミュレーション端末をプリンターの内部に持つことを意味していて、その結果、多大な開発コストが掛かることになります。5227 の時のそのような苦い経験を生かして、5327-011 では、ホスト・システムとの間に端末を置くこととしたわけです。

<"5327-001"プリンターの主な仕様>
- 印刷速度 : 330 行/分(通常速モード)
                  430行/分(高速モード、18x24 ドットという高さ2/3の文字になります。)
- 想定月間平均印刷枚数 : 12,000枚(15x11 インチ・サイズ用紙)
- 複写枚数 : オリジナル + 4 枚(コピー強化モード無し)
- 内蔵日本語フォント : IBM 明朝体、旧JIS規格
- 英小文字と半角カナの共存印刷 : 不可
- バーコード・コマンド : 非対応
- 販売期間 : 1988年 - 1992/02/24
- 保守終了 : 2002年12月31日

余談ですが、5327が開発された時には、その下位モデルとしては、5577 プリンターを Twinax 接続でSCSコマンド対応とした"5317"プリンターが、上位モデルとしては、連続用紙とカット紙両用のレーザー・プリンター"5337"プリンターが、開発、発表されました。しかし、残念ながら、どちらも期待された程には、実績を残せませんでした。330行/分という印刷速度を持つライン・プリンター"5327-001"が、AS/400プリンティングの世界では、圧倒的に主流を占めたと言っても過言ではない実績を残しました。

2016年7月9日土曜日

QRコードの印刷方法 - 第2回 帳票アプリケーションを使う -

前回お話した、プリンターの持っているコマンドを送信する方法は、QRコードのイメージをプリンター内部の処理で生成するものです。そのためには、プログラムを用意して、プリンターにコマンドを送信する仕組みを準備する必要がありました。
今回お話しするのは、予めQRコードのイメージを生成しておいてプリンターに送信し、プリンターはQRコードということを意識することなく、他のデータと共に、単なるイメージを印刷するという仕組みです。この方式のメリットは、次のとおりです。
  • プリンターのコマンドに依存しないため、プリンターのメーカーや機種に関わらず、QRコードを印刷できる。つまり、QRコードのコマンドを持っていないプリンターでも印刷できることであり、複数のメーカーのプリンターが混在していても、共通のQRコード付きの帳票を印刷できることでもあります。
  • プログラムを開発する手間が掛からない。
しかし、そのためには、何らかの帳票アプリケーションが必要になります。ここでは、今まで何回かご紹介してきた、"Mapping Suite"を使うケースをお話しします。

MapDrawを使ったQRコードの設計
1. バーコードの印刷方法 - 第3回 もっと柔軟な方法 - Mapping Suite の場合-1でご紹介したように

住所の1行目をQRコードに指定する
MapDrawという帳票設計ツールでは、バーコード用のゾーンを定義できます。QRコードの場合には、バーコードの種類としてQRコードを指定します。(フォントの指定は不要です。)

2. QRコードの大きさを調整するには、"ゾーンのプロパティ"画面の"詳細"ボタンを押します。"バー
バーコードの幅の指定


QRコードのプレビュー
コードの"幅"の値を大きくすることで、QRコードの大きさを大きくすることができます。
デフォルトの値は、左の画面のように"2"となっています。その時のQRコードの大きさは、その右の画面のように、10ポイントの文字の大きさと比べても分かるように、小さめのサイズとなっています。
そこで、例えば、"6"に変えると下のプレビュー画面のような大きさに変わります。
"6"の時のQRコード





3. この帳票では、2行に別れた住所情報を1つのQRコードにする必要があります。そのような場合は、MapDraw の"メモリー"機能を使用します。
住所データの1行目に対して、"タイプ"を"メモリー"とし、その選択肢としては"テキスト・メモリー"を指定したゾーン(ここでは、"QRM1"というゾーン名)を定義します。
メモリー・ゾーンは、MapDraw の画面上は、ピンク色で表示されます。メモリーするだけですから、この段階ではプレビューしても、何も表示されません。
その下の行の住所情報に対しても同様に、"QR2M"と名づけたメモリー・ゾーンを定義します。
4. 以上で準備が整いましたので、QRコードを表示するためのゾーンを定義します。ポイントは、次の2点です。
QRコードのゾーンの定義
- "データの位置"の"長さ"を"0"とすること(メモリー・ゾーンの値を使用するため、スプール・データは使用しないからです。)
- "ゾーンの後に追加する文字"欄に、"[[QRM1]][[QRM2]]"と指定すること(大括弧2つで囲んだメモリー・ゾーンの文字列を連結して、QRコードにするデータとして扱うためです。)


MapDraw の画面は、次のようになり、プレ
MapDraw MapF画面
ビューの結果は、下の画面のようになります。

この画面を携帯電話等で読み取ってみると、2行の住所情報をデータとして、QRコードができていることが確認できます。

この後、PDF ファイルを生成したり、PCL形式の印刷データを生成して印刷するという処理は、Mapping Suite 共通の手順になります。


 


MapDraw プレビュー画面

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年6月19日日曜日

連続用紙への印刷から、カット紙への印刷に移行する -第14回 PDFダイレクト印刷における印刷制御-

Mapping では、生成した PDF ファイルをスプールとして、OUTQを通して、PDF ダイレクト印刷機能を持ったプリンターや複合機に印刷させるコマンドがあります。
MAPIFS2PRTコマンド追加のパラメーター
それが、"MAPIFS2PRT"コマンドで、前々回に、その画面とパラメーターをご紹介しています。その画面で、"F10= 追加のパラメーター"を実行し、次の画面に移動すると、ここにあるように
Insert this file before
Insert this file after
というパラメーターが指定できるようになることが、分かります。

Insert this file before
には、前回作成した、第2給紙トレイを指定するための PJL コマンドを記述したファイル、"settray2.pjl"とそのファイルの保管場所を、次のように記述します。
/mapping/pjl/settray2.pjl

Insert this file after
には、PJL コマンドを使った制御の終了を表わすための共通のファイル、"PJL_after.pjl"とその保管場所を次のように記述します。
/mapping/pjl/PJL_after.pjl

以上の指定によって、"MAPIFS2PRT"コマンドの1画面目で指定した PDF ファイルに対して、前後にこれらの PJL コマンドを付加し、1画面目で指定した OUTQ を通して、その先のプリンターに直接印刷させることができます。
これは、印刷に使用するプリンターや複合機で対応している PJL コマンドが、前回のお話のような方法などを使って分かれば、メーカーを問わず、AS/400 上の Mapping で生成した PDF ファイルを、直接印刷できるということも意味しています。
(もちろん、両面印刷等の制御が不要で、単に PDF ファイルを印刷することさえできれば良いということであれば、PJL コマンドを調べる必要はありません。)

また、元々、PJL コマンドの基本的な仕様は、メーカー間で共通ですから、"MAPIFS2PRT"コマンド
MAPIFS2PRTコマンドのUse PJLパラメーター
の1画面目のパラメーター"Use PJL"の値を"*YES"に変更しておけば、他のパラメーターの PJL コマンド
  • "Input bin(TRAY)" <- 給紙トレイ
  • "Output bin(OUTBIN)" <- 排紙トレイ
  • "Quantity(QTY)" <- 印刷部数
  • "Duplex(DUPLEX)" <- 両面印刷
が付加されます。
ただ、これらのパラメーターの指定の結果として付加される PJL コマンドに対する動きが、メーカーによって異なる可能性は、十分あり得ますので、実際にプリンターや複合機に印刷させながらテストする必要はあります。
例えば、"両面印刷"にしても、この画面のパラメーターだけでは、"短辺綴じ"か"長辺綴じ"かの指定ができません。もし、印刷結果が、期待通りの綴じ方にならなかった場合には、やはり、PJL コマンドのファイルを用意することになります。

以上は、PDF ダイレクト印刷機能を持ったプリンターに対して、LAN 直結で AS/400 から直接印刷
MVPを経由した PDF の印刷処理
するための方法でした。使用するプリンターや複合機に、PDF ダイレクト印刷の機能が無い場合には、生成した PDF ファイルを、同じ"MAPIFS2PRT"コマンドを使って送信するのですが、その時に使用する OUTQ の送信先(IPアドレス)は、PCになります。
その PC 上に、Mapping のオプション・ライセンスである"Mapping Virtual Printer(略して MVP と呼んでいます)"というツールを導入設定しておくと、MVP は、PDF ファイルが送信されてきたことを自動的に検知し、Adobe Reader と使用するプリンターのドライバーを使って、印刷します。
この場合は、給紙トレイの指定や、両面印刷の指定は、PC 上のドライバーのプロパティの設定が有効になりますので、PDF ダイレクト印刷の時に"MAPIFS2PRT"コマンドで指定した PJL コマンドは無効です。
この印刷方式では、PC、もしくは、PC サーバーを介した印刷になりますが、Windows プリンター・ドライバーさえあれば、ラベル・プリンターも含む、様々なメーカーの、様々なタイプのプリンターに自動印刷できるようになることが、大きなメリットです。



2016年6月11日土曜日

連続用紙への印刷から、カット紙への印刷に移行する -第13回 PDFダイレクト印刷における印刷制御-

事前印刷された連続用紙への印刷をカット紙への印刷に切り替えることの目的が何だったかを思い出してみると、その一つには、コスト削減がありました。生成された PDF ファイルを直接、プリンターや複合機に印刷させる際に、両面印刷で行なうことは、コスト削減の有効な手段になりますし、その際に、最後にプリンターの後処理機構でステープル止めを行なったり、1ページ目だけは色紙を使って片面印刷を行なえば、印刷後の仕分けを楽に、正確に行なえるようになり、業務の効率化にも繋がります。
PDF ファイルを"Adobe Reader"で開いて、プリンター・ドライバーを使って印刷するという、人手によるオペレーションでは、ドライバーのプロパティ画面で、そのような設定を行なうことができます。(もちろん、プリンターの持っている機能に依存しますが)
しかし、AS/400 上で Mapping が PDF ファイルを生成し、それを OUTQ を通して LAN 直結されたプリンターに直接印刷させる場合には、そのような設定を指定する場所も、タイミングもありません。
そこで、出てくるのが"PJLコマンド"です。PJLコマンドについては、今まで2回、簡単にお話したことがありますが、今回はもう少し実践的なお話をしたいと思います。
使用するプリンターが、どのようなPJLコマンドをサポートしているか、それがPDFダイレクト印刷の制御に使用できるかどうかは、正式には、プリンター・メーカーに問い合わせて仕様書等を入手する必要がありますが、ここでは、希望する制御に対応したPJLコマンドを簡単に調べて、実際に有効かどうかを調べるための手順をお話します。
考え方は簡単です。ご自分の使用するプリンターや複合機の、Windowsプリンター・ドライバーのプロパティ画面で設定できる様々な機能は、実は、そのまま、そのプリンターの持っているPJLコマンドが対応しています。そこで、プロパティを変更する前と後の印刷データを比較することにより、ドライバーから発行される、どのPJLコマンドがその機能に対応しているかを見つけ出すという考え方です。
ただし、そのPJLコマンドは、Windowsからのドライバー印刷が前提のものですから、全てがそのままPDFダイレクト印刷でも機能するとは、言い切れないという点を、予めご承知おきください。
手順は、次のとおりです。
1. プリンターのドライバーのプロパティ画面で、「ポート」を「FILE:」に変更して保存します。
ポートをFILE:に変更















2. メモ帳に簡単なデータ(例:ABC)を書き込んでから、印刷を行なうと、下記の画面のように「出力
ファイル名と保存場所の指定
先ファイル名」を指定する画面が表示されます。そこで、「c:\ファイル名(例:ABC1.dat)」を指定して、OKボタンを押します。(これによって、ドライバーがデフォルトの設定の時の印刷データが、ファイルに保存されます。)






3. PDFダイレクト印刷時に指定したい設定(例:給紙トレイをトレイ2に固定する)を、プリンター・ドライ
用紙トレイを2に固定
バーのプロパティ画面で指定してから、同じメモ帳のデータを印刷します。その際に指定するファイル名は、"2."のものと別にします。(例:ABC2.dat)










4. Cドライブの直下に保存された2つのファイル(例:ABC1.datとABC2.dat)をメモ帳で開いて比較し
2箇所のPJLコマンドの違い
ます。
(初めに@PJLで始まる設定のための行が、何行もあることに驚かれると思います。)
この例では、
  • 「@PJL SET AUTOTRAYCHANGE」が、「ON」から「OFF」に
  • 「@PJL SET TRAY」が、「ALL」から「TRAY2」に
変更されたことが分かります。




5. そこで、"ABC2.dat"ファイルに対して、次の編集を行ってから別名(例:settray2.pjl)保存します。
settra2.pjlの内容
(1) @PJL JOB NAME = "無題 - メモ帳"を@PJL JOB NAME = "Mapping Job"に変更します。(この名前は任意です。)

(2) 最終行の@PJL ENTER LANGUAGE = RPCSを@PJL ENTER LANGUAGE = PDFに変更します。これは、プリンターをPDFダイレクト印刷モードに切り替えるためのものです。(多くのプリンターでは、送信されてきた印刷データの種類を自動検知して、そのモードに切り替わるようにできていますが、誤検知する場合を考慮して、この変更は必須と考えてください。)


(3) (1)(2)の2行と、@PJL SET AUTOTRAYCHANGE = OFF、@PJL SET TRAY = TRAY2の2行を残して、@PJLで始まる行と、@PJL ENTER LANGUAGE = PDFより後ろのデータを削除します。

(4) @PJL ENTER LANGUAGE = PDFの直後に、改行を追加します。(これは必須です。ご注意ください。)

以上の編集の結果、"settray2.pjl"ファイルの内容は、上の画面のようになります。このファイルをIFS 上の決めた場所に保存します。(例 : /mapping/pjl/settray2.pjl)

6. 印刷する PDF ファイルの先頭に付けるPJLコマンドのファイルの他に、後に付けるファイルが必
PJL_after.pjlファイルの内容
要です。つまり、PDF ファイルの前後をPJLコマンドのファイルで挟むのですが、後ろのファイルは終了を指定するためのものなので、印刷制御に関わらず共通です。
メモ帳(テキスト形式)で開くと、次のようなものです。
@PJL EOJ NAME = "Mapping Job"が共通の部分です。つまり、初めに@PJL JOB NAME = "Mapping Job"で指定した JOB の名前の JOB が EOJ(End Of Job)になるという意味です。
この画面の例は、リコー社製プリンター用のものなので、その後に、標準のRPCSモードに戻すための16進コードが書き込まれています。従って、それ以外の場合には、この部分は削除するか、各プリンター・メーカーの仕様に合わせてください。このファイルを、例えば、"PJL_after.pjl"と名づけて、IFS上の決めた場所に保存します。(例 : /mapping/pjl/PJL_after.pjl)

このようにして準備したPJLコマンドのファイルを、前回お話した"MAPIFS2PRT"コマンドのパラメーターとして指定することにより、PDF ファイルの前後をこれらのPJLコマンドで挟んでプリンターに送信するのですが、詳しくは次回にお話しします。

2016年6月5日日曜日

連続用紙への印刷から、カット紙への印刷に移行する -第12回 PDFファイルの生成とその印刷-

19. 前回までの操作によって、AS/400 上の IFS にある、Mapping が使用する区画にプロジェクト・ファイ
Mapping メイン・メニュー
ルを生成・保存したら、今度は、それを OS/400 上の Mapping のプログラムが使用できるようにするために、"オブジェクト"に変換します。変換には、先ず Mapping メイン・メニューの中の"2 Mapping オブジェクトの取り込み"を実行します。









20. 画面には、先ほど保存した2つのプロジェクト・ファイル"OKURIJO00010"と"OKURIJO00020"
Mapping オブジェクトの取り込み
が、表示されています。(表示される名前は、ファイル名ではなく、設計する時に決めた"フォーマット名""シーケンス"です。)
それぞれに対して、"1 = 取り込み"を実行すると、オブジェクトに変換されますので、準備は完了です。









21. PDF ファイルを生成するためのコマンドは、"MAPSPLPDF"です。コマンド・ラインから入力し
MAPSPLPDF コマンドのパラメーター
て、"F4"キーを押すと、次のような画面が表示されます。
初めの 4 つのパラメーターは、対象となるスプールを特定するためのものです。
次の"開始ページ"と"終了ページ"は、特定したスプールにおいて、PDF ファイルを生成するページの範囲を指定するものです。画面のように、デフォルトの"1"と"999999"とした場合は、全てのページを対象とすることを意味します。
次は、適用するプロジェクトのフォーマット名とシーケンスを指定する欄です。今回作った"OKURIJO"のように、2 種類のフォーマットをページ毎に適用する場合には、右に表示された選択肢の中の"*MRG"を指定します。
次は、生成される PDF ファイルのファイル名です。例えば、"OKURIJO.pdf" というように、拡張子まで入力します。ただし、実運用では、互いに上書きにならないような、そして後から分かりやすいファイル名を自動的に指定するように、設定することになります。
次は、保存先のパスです。IFS 上のフォルダーを指定しますが、存在しないフォルダー名を指定した時には、Mapping が、そのフォルダーを作成してから保存します。
22. 更に、"F10 追加のパラメーター"を押してから次の画面に切り替えて、コード・ページを指定しま
MAPSPLPDF コード・ページの指定
す。ここでは、日本語の場合、半角カタカナや、半角英小文字の文字化けを防ぐために、290、若しくは、1027 を指定します。適用するスプールの言語に応じたコード・ページを指定することが重要です。
そして実行キーを押すと、Mapping が PDF ファイルを生成します。








 以上の手順で、PDF ファイルが IFS 上に生成されるのですが、実運用の多くのケースでは、その後、PDF ファイルを印刷する、ファイル・サーバーに移動する、メール送信する、FAX 送信に使用するという処理が必要となります。
ここでは、次に、印刷するための流れをお話します。

レーザー・プリンターや複合機では、各メーカー独自のページ記述言語とそれに対応するWindows
Mapping からの直接印刷の流れ
プリンター・ドライバーが用意されています。しかし、仕様を注意して見ると、その他に、"PDF"とか"PDF ダイレクト"と書かれたモードを持っているものがあることに気が付きます。
PDF ファイルの印刷は通常、人が、Windows上の Adobe Reader でファイルを開き、印刷メニューでプリンター・ドライバーを選択して行ないます。それに対して、PDF ダイレクト印刷とは、その操作をプリンター自身が自動的に行なうものです。つまり、プリンターに対して、PDF ファイルを送信すると、プリンターがそれを検知して、内部で開いて印刷するという動きをします。
その機能を持ったプリンターや複合機なら、そのプリンターのIPアドレスを宛先アドレスとして作成した、OS/400 上の OUTQ に対して、PDF ファイルをスプールとして送信できれば、AS/400 から、PC を介さず、LAN直結で印刷させることができます。

MAPIFS2PRTコマンドのパラメーター
そのような印刷のために、Mapping で用意されているコマンドが、"MAPIFS2PRT"コマンドです。
"MAPIFS2PRT" コマンドのパラメーターの基本は、次のようになっています。
初めに、印刷する対象となる PDF ファイルの保管場所とファイル名を指定します。例えば、/home/mapping/OKURIJO.pdf となります。
次は、スプール・ファイル名です。これは、PDF ファイルをスプールとしてプリンターに送信する時の名前ですから、全く任意です。(PDF ファイル生成の時の元になったスプールとは、関係ありません。)
次は、送信先のプリンターの OUTQ 名と、そのライブラリー名です。
以上の 3 つのパラメーターを指定して、コマンドを実行するだけで、PDF ファイルを、AS/400 と LAN 直結したプリンターや複合機に印刷させることができます。
ただし、これだけでは不十分で、例えば、印刷部数や、両面印刷の指定など、Windows からの手動印刷なら、プリンター・ドライバーのプロパティ画面で指定するような印刷制御が必要な場合が出てきます。
その方法に関しては、次回以降でお話します。