始めの言葉

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

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年2月3日日曜日

XPSConfig ファイルを使った PDF セキュリティ - その他の制御 -

前回のお話で生成した PDF ファイルにはパスワードの設定の他にも
<encryptallowprint>off</encryptallowprint>
という設定によって、印刷の禁止が設定されています。
では、実際に印刷しようとするとどうなるかを見てみましょう。前回の "BAYTOPPW.pdf" を Acrobat Reader 使って開こうとすると、パスワードを要求されますので、所有者パスワードか使用者パスワードを入力します。表示された画面は次の通りです。

BAYTOPPW.pdf を Acrobat Reader で開いた画面
画面左上のファイル名が、BAYTOPPW.pdf(保護) となっているのが、お分かりいただけると思います。XPSConfig.conf ファイルの中の次の設定が効いているわけです。
<encryptmode>on</encryptmode>

次に印刷するために、メニューの中のファイルを選択すると、次のように "印刷" メニューが無効になっていることがお分かりになると思います。
印刷メニューが無効になっている
このようにして、PDF ファイルを受信してパスワードを使って開いたユーザーも、表示はできますが、印刷して配布したりコピーを取ったりすることができないというセキュリティー管理ができるわけです。
通常はそこまでの細かな管理は行わないと思いますが、パスワードと同様に、スプール・データの中の表示に使用しない場所に、"on" とか "off" を入れておいて、それを例えば、"ALWPRINT" いう別の名前のアーカイブ・ゾーンとして帳票設計しておけば、次のような XPSConfig.cnf ファイルの指定によって、スプール・データ内の指定に応じて、印刷を許可するかどうかを自動的に決められます。
<encryptallowprint>[[ALWPRINT]]</encryptallowprint>

次に、印刷の他に、この XPSConfig.conf の中では、次の設定を "on" としています。
<encryptallowdataextraction>on</encryptallowdataextraction>
生成された "BAYTOPPW.pdf" のファイルのプロパティを見ると、次のように "内容のコピー" と "アクセシビリティのための内容の抽出" が "許可" に変わりました。
dataextraction=on によるセキュリティの許可
この時の "詳細" は次のようになっています。
セキュリティの詳細

ここで、XPSConfig.conf の中で
<encryptallowdataextraction>off</encryptallowdataextraction>
に戻して、
<encryptallowaccessibility>on</encryptallowaccessibility>
とします。その場合は、"アクセシビリティのための内容の抽出" のみが "許可" となります。
encryptallowaccessibility=on によるセキュリティの許可
なお、この設定は読み上げソフトを使用可能とする設定です。詳細画面は次のようになっています。
セキュリティの詳細画面


次に、XPSConfig.conf ファイルの中の次の設定を "on" に変更して、PDF ファイルを生成します。
<encryptallowmodify>on</encryptallowmodify>
PDF ファイルのプロパティを開くと、次の 3 項目が "許可" に変わっていることが分かります。
- フォームフィールドの入力
- 署名
- テンプレートページの作成
encryptallowmodify=on によるセキュリティの許可
この時のセキュリティの詳細画面では、次の 2 項目が許可に変わっています。
- 文書の変更
- 文書アセンブリ
セキュリティの詳細画面


更に、次の設定を、"on" に変更して、PDF ファイルを生成します。
<encryptallowcomment>on</encryptallowcomment>
その結果、"注釈" が許可されました。
encryptallowcomment=on によるセキュリティの許可
この時の詳細画面も同じ内容です。
セキュリティの詳細画面