Ghostscriptを利用したPDF出力

Ghostscript / DataWindowのPDF出力

こんにちは、サポート部の明石です。

JSON、Ghostと映画。。。もとい、DataWindowに関する話題が続きますが、お付き合いよろしくお願いします。

さてPowerBuilder 2017では、新たにNativePDF機能が追加されました。この機能を利用すると、クライアント端末にサードパーティ製ソフトウェア(Ghostscript)のインストールやプリンター設定をせずPDF出力が可能となります。さらにPowerBuilder 2017 R3では、出力するPDFファイルにパスワード埋め込みが可能になるなど、NativePDF機能は引き続き機能拡張されており、今後利用する機会は増えていきそうですね♪

ただ旧バージョンのアプリをマイグレーションして利用する場合、Ghostscriptのインストールやプリンター設定など環境を準備する手間は発生しますが、プロパティやScriptの記述を変更することなくそのままPDF出力が行えるため、引き続きGhostscriptを利用する場面もあるかと思います。

そこで今回は、改めてGhostscriptを利用したDataWindowのPDF出力について紹介したいと思います。

 

インストールするGhostscriptのバージョンは??

Ghostscriptの利用にあたり、今までは開発元で検証したバージョンが記載されていましたが、PowerBuilderマニュアルにはどのバージョンを利用して検証したか、また推奨バージョンに関する記載が見つかりませんでした。

と、いうわけでAppeon社へ推奨バージョンを問い合わせたところ「最新バージョンの利用を推奨します。」との回答がありました。今後利用される場合は、最新バージョンを使用するのがよさそうです。

Ghostscriptのダウンロードは、PowerBuilderマニュアルにも記載されていますがGhostscriptの提供サイトから “Download” ⇒ “Ghostscript” をクリック後に表示される製品ダウンロードページに遷移して、最新バージョンが入手できます。

今回、私が検証する環境はWindowsの64bit端末のため、”Ghostscript 9.26 for Windows (64 bit)” の “Ghostscript AGPL Release” をダウンロードします。


Ghostscriptをインストール

では、ダウンロードしたGhostscriptをインストールしましょう。インストール方法はInstalling Ghostscriptに記載されていますが、インストール先以外に特別な設定はなく該当のボタンをクリックしていくだけですので、簡単にインストールが可能かと思います。

なおPowerBuilder12.5.1では、64bit端末にGhostscriptの64bit版をインストールしてPDF出力をしたところ、PDFが出力されないといった事象がありました。その際のワークアラウンドとして、インストールされた “gswin64c.exe” の名前を “gswin32c.exe” へ変更する方法をご案内していましたが、PowerBuilder 2017はExe名の変更は必要ありませんのでご注意ください。


PostScriptプリンタードライバーをインストール

DataWindowを “distill” メソッドを使用してPDFへと出力するには、Ghostscriptのインストールに加えて、PostScriptプリンタードライバーが必要になります。環境を準備する上で、この設定が一番手間のかかる作業かもしれません。設定方法はこちらもInstalling PostScript Driversに記載されていますが、当ブログでは設定方法に加えて画面キャプチャも掲載してありますので併せてご活用ください。

1. Windowsのスタートメニューまたはコントロールパネルからプリンター設定画面を開きます。

2. “プリンターの追加”(もしくは “プリンターまたはスキャナーを追加します” )をクリックし、”プリンターが一覧にない場合” をクリックします。

3. “その他のオプションでプリンターを検索” 画面で “ローカル プリンターまたはネットワーク プリンターを手動設定で追加する(O)” を選択し、[ 次へ(N) ]ボタンをクリックします。

その他のオプションでプリンターを検索

その他のオプションでプリンターを検索

4. “プリンター ポートの選択” 画面で “既存のポートを使用(U)” を選択、ドロップダウンから “FILE: (ファイルへ出力)” を選択し、[ 次へ(N) ]ボタンをクリックします。

プリンター ポートの選択

プリンター ポートの選択

5. “プリンター ドライバーのインストール” 画面で製造元(例:Microsoft)と “PS” という名称を持つプリンター(例:Microsoft PS Class Driver)を選択し、[ 次へ(N) ]ボタンをクリックします。

プリンター ドライバーのインストール

プリンター ドライバーのインストール

※ [ ディスク使用(H) ]ボタンをクリックし、”フロッピーディスクからイントール” 画面に遷移後、[ 参照(B) ]ボタンをクリックして、インストールしたGhostscript(例:C:\Program Files\gs\gs9.26\lib)のドライバー(ghostpdf.inf)を指定してインストールすることも可能です。インストールの際に、”このデバイス ソフトウェアをインストールしますか?” 画面が表示された場合は、[ インストール(I) ]ボタンをクリックします。

フロッピー ディスクからインストール

フロッピー ディスクからインストール

プリンター ドライバーのインストール

プリンター ドライバーのインストール

このデバイス ソフトウェアをインストールしますか?

このデバイス ソフトウェアをインストールしますか?

6. “プリンター名を入力してください” 画面でプリンター名に “Sybase DataWindow PS” を入力し、[ 次へ(N) ]ボタンをクリックします。

プリンター名を入力してください

プリンター名を入力してください

※設定するプリンター名は、変更される事もありますのでご注意ください。

7. “プリンター共有” 画面で “このプリンターを共有しない(O)” を選択し、[ 次へ(N) ]ボタンをクリックします。

プリンター共有

プリンター共有

8. “Sybase DataWindow PSが正しく追加されました” 画面で[ 完了(F) ]ボタンをクリックし、ウィザードを終了します。

Sybase DataWindow PSが正しく追加されました

Sybase DataWindow PSが正しく追加されました

これで、PostScriptプリンタードライバーのインストールは完了です。


DataWindowのPDF出力

それでは実際にPowerBuilderから、DataWindowのPDFファイルを出力してみましょう。出力したいDataWindowのプロパティで “エクスポート” タブを選択し、下記を選択します。

  • 設定するフォーマット
    • PDF
  • 変換メソッド
    • Distill!
  • “カスタム PostScript ドライバを使用” をチェック

または、下記Scriptの記述でも設定が可能です。

dw_control.Object.DataWindow.Export.PDF.Method = Distill!
dw_control.Object.DataWindow.Export.PDF.Distill.CustomPostScript = "Yes"

ここまで設定できたら後は、SaveAsメソッドの第二引数である “SaveAsType” に “PDF!” を設定して出力します。例えば…

dw_print.SaveAs("",PDF!,False)

とすれば保存先のダイアログが出力され、ファイル名を指定してPDFファイルが出力できます。

DataWindowの内容

DataWindowの内容

出力されたPDF

出力されたPDF

このように簡単なPowerBuilderの設定やScriptの記述でPDF出力が行えます。


最後に

冒頭で述べましたが、PowerBuilder 2017へマイグレーションすることでNativePDF機能が利用できるため、今後Ghostscriptを利用するケースは徐々に減っていくかと思いますが、マイグレーション直後は、「まずはGhostscriptを利用して。。。」というプロジェクトもあるかと思います。PowerBuilder 2017ではプロジェクトに併せて、是非色々とお試しください。

以上、明石でした。

テクニカルブログ 一覧を見る
PowerBuilder マイグレーション
PowerBuilder学習、動画で始めちゃう?