始めの言葉

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

2016年1月31日日曜日

HPT機能を使った印刷 - 追加情報 -

1. 印刷部数の指定
"HPT機能を使った印刷 - LAN 直結印刷の基本"の回で、印刷部数の指定は可能とお話したのですが、そのための設定を""HPT機能を使った印刷 - リモートOUTQの作成"の回でお話していなかったので、ここでお話しします。
印刷部数を指定できるようにするには、リモートOUTQを作成する時に指定するパラメーターの中で、宛先オプション"DESTOPT"に"XAIX"を指定する必要があります。
何故、その指定が必要なのかは分かりませんが、OS/400 の動きとしては、IBM Knowledge Center では次のように説明されています。

>XAIX を指定した場合、 リモート印刷装置書き出しプログラムは、プリンターへの接続を開き、 データ・ファイルと制御ファイルの複数コピーを送信します。
宛先オプション"DSTOPT"の指定

LPR 印刷では、データ・ファイルと制御ファイルのセットをプリンターに送信することを、以前にお話ししたことがあると思いますが、それを思い出してこの説明を読むと、指定された印刷部数の数だけ繰り返して、データ・ファイルと制御ファイルのセットをプリンターに送信すると読み取れます。
つまり、プリンターに対してコピー部数を指定するコマンドを送信するのではなく、コピー部数分だけ繰り返して同じ印刷データを送信するという意味になります。

2. HPT機能を使った印刷の3番目の指定方法
OS/400 上で印刷データ形式を変換する HPT 機能を使って、PC を介さずに LAN 直結印刷する方法には、実はもう一つ、"IPP"を使った OUTQ を使う方法です。"IPP"は、Internet Printing Protocol の略で、Microsfoft社が提唱する印刷データ送信方式です。提唱されてから何年も経ちますが、普及したと言えるところまでは行っていないようです。
TCP/IP の世界の印刷プロトコルの一つであり、最新のものなので、OS/400 でもサポートしているものと思います。OUTQ を作るには、装置記述を作り、装置タイプに"3812"を選択する点では、以前お話した SNMP を使用する方式と良く似ていますが、使用するポートが 631、6310 である点が大きく異なります。
最も大きな特徴は、"セキュア接続"と言った暗号化に対応した接続が可能なことだと思います。
自分自身では、かなり以前に、あるお客様のご要望でその設定を経験したことがあるのですが、詳細に関しては、機会を改めたいと思います。

次回からは、LAN 直結印刷の本命として、Telnet5250E接続のお話をしたいと思います。

2016年1月25日月曜日

バーコードの印刷方法 - 第5回 もっと柔軟な方法 - Mapping Suite の場合-3

この後は、Mapping Suite自体の説明になってしまいますが、最終的に印刷するまでの流れをご紹介します。
「表紙」と「明細」ページの設計ができたら、スプールの1ページ目には「表紙」、2ページ目以降は「明細」が適用さるかの確認は、同じ"MapDraw"の「マルチ・プレビュー」機能を使うとチェックできます。即ち、画面上の「マルチ・プレビュー」ボタンを押してから、画面右半分に表示されているスプールのページを1ページ目から進めていくにつれ、画面左半分のプレビュー画面が正しく切り替わるかで確認します。
その結果が正しいことが確認できれば、PCL モードを持ったプリンターに印刷する場合には、「プロジェクトの生成」、あるいは、PDFを生成してそれを印刷したり保管したりする場合には、「プロジェクトの生成」と「プロジェクトの関連付け」を行って、AS/400上の"IFS"にある"Mapping"指定のフォルダー"docpc"フォルダーの下に、プロジェクト・ファイルを保管します。
次に、保管されたファイルを、OS/400 のオブジェクトに変換するために、OS/400 上のMappingのメイン・メニューの中「MapDraw フォーマットの取り込み」を行ないます。
Mapping メイン・メニュー
これで準備ができました。

< PCL モードのプリンターに印刷する場合 >
Mappingは、OS/400 上で、PCL 形式の印刷データを生成し、それを宛先プリンターの OUTQ に送信して直接印刷させることができます。
コマンドは"MAPCPYSPLF"で、指定するパラメーターは次のとおりです。

1. 対象となるスプール・ファイルを特定するための値、Spooled file(ファイル名)、Spooled file number(ファイル番号)、Job name(ジョブ名)、Job number(ジョブ番号)、User(ユーザー名)

MAPCPYSPLFコマンド画面
2. 適用するMappingのフォーマットの値、Mapping Format(フォーマット名)、Sequence(シーケンス番号、サンプルのように「表紙」と「明細」を条件に応じて適用する場合には、*MRGを指定します。)

3. 送信先のPCLモードのプリンターのOUTQ(Ouput queue)と、そのライブラリー(Library)

4. コード・ページ(日本語のスプールの場合、半角カナか半角英小文字を指定するため、290は1027を指定)

以上の値を指定して「実行」すると、PCL モードのプリンターから印刷されます。開始ページや終了ページ、部数等の指定も一緒に行えます。その他にもPJL コマンドを付加して「両面印刷」等のプリンターの制御も可能ですが、そのお話は別の機会に譲ります。

< PDF ファイルを生成する場合 >
PDF ファイルを生成するコマンドは、"MAPSPLPDF"で、指定するパラメーターは次のとおりです。
MAPSPLPDFコマンド画面

1. 対象となるスプール・ファイルを特定するための値、Spooled file(ファイル名)、Spooled file number(ファイル番号)、Job name(ジョブ名)、Job number(ジョブ番号)、User(ユーザー名)

2. 適用するMappingのフォーマットの値、Mapping Format(フォーマット名)、Sequence(シーケンス番号、サンプルのように「表紙」と「明細」を条件に応じて適用する場合には、*MRGを指定します。)

3. PDF ファイルのファイル名(Name of this file)と、保管フォルダー(Path of the file)
ファイル名は、英数文字の他に日本語も使用可能です。保管フォルダーは、IFS 上になります。

4. コード・ページ(日本語のスプールの場合、半角カナか半角英小文字を指定するため、290は1027を指定)

< PDF ファイルを印刷する場合 >
MAPIFS2PRTコマンド画面-2
PDF ダイレクト印刷機能を持ったプリンターや、Windows ドライバーを使った印刷を行なう場合には、PDF ファイル生成後に、"MAPIFS2PRT"コマンドを使って、それらのプリンターの OUTQ に印刷データを送信します。指定するパラメーターは次のとおりです。
MAPIFS2PRTコマンド画面-1
1. 印刷するPDF ファイルの保管場所とファイル名(File to insert)

2. 送信されるスプール・ファイル名(Spooled file、これは任意の名前で構いません。)

3. 送信先のプリンターのOUTQ(Ouput queue)と、そのライブラリー(Library)

以上ですが、追加のパラメーターで指定できる"Insert this file before"と"Insert this file after"に、IFS上に保管した、PJL コマンドの開始用のファイルと終了用のファイルを指定すると、PDF ダイレクト印刷機能を持ったプリンターの場合は、両面印刷等のプリンターの制御ができます。


以上のコマンドを実運用の中に組み込むことによって、日常運用としてはMappingを意識することなく、印刷したり、PDF ファイルを保存したりすることになりますが、その具体的なお話は、Mapping Suite のご紹介の回に詳しくしたいと思います。