始めの言葉

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

2018年6月16日土曜日

AS/400 プリンティングに求められるソリューション 第42回 - ROBOTを使った処理の自動化 - 5 -

前回までのお話で、予め定義した条件に合致するスプールが OUTQ に投入されたことを ROBOT が検知すると、予め定義したアクションが実行されるという、Mapping を使った処理の自動化を行う過程をご理解いただけましたでしょうか?
お話した例では、最終的に、"スプール・ファイル名.pdf" というファイル名の PDF ファイルが、IFS 上の特定のフォルダーに生成されたわけですが、通常の業務に使用するには、これでは不十分です。
例えば、次のような課題があります。
- スプール・ファイル名は一定の名前なので、"スプール・ファイル名.pdf" というファイル名では、PDF ファイルが生成される度に上書きされてしまう。例えば、システム時間、それも秒単位のタイム・スタンプの値を含む PDF ファイル名にする必要がある。
- 生成した PDF ファイルは印刷するので、ファイル・サーバーに転送する必要はないが、再印刷できるようにするためには、短期間、IFS 上に保存しておく必要がある。そのためには、やはり PDF ファイルには固有のファイル名を付ける必要がある。
- IFS 上に PDF ファイルが保存されていくだけでは、AS/400 の HDD を圧迫してしてしまう。そこで、PDF ファイルが生成されたら、ファイル・サーバーに FTP 転送して、IFS 上からは削除する必要がある。

"MAPCPYSPLF" コマンドを使って PDF ファイルを生成する時のファイル名に組み込める値に使用できる "ROBOT変数" には、"- ROBOTを使った処理の自動化 - 3 -" でお話したもの他に、次の変数があります。
&MAPNAM : Mapping フォーマット名をセットします。
&MAPSEQ : Mapping フォーマット・シーケンスまたは処理モードをセットします。
&MAPMOD : 処理モードをセットします。
&MAPSUP : 元のスプール・ファイルを削除するかどうかセットします。
&MAPSAV :マッピングされたスプール・ファイルを保存するかどうかをセットします。
&SNDFDP : オーバーレイを送信します。
&SNDPOL : フォントを送信します。
これらを見るとお分かりのように、スプール毎に変化するような値は見当たりません。

そこで、タイム・スタンプを含んだファイル名を持つ PDF ファイルを、ROBOT を使って自動的に生成させるには、CL なり、RPG を使って PDF ファイルを生成するたプログラムを用意します。そして、そのプログラムをアクションとして定義します。アクションの定義では "- ROBOTを使った処理の自動化 - 3 -" の中でお話した手順を繰り返すことにより、複数のステップを定義することができますが、残念ながら "ROBOT変数" 以外の変数はステップを跨って有効になることがありません。そのため、変数の定義から始まって、その変数を使った処理までカバーする 1 本のプログラムを CALL するように定義します。
DEMOLIB にある MAPPOPC というプログラムを Call するアクション
PDF ファイルをファイル・サーバーに FTP 転送する際も、同様の考え方で対応します。

2018年6月9日土曜日

AS/400 プリンティングに求められるソリューション 第41回 - ROBOTを使った処理の自動化 - 4 -

前回までで、ROBOT の設定が終わりましたので、実際に ROBOT を動かして、PDF ファイルができるかどうかを試してみましょう。
ROBOT を開始するには、Mapping メイン・メニューで、"14. オペレーション・メニュー" を選択してから、"5. ROBOT の処理" を実行します。
次のように表示された "ROBOT メニュー" の画面にある "1. ROBOT の開始" を実行します。
ROBOT メニュー画面
次の画面では、ROBOT を実行する際のログを取得しておくかどうかが聞かれます。初めて ROBOT を設定して稼動テストを行うのですから、次のように "*YES" に変更して実行キーを押します。なお、この画面で表示されているように、コマンドを使って ROBOT を開始するには "STRRBT" というコマンドを使用します。
ROBOT の開始画面
この画面で実行キーを押すと、ROBOT は動き始めるのですが、画面は元の "ROBOT メニュー" に戻るだけで、実際に動いているかどうか不安です。
そこで確かめる方法は、2 つあります。1 つは、この画面で "4. ROBOT の状況の表示" を実行する方法です。
ROBOT の状況の表示を選択
すると次の画面が表示されます。"状況" 欄が、"ACTIVE" と表示されていれば、無事稼動していることを表します。
ROBOT の状態表示画面
なお、この画面の "OPT" 欄に "3= 保留" を指定して実行すると、次の画面のようになり、ROBOT の活動を保留できます。
ROBOT を保留した結果
同様に "2= 変更" を指定して実行すると、次のような画面が表示されますので、ジョブの優先順位を変更することができます。
JOB 変更の画面
"5= 処理" を指定して実行すると、次のような画面が表示されますので、ジョブ・ログの表示も可能です。
JOB の処理画面
もう一つの方法は、"WRKACTJOB" コマンドを実行する方法です。実行すると、次のように "サブシステム/ジョブ" 欄に ROBOT が表示されます。
WRKACTJOB コマンドを実行した画面
前回のお話で定義したアクションの中で、PDF ファイルは、IFS 上の "/map34806/mapping/test/" フォルダーの下に、"&SPLF.pdf" つまり "スプール名.pdf"という名前で生成することになっていました。"/map34806/mapping/test/" フォルダーの下にファイルが無いことを確認します。
"/map34806/mapping/test/" フォルダー
ROBOT が稼動していることを確認したら、ROBOT が監視している OUTQ にある、PDF ファイルを生成する対象となっているスプールを一旦 "保留" 状態にしてから "解放" します。そうすると、空だった"/map34806/mapping/test/" フォルダーに "STD132P.pdf" という PDF ファイルが生成できたことを確認できました。
"STD132P.pdf" という PDF ファイルが生成できた






2018年6月2日土曜日

AS/400 プリンティングに求められるソリューション 第40回 - ROBOTを使った処理の自動化 - 3 -

前回の "3. スプール・ファイルとアクション間の関連定義" の中で、名前だけ定義した "アクション” の内容を定義します。
前回でアクション名は、既に "STD132PDF" と決めています。この名前のアクションの内容を定義するには、Mapping メイン・メニューで "14. オペレーション・メニュー" を選択して実行した後、表示される "オペレーション・メニュー" の中の "2. アクションの処理" を選択して、実行します。
Mapping オペレーション・メニューで"2."を選択する
次のような画面が表示されるので、キーボードの F6 キーを押します。(この画面で、F6 キーを使うガイドが出ていないのは、大変申し訳ありません。)
アクションの処理画面
上の画面のように、"アクションの管理" という小さな画面が "アクションの処理" 画面の上に表示されます。そこで、左の下線上にアクション名である "STD132PDF" を入力し、その右側の入力フィールドには、後でアクションの見分けがつくための説明を入力します。このフィールドは、残念ながら DBCS を受け付けないので、上の例のように半角英数文字を使います。
入力できたら、キーボードの "実行" キーを押して登録します。そうすると、元の "アクションの処理" 画面に戻ります。
アクションの処理画面に戻って "5" を指定した画面
アクション名を登録できたので、次はアクションの内容を定義します。上の画面のように "STD123PDF" の左横に "5"(コマンド行)を入力して、実行します。
ここで、"2" の "編集" を指定して実行すると、先ほど表示した小さな画面が表示され、アクション名とその概要を編集することができるようになります。

"5" を指定して実行した画面は、つぎのとおりです。
アクションのコマンドの初めの画面
ここでも、新規にコマンドを登録するには、キーボードの "F6" キーを押します。(ここでも、"F6" キーを使った新規作成のガイドが出ていません。)
次のような "コマンド作成" の画面が表示されますので、"MAPCPYSPLF" と入力してキーボードの "F4" キーを押します。
コマンド作成画面で "MAPCPYSPLF" を入力した

そうすると、おなじみの "MAPCPYSPLF" コマンドの指定画面が表示されます。ただし、入力する値の指定方法が異なります。
"ROBOT 変数" といって、次の変数を使うと、スプールのそれぞれの値を固定値ではなく ROBOT が実行する時点の値を引いてきます。
- &SPLF : スプール・ファイル名
- &SPLNUM : スプール・ファイル番号
- &JOB : ジョブ名
- &JOBNUM : ジョブ番号
- &USER : ユーザー名
- &LIBDES : 出力 OUTQ のあるライブラリー名
- &OUTDES : 出力 OUTQ 名
ここでは、スプール・ファイル名は固定の名前でも良いのですが、あえて ROBOT 変数を使ってみました。
スプール・ファイルの指定には ROBOT 変数が使用できますが、Mapping フォーマット名やシーケンス番号には使えませんので、それぞれ "STD" 、"00010" を指定します。指定した後、キーボードの "F10" キーを押した時の画面が、次のものです。指定した値にだけ ">" が付いています。
アクションに MAPCPYSPLF コマンドを登録する-1
改ページして表示した、次ページの画面では次の値を指定します。
- Mapdraw format language -> *XPS
- XPS Printer/outfile language -> '*PDF'
その結果が、次の画面です。
アクションに MAPCPYSPLF コマンドを登録する-2
さらにもう 1 回改ページして表示した次のページでは、生成する PDF ファイルのファイル名と保管フォルダー、そしてコード・ページを指定します。ここでも ROBOT 変数が使えますので、ファイル名の指定に使っています。
アクションに MAPCPYSPLF コマンドを登録する-3
これで実行キーを押すと、画面は次のように変わって、アクションのコマンドとして登録できたことが確認できます。
アクションにコマンドが登録できた
もし、次に別のコマンドを実行させたい場合(例:生成された PDF ファイルを OUTQ を通してプリンターに印刷させる。)は、ここで、キーボードの "F6" キーを押します。"00020" として次のコマンドを登録する画面が表示されますので、同じ手順で次のコマンドを登録します。
では、次回は ROBOT を使って、実際に PDF ファイルを生成してみましょう。

2018年5月26日土曜日

AS/400 プリンティングに求められるソリューション 第39回 - ROBOTを使った処理の自動化 - 2 -

前回から、Mapping を使った PDF 生成などの自動化等を、OS/400 上に組み込むための手段の1つである "ROBOT" の使い方のお話を始めました。そして、そのための初めの一歩として、"入力/出力の出力待ち行列の関連定義" を行いました。
次は、"3. スプール・ファイルとアクション間の関連定義" を行います。

そのためには、Mapping メイン・メニューで "14. オペレーション・メニュー" を選択して実行します。
Mapping メイン・メニューで 14 を選択
表示された画面で、"3. スプール・ファイルとアクション間の関連定義"を指定して実行します。
Mapping オペレーション・メニューで"3."を選択する
ここでは、"STD132P" という名前のスプールに対して、PDF ファイルを生成するという処理を定義することにします。次のような画面が表示されますので、最上段の行に左から、"1= 作成"、"スプール・ファイル = STD132P"、"ジョブ", "ユーザー・データ”, ”用紙タイプ", "ページ幅" には "*ALL"、"ACTION = STD132PDF" を入力して実行します。
このアクション名 "STD132PDF" は、任意です。アクションの内容は後で定義します。
また、使用できる文字は半角英数文字のみで、全角文字は使用できない点にもご注意ください。
3. スプール・ファイルとアクション間の関連付け定義の画面例
これは、一種のフィルターのような役割をしています。つまり、前回、ROBOT が開始する対象とした "DEMOOUT" という OUTQ に投入された様々なスプールの内、スプール・ファイル名が "STD132P" でさえあれば、ユーザーやジョブ等には関わらず、必ず "STD132PDF" という処理を行うという定義を行ったということです。

実行キーを押して登録した後、"OPT" 欄に "9= その他"を入力して実行キーを押すと、次のような画面が現れます。
スプール・ファイルに対するその他のパラメーター
この画面では、次の値を使ってアクションを適用するかどうかを選別する定義を行えます。
- スプール・ファイルの作成に使用したプログラム名とライブラリー
- スプール・ファイルの作成に使用したプリントファイル名とライブラリー
- 入力OUTQ 名とライブラリー
- ユーザーテキスト
上の画面は初期設定のままですが、"Outq In" は “*DFT(デフォルト値)" となっています。これは、前回の設定で監視対象とした "DEMOOUT" という OUTQ を意味しています。この値を変更すると、"ROBOT" が監視する OUTQ を変更することができます。特定の OUTQ に入ってくるスプールに対してだけ、特定の処理がしたい場合などに有効です。

同様に、"OPT" 欄に "8= 詳細" を入力して実行キーを押すと、次のような画面が現れます。
アクションの詳細画面例
この画面上で値を変更すると、アクションを実行する時にその値が適用されます。例えば、"出力待ち行列" 欄の値を "*DFT(デフォルト値)" から変更すると、"4.入力/出力の出力待ち行列の関連定義" で定義した出力 OUTQ の代わりに、ここで指定した OUTQ が使用されます。
実使用上で重要なのは、"Priority" 欄の設定です。これは、ROBOT サブシステム内で実行される Mapping 処理ジョブの制御を行うためのものです。
デフォルトでは、"MAPDMIDDLE" となっていますが、他に "MAPDSPEED"、"MAPDSLOW" を選択できます。
それぞれ、次のような違いがあります。
- MAPDSPEED : 実行優先順位 = 20, 最大同時実行ジョブ数 = 1
- MAPDMIDDLE : 実行優先順位 = 30, 最大同時実行ジョブ数 = 5
- MAPDSLOW : 実行優先順位 = 50, 最大同時実行ジョブ数 = 10
OUTQ にスプールが投入された順番どおりに、アクションが実行される必要がある場合には、"MAPDSPEED" を選択して、同時実行ジョブ数を "1" とします。

2018年5月19日土曜日

AS/400 プリンティングに求められるソリューション 第38回 - ROBOTを使った処理の自動化 - 1 -

MAPCPYSPLF コマンドを実行して PDF ファイルを生成し、それを OUTQ を通して MVP をインストールした PC に送信して、プリンターから印刷するという一連の流れを見てきました。しかし、実環境においては、毎回コマンドを人間が操作して処理するということは無く、ユーザーが OS/400 上のアプリケーションのメニュー画面でデータを生成し、印刷指示するだけで、自動的に印刷が行われないとなりません。
もちろん、MAPCPYSPLF コマンドや、MAPIFS2PRT コマンドを、既存の CL の中に組み込むことで実現しても良いのですが、Mapping ではアプリケーションを変更せずに業務改革を実現することを志としていますので、ROBOT(ロボット) というサブ・システムを標準で用意しています。
ROBOT とは、大まかに言うと、次のような仕組みです。
- ROBOT が常時監視する対象の OUTQ を定めます。
- その OUTQ に、アプリケーションからスプールが投入されると、予め設定しておいた条件に合致するものに対して、やはり、予め定義しておいたアクション(処理)を行います。

従って、ROBOT を使うと、アプリケーションからスプールを投入する先の OUTQ を ROBOT が監視する別の OUTQ に変更する、あるいは、アプリケーションからスプールが投入されている元々の OUTQ を ROBOT の監視対象とする、それらのどちらかによって、Mapping を使った処理に移行できるわけです。
しばらくは既存の印刷も残しておいて、Mapping による処理と共存させる場合には、前者の方法が適していると思います。

では、これから ROBOT の設定を行っていきましょう。
Mapping メイン・メニューで "14. オペレーション・メニュー" を選択して実行します。
Mapping メイン・メニューで 14 を選択
表示された画面では、4 -> 3 -> 2 -> 5 と言う順番に進みます。そこで、"4. 入力/出力の出力待ち行列の関連定義" を選択して実行します。
Mapping オペレーション・メニューの画面
表示された画面で、キーボードの "F6" キーを押してから、次の画面のように、2種類の OUTQ (上段)とそのライブラリー(下段)、それと DTAQ(上段)とそのライブラリー(下段)を入力して、実行します。
- ROBOT が監視する "OUTQ 元"
- ROBOTが処理して生成されたスプールが書き出される "OUTQ 移動先"(実際には使用しない場合がほとんどなので、任意の OUTQ で構いません。)
- データのやり取りに使用される "DTAQ"
入出力待ち行列の関連付けの画面例
DTAQ 作成の確認画面例

 "DTAQ" は予め定義しておかなくても、実行キーを押すと、上の画面のように "確定してください" という確認のメッセージが表示されますので、そのまま実行すると設定完了です。その結果は、次の画面のように表示されます。

関連付けを定義した後の画面例
これで、ライブラリー "DEMOLIB" にある "DEMOOUT" という OUTQ を ROBOT の監視対象と定義することができました。

2018年5月13日日曜日

AS/400 プリンティングに求められるソリューション 第37回 - MVPを使ったPDFの自動印刷 - 3 -

MVPを使った自動印刷は、プリンターの種類を問わない点は便利ですが、Windows PC 経由であることや、Adobe Reader に依存する印刷になるので、運用上の注意点があります。技術的に細かい話で恐縮ですが、以下に整理します。
1. 印刷順序
前回お話したように、"AcroRd32.exe" を実行する際のオプションに "/n" を指定していると、複数の PDF スプールの印刷を並行処理しますので、後から受信した PDF スプールのサイズの方が小さいと、その前の PDF スプールよりも先に印刷されてしまうという現象が発生する可能性があります。PDF スプールの送信順通りの印刷が必要な場合は、"/n" は指定しないようにしてください。
そして、MVP の設定変更を行います。
MVP をインストールしたフォルダー(例:C:\MVP)の下のフォルダー(\MappingSpooler)にあるファイル MVPconf.iniファイルをメモ帳で開きます。下から 3 行目の KillProcessIfNeed の値を 1 に変更して、上書き保存します。これによって、1つの PDF スプールを印刷した後、MVP は毎回、Adobe Reader を終了します。
MVPconf..ini ファイルの例

2. Adobe Reader のセキュリティ設定
MVP のマニュアルには詳細を記載していますが、Adobe 社の公開情報によると、悪意のある PDF ファイルが任意の実行可能ファイルを起動したり、システム・ディレクトリーやWindows レジストリーに書き込んだりすることを防ぐために、バージョン X から”保護モード”という機能が追加され、デフォルトでは有効化されています。その影響で、 MVP はサービス・モードで使用できなくなります。そこで、MVP をサービス・モードで使用するには、Adobe Reader の環境設定メニューで”保護モード”を解除する必要があります。
ただし、そうすると、同じ PC で Mapping が生成した安全な PDF ファイル以外の PDF ファイルに対しては、上記のようなリスクが存在することになります。MVP をサービス・モードで使用するかどうかは、Mapping が生成する以外のPDFファイルを扱う可能性と、上記のリスクを考慮して、総合的に判断してください。
Adobe Reader DC の環境設定画面

3. PDF に合わせた用紙サイズで印刷する
同じプリンターに対して印刷させる PDF ファイルでも、使用する用紙サイズが異なることは、当然あります。用紙サイズに合わせて MapDraw を使って帳票設計し、それを使って Mapping が生成した PDF ファイルを MVP 経由で正しい用紙サイズで印刷させるには、Adobe Reader 側の設定を次のように変更しておく必要があります。そうしておかないと、用紙サイズ毎に異なるプリンターを MVP 上で登録し、OUTQ もそれに合わせて用紙サイズ毎に作って、使い分けないとならなくなります。
そこで、先ず、Adobe Reader で PDF ファイルを開きます。次に、"ファイル"->"印刷"を選択して開いた画面で、"ページサイズ処理" に "実際のサイズ" を指定し、"PDFのページサイズに合わせて用紙を選択" にチェックを入れます。この設定で、一旦、"印刷"ボタンを押して印刷させると、この設定が保存されます。
Adobe Reader DC の印刷設定画面
4. PC の定期的な再起動
MVP が稼動する PC では、稼働中は \MappingSpooler\spool\プリンター名 フォルダーの下に PDF スプールが溜まっていきます。従って永い間 PC を再起動しないでおくと、溜まった PDF スプールの影響で、PC の動作が遅くなるという現象が見られることも出てきます。
それを回避するために、主として MVP を使用する目的で PC を設置されたお客様の場合、1 週間等の決まった間隔で自動的に再起動するように設定されていることがあります。その場合、MVP の \MappingSpooler フォルダーの下にある spool.list ファイルの問題で、 MVP にエラー・メッセージが表示され、印刷できないという現象が報告されています。
そのようなケースでは、次の点をチェックしてください。
- 対策を行ったバージョンである MVP の最新版は、 V.7.1.0.35583 です。このバージョンのインストール・プログラムを実行して、途中 Repair を選択すると、導入済みの MVP は最新版に更新されます。
- このバージョンでは、プリファレンス設定メニューの中に、印刷後に PDF スプールを削除する設定が追加されています。削除までの時間も調整可能になっています。
- Windows10 等、Windows7 以降の Windows では、MVP は必ず管理者権限で実行してください。特に、自動的に起動する設定の中では、管理者権限で MVP が起動するように設定することが重要です。具体的には、Windows のタスク・スケジューラーにおいて、"タスクの作成" メニューの中の "全般" 画面で、"名前" 欄に "MVP""を指定し、"最上位の特権で実行する" にチェックを入れて、"構成"を "Windows 7、Windows Server 2008 R2" に変更します。
Windows タスク・スケジューラーの画面

- 再起動のために、Windows がシャット・ダウンする前に、MVP を終了させることが重要です。MVP がまだ spool.list ファイルに書き込み中に PC が終了してしまうことも、上記のエラーの一因となっています。そこで、GUI モードで使用している場合には、
taskkill /F /IM MappingVirtualPrinter.exe /T
というコマンドを、シャットダウン前に実行するように設定してください。

2018年5月2日水曜日

AS/400 プリンティングに求められるソリューション 第36回 - MVPを使ったPDFの自動印刷 - 2 -

プリンターの登録は、"サーバーの構成"という、次のような設定画面で行います。
サーバーの構成画面
- バーチャル・プリンター名
登録されたプリンター毎に任意の名前を付けますが、重要な点は、英数半角大文字であることと、この名称がここで登録したプリンターへ印刷させるための "OUTQ" のパラメーターの "リモート印刷装置待ち行列"と一致させることです。
CRTOUTQコマンドの1画面目

MVP 経由の印刷の場合、このバーチャル・プリンター一つ一つに対して、OS/400 上に "OUTQ" を作成します。それによって、OS/400 上の通常の印刷の操作と同様に、OUTQ に対して PDF のスプールを解放することによって、OUTQ に紐付いたバーチャル・プリンターから印刷されるという仕組みです。そして、OUTQ とバーチャル・プリンターを紐付けるのが、この"リモート印刷装置待ち行列"です。

- ローカル・プリンターの設定
実は、MVPでは、PDF スプールを "Adobe Reader" とプリンター・ドライバーの組み合わせで印刷する機能の他に、PCL モードを持つプリンターに印刷するとか、OS/400 から送信されてくる印刷データをそのまま LPR 印刷するといった機能も持っているのですが、どちらも実際に使用するケースは、ほぼ無いと言えます。
そこで、"プログラムを使って印刷する" を選択し、プログラムには、Adobe Readerの実行プログラムである "AcroRd32.exe" を指定します。Adobe Reader のバージョンが変わっても、AcroRd32.exe という名称は変わっていないようですが、フォルダー名は変化しています。従って、同じ PC に導入されている Adobe Reader のバージョンに応じたフォルダー名を指定するよう注意が必要です。上の画面サンプルでは、バージョンは "DC" なので、次のような指定になっています。
"C:\Program Files\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe" /n /t /h %1 %2 %3 %4
後ろに付いているオプションについては、Adobe 社のサイトで次のように説明されています。

/n : すでに Acrobat を起動している時に、別のインスタンスとして Acrobat アプリケーションを起動 <- 複数の処理を並行して行うことになるので、ページ数の多い PDF スプールの方が、ページ数の少ないものより印刷が後回しになる可能性があります。印刷の順番を重視する場合には、これは指定しない方が良いと思います。

/t : AcroRd32.exe /t path printername drivername portname
Adobe Reader を起動し、印刷ダイアログボックスを表示せずに PDF ファイルを印刷し、Adobe Reader を終了する。

/h : Acrobat を起動するが、表示しない。(メモリ上にロードするのみ) <- このように説明されていますが、私の経験では、/h を指定していても、GUI モードの場合は、一瞬、Adobe Reader で PDF ファイルを開いた画面が表示されます。

"ローカル・プリンター" 欄は、プリンター・ドライバーを選択するようになっています。選択肢として出てくるプリンターは、MVP が稼動する PC に設定されているプリンターそのものです。
もし、同じプリンターで印刷するにしても、例えば、片面印刷する時と両面印刷する時、あるいは、何種類かの給紙トレイを選択して印刷する場合には、同じドライバーをコピーした後、プロパティをそれぞれの設定に合わせた上で、別々のプリンター名を付けて保存します。MVP 上では、それぞれのプロパティを持ったプリンター名のドライバーを指定したバーチャル・プリンターを登録します。
それによって、OUTQ を指定することによって、自動的に両面印刷や片面印刷、給紙トレイを指定した印刷が可能になります。
なお、Windows 上で設定するプリンター名も、英数半角文字であることが必要な点にご注意ください。

MVP の導入直後は、下端に表示されている"デフォルトで印刷ジョブを保留する"にチェックが入っていることがあります。そのままにすると、MVP 上で PDF スプールが滞留し、印刷されませんので、このチェックは外しておく必要があります。なお、この設定は、導入し設定した後で、印刷テストを行う際に、印刷ジョブを保留する方が、印刷することによる用紙の消費を防ぐためにあります。