PDFドキュメントを作成するには

以前は、プログラムで作成される帳票は紙に出力されていました。これにより、実際に使用する以上の多くの書類が生成されていました。最近では、PDF形式で出力されることが標準化されてきました。

このセクションでは、基本的なPDFファイルの作成方法について説明しています。PDFの操作に関して、市場でよく利用されているPDF関連製品を使用して作成されたPDFドキュメントを読み込む方法も提案しています。

PDFが有益ないくつかの基本的な状況があり、それぞれ扱い方が異なります。

  1. ユーザが実行時にプリンタを選択する

  2. デフォルトの印刷プレビューとしてPDFを指定する

  3. ユーザの介入なしにPDFを出力するバッチ処理

これらの各状況ごとに対応方法を説明します。

ユーザが出力先を選択する際にPDFの設定を行う

Screen22-54.gif

最初のケースは、簡単に設定できます。

  1. 単に、出力先のプリンタとしてPDFドライバーを作成するだけです。通常は、PDF製品がインストールされると自動的に作成されます。具体的な設定内容は、インストールする製品によって異なります。PDFが作成される際に、PDFドライバーが自動的にオープンされます。

  2. 入出力テーブル の ダイアログ カラムを Yes に設定します。

  3. 入出力特性 の 印刷プレビュー 特性を No に設定します。

これでユーザは、出力先をPDFに指定することができます。この場合、強制的にPDFプリンタを選択させるわけではありません。FAXドライバーやその他のWindowsにインストールされているデバイスドライバを任意に指定することができます。

Windowsのプリンタ定義で、ファイル名や解像度、およびデフォルトの出力先の設定を選択することができます。この例では、Adobe PDFというドライバー名が表示されていますが、類似機能の製品を使用することもできます。

デフォルトの印刷プレビューアーとしてPDFを設定する

Screen22-55.gif

  1. 前述の例のように、Windowsプリンタドライバを作成します。Windowsプリンタドライバに、わかりやすい(空白を含めない、指定しやすい)名前を設定します。上の例では、 Adobe PDF という名前で定義されています。

  2. プリンタ テーブルを開き( オプション→設定→プリンタ )、PDFとして出力するために使用するプリンタを作成します。この例では、 PDFプリンタ という名前で定義されています。 キュー カラムでは、Windowsに定義されているプリンタドライバの名前を入力します。この名前は正確に入力する必要があります。

  3. 印刷用タスクに移動し 入出力ファイル テーブルをオープンします。#2で設定した PDFプリンタ を選択します。

これで、印刷結果は直接PDFに出力されます。Windowsプリンタドライバが出力された後に自動的にオープンするように設定されている場合、ユーザは実質的にPDF印刷プレビューを持つことになります。その際、ユーザはPDFにコメントを加えたり、ファイル名を変更して保存したり、別の人にeメールやFAXで送信したりすることができます。

注意:

コマンドファイル や 変換ファイル の各カラムは通常空白にしておきます。これらは、特定のインスタンス(シリアルプリンタで専用の制御コードが必要な場合)でのみ使用されます。

ヒント:印刷に関する社内標準がある場合、上記の方法が便利です。それは、すべてのPCが同じ名前のプリンタドライバがインストールされている必要があり、インストール環境の設定を慎重に行う必要があるためです。ユーザは、勝手にプリンタドライバの名前を変更しないようにする必要があります。ドライバ名は、その機能にもとづいてわかりやすい名前(例:受注システムから出力される場合は、「受注」というドライバ名)に出力されるように検討する必要があります。

バッチジョブ用にPDFを設定する

自動的に帳票内容をPDFに出力させたい場合があります。例えば、50人の異なる店員のためのレポートをPDFで作成し、各店員にレポートのコピーをメールで送信する場合を考えます。エンドユーザは今まで通りの作業を開始しますが、プリンタを選択したり50人の店員用にPDFのファイル名を設定することは面倒な作業になります。

PDF作成ツールによって設定内容が異なるため、バッチ処理でPDFを作成する方法の説明は多少複雑になります。ここでは、Acrobatを例にとって説明します。

 1つのPDF毎に入出力ファイルをオープンする処理を作成します。

Screen22-56.gif

この例では、DVDレポートを実行しようとしていますが、各スタジオ毎に1つのPDFファイルを作成するようにしています。

これを実現するには、新しいスタジオデータが処理されるたびに、入出力ファイルをオープン/クローズする必要があります。

スタジオ毎にプリンタドライバにアクセスするタスクを作成し、各スタジオデータ毎にこのタスクを呼び出すようにします。

このタスクでは、各PDF毎にスタジオ名を含んだファイル名を指定しています。このため、例えばスタジオS001の場合、以下のようなファイル名になります。

C:\Temp\S001DVDS.PS

また、最終的なPDFリポートを以下のファイル名で作成します。

C:\PDFReports\S001DVDS.PDF

ポストスクリプトファイルを作成します。

Screen22-57.gif

最初に、ポストスクリプトファイルを作成する必要があります。この処理は、 入出力ファイル テーブルで指定されたプリンタ経由で自動的に行われます。この例で示されている入出力ファイルは、ファイル名が指定されている以外は、前のセクションで設定した内容とほぼ同じです。処理が実行されると、Acrobatは指定されたファイル名で帳票データを作成します。この例では、スタジオ S001 のための帳票となりC:\Temp\S001DVDS.PSと呼ばれるファイルが作成されます。

ポストスクリプトをPDFに変換する

次に、ポストスクリプトをPDFファイルに変換する必要があります。Adobe Distiller のようなポストスクリプトファイルをPDFに変換するソフトを持っており、特定のディレクトリ内のポストスクリプトファイルを変換するために監視するように設定されている場合、何もする必要はありません。

Distillerは自動的にPDFに変換します。しかし、この方法の1つの問題は、Distillerの開始や設定内容がユーザに依存していることです。このことはまた、開発者が処理の手順をコントロールできないことを意味しています。例えば、(eメールで送信する処理などの)PDF作成後に実行されるべき処理が、いつ作成されるか分からないことになります。

Delay() 関数とブロックループを組み合わせることでPDFが作成されるまで待つようにすることで解決できます。しかし以下に示すように、より洗練された方法として、PdfDistillerのCOMオブジェクト( Acrobat Distiller(Ver1.0) )のようなCOMオブジェクトを使用することです。

Screen22-58.gif

他の方法でもコントロールすることができますが、COMオブジェクトを呼び出す場合は、入力ファイル(最初のパラメータ)と出力ファイル(2番目のパラメータ)を指定し、3番目のパラメータに空の文字列を指定するだけで済みます。

この例では、 スタジオ毎の処理 が1回処理するたびに、1つのPDFファイルが作成されます。この後、PDFをeメールで送信したり、他の処理を行うことができます。