始めの言葉

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

2019年3月16日土曜日

XPS 形式の中間ファイルを使った PDF の加工 第 5 回

今回は、ファイルの結合です。
(参考までに、PC の世界では、COPY コマンドを使用して複数のファイルを結合して 1 つのファイルを作成することが可能です。)
Mapping V7 では、PDF ファイルのまま結合することはできないのですが、XPS ファイルを結合して、最後に結合した XPS ファイルを PDF ファイルに変換することが可能です。
コマンドとしては、次のような指定方法になっています。
1. 3 つのファイルを 1 度に結合して、1 つの "fainal.xps" ファイルを生成する場合
map_xps -outfile:/tmp/final.xps -add:/tmp/test1.xps -add:/tmp/test2.xps –
add:/tmp/test3.xps
2. 結合する対象の XPS ファイルの数が分からない場合には、次のように何度かに分けて結合します。つまり、"final.xps" に対して、1 つずつ結合していくという考え方です。
map_xps -tempfile:/tmp/final.xps -add:/tmp/test1.xps
map_xps -tempfile:/tmp/final.xps -add:/tmp/test2.xps
map_xps -tempfile:/tmp/final.xps -add:/tmp/test3.xps

では、実際に結合してみましょう。
今までお馴染みの "BAYTOP.xps" ファイルに、Mapping のマニュアル (PDF ファイル) の1 ページから作った XPS ファイルを結合します。
1. PDF ファイルを "Acrobat Reader DC" で開いて、"ファイル"->"印刷" を選択します。印刷指定画面で、"プリンター" には "Microsoft XPS Document Writer" を指定します。
ページサイズ処理は "実際のサイズ" を選択して、更にここでは "印刷するページ" は、"現在のページ"(1ページ)を指定してから、"印刷" ボタンを押します。
Acrobat Reader の印刷指定ページ
次のような画面が表示されますので、"ファイルの種類" を "XPS ドキュメント" に変更してファイル名(英数文字で指定してください)を指定して "保存" ボタンを押します。
XPS ファイルとして保存する
2. 5250 端末画面で、"CALL MAP_XPS" と入力して、F4 キーを押します。
CALL MAP_XPS と入力して F4 キーを押します。
3. 画面のように、次の通りパラメーターを入力して実行キーを押します。
'-outfile:/map34806/mapping/test/Concatenate.xps' <- Concatenate.xps ファイルを作成します。
'-add:/map34806/mapping/test/BAYTOP.xps' <- BAYTOP.xps ファイルを元に結合します。
'-add:/map34806/mapping/test/XPSmanual.xps' <- PDF ファイルから作成した XPS ファイルを結合します。
CALL MAP_XPS とパラメーター
4. この結果、6 ページの "BAYTOP.xps" ファイルに対して、1 ページの "XPSmanual.xps" を結合して、7 ページの "Concatenate.xps" ファイルが生成されました。
5. 次にもう 1 回、MAP_XPS プログラムを使用して、"XPSmanual.xps" を "XPSmanual.pdf"ファイルに変換します。
XPS ファイルから PDF ファイルへの変換
6. 生成された PDF ファイルを Acrobat Reader で開くと、次のように最終ページがマニュアルの 1 ページとなった 7 ページの PDF ファイルが生成されたことが分かります。

7 ページ目にマニュアルの 1 ページが結合された PDF ファイル
この時、初めに PDF ファイルから生成された XPS ファイルで使用されているフォントは、そのフォント・ファイルが、IFS 上の "mapping" フォルダーの下にある "ttf" フォルダー内にあうことが必要です。
7. 試しに、結合する XPS ファイルの順序を逆にしてみましょう。
結合する XPS ファイルの順序を逆に指定する
8. 生成された "Concatenate2.xps" ファイルを更に PDF ファイルに変換した結果は、次のとおりです。予想通り、1 ページ目がマニュアルのページになっています。
1 ページ目がマニュアルとなった PDF ファイル

2019年3月10日日曜日

XPS 形式の中間ファイルを使った PDF の加工 第 4 回

今回は、PDF ファイルからの加工ではなく、XPS ファイルを PDF ファイル以外の形式に変換する 2 つの例をお話しします。
1 つ目は、DOCX 形式への変換です。変換のためのコマンドは、次の画面のように簡単なものです。
XPS ファイルを DOCX ファイルに変換する
ここでは、BAYTOP.xps ファイルを BAYTOP.docx に変換しています。変換された DOCXファイルを、Word を使って開いてみると、次のように表示されました。
DOCX ファイルを Word で開いた画面-1
DOCX ファイルを Word で開いた画面-2
下の画面でお分かりのように、バーコードや罫線も含めて、Word で正しく表示できる DOCX 形式のファイルに変換されたことが分かります。なお、変換元の BAYTOP.xps ファイルは、そのまま残っています。

2 つ目は、HTML 形式への変換です。コマンドは次の通りです。
XPS ファイルを HTML ファイルに変換する
 生成されたファイルをブラウザー(ここでは、FireFox を使っています。)で開くと、次のようになります。
HTML ファイルを FireFox で開いた画面-1
HTML ファイルを FireFox で開いた画面-2
文字やバーコードは正しく表示できていますが、罫線が表示できていない箇所が多いようです。これは、今後の改善に期待したいと思います。なお、画面上のイメージの要素が、JPG 形式のファイルとして、HTML ファイルと並んで生成されていることが、次のエクスプローラーの画面で分かります。
生成された HTML ファイルと JPG ファイル
イメージ・ファイルになっているのは、ロゴ、バーコード 、印影です。




2019年2月24日日曜日

XPS 形式の中間ファイルを使った PDF の加工 第 2 回

今回は、ページの抽出を行います。前回のお話で生成した "BAYTOP.xps" ファイルを PDF 形式に変換する際に、ページの抽出を行います。
コマンドの基本的な指定方法は、次のとおりです。
map_xps -infile:/tmp/sample.xps -outfile:/tmp/sample.pdf -pages:1,3,4,7,10 –toPDF
ここで使用する "BAYTOP.xps" ファイルは、全部で 6 ページなので、1 ページ目と 3 ページ目を抽出して、全部で 2 ページの PDF ファイルを生成してみましょう。
1. MAP_XPS はプログラムなので、CALL MAP_XPS と入力して F4 キーを押します。
CALL MAP_XPS と入力して F4 キーを押します。
2. 表示された画面で、次のパラメーターを指定します。
-infile:/map34806/mapping/test/BAYTOP.xps <- 手順 "1" で生成した XPSファイル
-outfile:/map34806/mapping/test/BAYTOP13.pdf <- 生成する PDF ファイル
-pages:1,3 <- 1 ページと 3 ページを指定
-toPDF <- PDF 形式に変換することの指定
MAP_XPS 指定画面
3. 生成された PDF ファイルをAcrobat Reader で表示すると、次のようになります。
生成された PDF ファイルの 1 ページ目
生成された PDF ファイルの 2 ページ目
抽出するページの指定方法は、次のように数通りあります。
-pages:3-10 <- 3 ページ目から 10 ページ目までを範囲指定する
-pages:1,5,10-* <- 10 ページ目以降最終ページまでを指定する
-pages:FILE:/tmp/test.txt <- ページを指定したテキスト・ファイルを使って指定する

4. そこで、ここでは、次のような内容のテキスト・ファイルを指定してみます。
1,3,6 ページを指定するテキスト・ファイル
このテキスト・ファイルは、IFS 上に保存するのですが、注意する点は、数字 + 改行で構成することです。従って、この例では "6" の後で改行しています。
5. 次の画面のように、ページ範囲をテキスト・ファイルで指定します。
テキスト・ファイルを使用したページ指定
6. 生成された PDF ファイルは、次のように 3 ページの構成となっています。
生成された 3 ページの PDF ファイル

2019年2月9日土曜日

XPS 形式の中間ファイルを使った PDF の加工 第 1 回

Mapping Suite V7 の大きな特徴の一つは、中間ファイルとしてマイクロソフト社が進めている XPS ファイルを使用することなのですが、実際にそのメリットを認識できる機会が少ないと思います。これから何回かのお話では、その例をご紹介したいと思います。
1 回目は回転した状態で PDF ファイルを生成する方法です。回転角として指定できるのは、90 度、180 度、270 度の 3 種類です。通常、PDF ファイルを回転する必要はないと思いますし、まして回転すると画面上では非常に見づらいものとなっていまいます。ただ、PDF ファイルをプリンター(ラベル・プリンターも含む)に印刷する際に、用紙のセット方向との関係で、180 度回転する必要が出てくるケースがあるようです。

基本的な流れは、次のとおりです。
1. MAPCPYSPLF コマンドを使用して、XPS ファイルを生成します。
2. MAP_XPS プログラム、若しくは MAPXPS コマンドを使用して、PDF ファイルに変換しますが、その時にパラメーターを追加して 180 度回転を指定します。なお、180 度回転のパラメーターは、前者では直接指定しますが、後者では XPSConfig.conf ファイルの中で指定します。

では、具体的な手順は次のとおりです。
1. MAPCPYSPLF コマンドを使用して、XPS ファイルを生成します。
MAPCPYSPLF コマンド 1 画面目

MAPCPYSPLF コマンド 2 画面目
生成された XPS ファイルを XPS ビューアーで開いた画面
2. MAP_XPS プログラムを使用して PDF ファイルに変換しましょう。MAP_XPS はプログラムなので、CALL MAP_XPS と入力して F4 キーを押します。
CALL MAP_XPS と入力して F4 キーを押します。
 3. 表示された画面で、次のパラメーターを指定します。
-infile:/map33099/mapping/test/BAYTOP.xps <- 手順 "1" で生成した XPSファイル
-outfile:/map33099/mapping/test/TOPBAY.pdf <- 生成する PDF ファイル
-rotation:180 <- 180 度回転指定
-toPDF <- PDF 形式に変換することの指定                                   
MAP_XPS 指定画面
4. 生成された PDF ファイルをAcrobat Reader で表示すると、次のようになります。ページのイメージは上下反転しますが、ページ順は変わりません。
PDF ファイルの1ページ目
5. MAPXPS コマンドを使用する場合には、先ず次の 3 行を XPSConfig.conf ファイルの中に追加します。
<rotation>
<pagerotation>180</pagerotation>
</rotation>
6. MAPXPS と入力して F4 キーを押します。
MAPXPS と入力して F4 キーを押します。
7. 表示された画面で、次のように指定します。
Input file xps . . . . . . . . . > '/map33099/mapping/test/BAYTOP.xps'
Output file  . . . . . . . . . . > '/map33099/mapping/test/TOPBAY2.pdf'
Printer language . . . . . . . . > *PDF <-PDF 形式に変換することの指定
MAPXPS コマンド 1 画面目
Profile Name . . . . . . . . . . > rotation <- XPSConfig.conf ファイルの中の回転の指定名
MAPXPS コマンド 2 画面目
8. 実行キーを押すと、"4" と同じ PDF ファイルが生成されます。
CALL MAP_XPS と MAPXPS コマンドでは、回転の指定が、前者は -rotation:180 であるのに対して、後者では <pagerotation>180</pagerotation>というように異なる点に注意が必要です。

2019年1月26日土曜日

XPSConfig ファイルを使った PDF セキュリティ - P/Wの設定 -

今回は、いつものベイトップ書房の見積書のスプール・ファイルの中の 2 種類のデータを、それぞれ所有者パスワードと使用者パスワードに設計する方法をご紹介します。
1. MapDraw 上で、対象となるデータを元に、次のように "アーカイブ" ゾーンを追加します。アーカイブ・ゾーンの種類としては、"Index" を選択します。
ここでは、所有者パスワードのゾーン名を"OWNPW"、使用者パスワードをのゾーン名を"USRPW"と名付けます。なお、当然のことながら、アーカイブ・ゾーンは、プレビュー画面でも、PDF ファイルにも表示されません。
パスワード用のアーカイブ・ゾーンの設定
2. その後は通常通り、プロジェクトの生成を行い、OS/400 上の Mapping メニューの中の "2. MapDraw フォーマットの取り込み" を行います。
3. IFS 上の \mapping フォルダーの直下にある XPSconfig ファイルを編集して、PDF ファイルのセキュリティ設定を行います。ここでは、次のように "PDFPW" という名称のセキュリティ設定を追加します。
4行目 と 5行目で、MapDraw 上で定義したパスワード用のアーカイブ・ゾーン名、所有者用と使用者用を "[[]]" で囲んで定義していることにご注意ください。
<PDFPW>
<language>PDF</language>
<encryptmode>on</encryptmode>
<encryptownerpwd>[[OWNPW]]</encryptownerpwd>
<encryptuserpwd>[[USRPW]]</encryptuserpwd>
<encryptallowprint>off</encryptallowprint>
<encryptallowhightlevel>on</encryptallowhightlevel>
<encryptallowdataextraction>off</encryptallowdataextraction>
<encryptallowaccessibility>on</encryptallowaccessibility>
<encryptallowmodify>off</encryptallowmodify>
<encryptallowcomment>off</encryptallowcomment>
<encryptallowassemble>off</encryptallowassemble>
</PDFPW>
4. 以上で準備できましたので、次のようなコマンドを実行して、先ず XPS ファイルを生成します。
MAPCPYSPLFコマンドの1画面目
MAPCPYSPLFコマンドの2画面目
5. 生成された XPS ファイルを、MAPXPS コマンドを使用して PDF ファイルに変換するのですが、その際にパラメーターとして "3" で定義した "PDFPW" という名前のプロファイルを指定します。
MAPXPSコマンドの1画面目
MAPXPSコマンドの2画面目
6. 生成された PDF ファイルを AdobeReaderで開こうとすると、次のようにパスワードを入力する画面が表示されます。
PDF パスワードを入力する画面
ここで、所有者パスワードか使用者パスワードを入力することによって、初めて PDF ファイルが表示されます。
表示された PDF ファイルで "ファイル" -> "プロパティ" -> "セキュリティ" を選択すると、次のように " パスワードによるセキュリティ" とか、"文書のすべての内容が暗号化されている" という説明が表示されているのが分かると思います。
PDF ファイルのセキュリティ画面
更に "詳細を表示" ボタンを押すと、次のような画面が表示されます。
PDF セキュリティの詳細画面


2018年12月15日土曜日

プリントチケットを使った印刷制御 第 1 回 - PCL プリンターの制御 -

Mapping Suite の現行のバージョン 7 では、XPS をコアのアーキテクチャーとしていますが、XPS の中には、"プリントチケット" という機能があります。Mapping V7 では、この機能を活用すると、今までの AS/400 からの印刷ではできなかった細かい印刷制御が可能になります。
ただし、Mapping が印刷データを生成して、OUTQ から送信することによって直結印刷できる、"PCL" モードを持つプリンターが対象となります。
今までも何度かお話してきましたが、海外ではデファクト・スタンダードとなっている、レーザー・プリンターや複合機の "PCL" モードも、日本の国内では、標準でサポートしているプリンターや複合機はまだ少数派です。とは言え、ほとんどのメーカーでは安価なオプションとして用意していますので、Mapping から見た場合、PCL モードのプリンターを使用することのメリットとコストを比較すると、ハードルは低いと言えると思います。

では、プリント・チケットの原理のお話の前に、実施に使用した実例を見てみましょう。 
あるお客様では、AS/400 上の Mapping から PCL モードを持つレーザー・プリンターに印刷する際に、両面印刷することが必要でした。しかし、両面印刷と言っても、長辺綴じ/短辺綴じがあります。そこで、XPS のプリントチケットを活用して次の流れで実現します。
おおまかには、次の流れになります。
1. MAPCPYSPLFコマンドを使用して、XPSファイルを生成します。 
2. 生成したXPSファイルに対して、MAP_XPSプログラムを使用して、FRONTSIDE=OFF を適用したXPSファイルに変換します。 
3. 変換したXPSファイルに対して、MAP_XPSプログラムを使用して、長辺綴じ、または短辺綴じを指定した両面印刷指定コマンドを組み込みます。 
4. 両面印刷指定コマンドを組み込んだXPSファイルに対して、MAPXPSコマンドを使用して印刷します。

具体的な手順を画面を見ながら追っていきます。
1-1. MAPCPYSPLF コマンドを使用して、XPS ファイルを生成します。MAPCPYSPLF コマンドは、今まで何度か出てきました。1 画面目で、対象となるスプール・ファイルと、フォーマットを指定して、キーボードの "F10" キーを押します。
MAPCPYSPLF コマンドの 1 画面目
1-2. 2 画面目では、次のように、"XPS Printer/outfile language" 欄に "*XPS" を指定します。これは、もちろん、これから生成するのは、XPS ファイルだからです。
MAPCPYSPLF コマンドの 2 画面目
1-3. 3 画面目では、次のように、生成する XPS ファイルのフォルダーとファイル名を指定します。フォルダーは、IFS 上のものになります。その後、実行キーを押して 指定したファイル名の XPS ファイルを生成します。
MAPCPYSPLF コマンドの 3 画面目
2-1. 次に "CALL MAP_XPS" と入力して実行します。次のような画面が表示されますので、"-infile:" の後に、"1" で生成した XPS ファイルのフォルダーとファイル名を指定します。追加するパラメーターがありますので、2 行目に "+" を入力して実行します。
MAP_XPSの 1 画面目
2-2. 次の画面のように、3 つのパラメーターを入力します。 
-set:FRONTSIDE=OFF <- 固定値 
-outfile:/home/mapping/test/STD_NOFRONT.xps <- 変換後の XPS ファイル名
-pages:* <- 固定値(XPS ファイルの全ページに適用することを意味します。)
実行キーを 2 度押して、XPS ファイルを生成します。

MAP_XPSの 2 画面目


 

2018年6月23日土曜日

MapDraw を使った帳票設計のテクニック 第1回 - 2up 指定 - 1 -

今回からは、MapDraw を使ってできる少し高度な帳票設計方法をご紹介していきます。
初めは、"n-up" の指定方法です。集約印刷という言い方もしますが、1 つの面に複数のページ、例えば、2 ページ、4 ページといった偶数のページを縮小して印刷することを指します。印刷した時の紙の枚数を節約するために使用されますが、当然、集約するページ数が多くなるほど文字の大きさは小さくなりますので、A4 サイズ用紙なら、2 面が一般的と思います。
通常は、印刷する際に、レーザー・プリンターや複合機のドライバーのプロパティ画面で指定しますが、PDF ファイルで電子保存する場合には、帳票設計の段階で指定する必要があります。Mapping V6 では未対応だったので、お客様には、スプールの段階で奇数ページ毎に改ページを外す処理を行ってくださいとお願いしてきました。しかし、V7 ではこれからご紹介する方法で対応できるようになりました。
ただし、Mapping の処理数は、生成される XPS ファイルのページ数になるとご案内してきましたが、この n-up 処理の場合には、生成されたページ数ではなく元のスプールのページ数になります。従って、処理数の点では節約にはならないということになります。

では、2 ページを 1 ページに集約する設計を例にして具体的な手順をご紹介します。
先ず、集約後をイメージした 2 つのフォーマットを作成します。具体的には次の手順で行います。
1. A4 サイズ縦長の 2 ページを A4 サイズ 1 ページに集約すると仮定して、集約後のフォーマットは、A4 サイズ横長とします。そして、左半分に奇数ページ、右半分に偶数ページを表示します。そのために、奇数ページ用のフォーマットと、偶数ページ用のフォーマットの 2 つのフォーマットを作成します。その際に、フォーマット名は同じ名前、シーケンス番号は、それぞれ "00010"、"00020" とします。
奇数ページ用のフォーマットの設定
偶数ページ用のフォーマットの設定
2. 奇数ページ用の、シーケンス "00010" のプロジェクトのプロパティ画面、右下にある "詳細" ボタンを押します。
プロジェクトのプロパティ画面の詳細ボタン

3. 表示された画面で、"改ページ" 欄のチェックを外します。そうすると、"配置" 欄が指定できるようになりますので、"垂直" を選択して保存します。
奇数ページ用の設定
4. 偶数ページ用の、シーケンス "00020" のプロジェクトのプロパティ画面で、"言語" を一旦、"PCL5" に変更してから、右下にある "詳細" ボタンを押します。表示される "拡張プロパティ" の画面で、"ページ定義" と "オーバーレイを呼び出す" のチェックを外します。
偶数ページ用の設定
5. "OK" ボタンを押して画面を閉じたら、"言語" を "XPS" に戻します。
6. これら奇数ページ用と偶数ページ用の 2 つのフォーマットを適用する条件を設定します。そのためには、プロジェクトのプロパティ画面で、"表面" タブを選択して、その画面を表示させます。条件として、"Page" を指定し、奇数ページ用のフォーマットでは、値として "1 of 2" を指定します。同じように偶数ページ用のフォーマットでは、"2 of 2" を指定します。
奇数ページ用のフォーマットの条件

7. プロジェクトのプロパティの設定は以上です。サンプルの設計なので、本格的なオーバーレイ(罫線や固定文字、ロゴ等)は省きますが、左右中央に左右の各面の境界となる縦線のみ、DrawF の画面で引いておきます。(片方のフォーマットに左右中央、1485.0 10/mm の位置に縦線を引いたら、もう片方のフォーマットにそれをコピー&ペーストします。)
境界の縦線を追加
次回は、MapF 画面の設計を行います。