PDFファイルを扱う(MacOSのみ)
日付 | 2008/04/03 |
---|---|
ID | 08-009 |
バージョン | 11 |
プラットフォーム | Mac |
MacOSでPDFファイルを扱う方法は2通りあります。
ピクチャ変数/フィールドで表示する
4D v11 SQLではPDFをピクチャとして扱えます。次のメソッド例は、選択したPDFをピクチャ変数に取り出します。
`PDFファイルを選択する $desktop_folder:=Replace string(System folder(Preferences or Profiles_User );"Library:Preferences";"Desktop") `デスクトップのフォルダーパス(Mac専用) $ref_document:=Select document($desktop_folder;".pdf";"PDFファイルを選択してください";Multiple files ) If (OK=1) `4Dに読み込む DOCUMENT TO BLOB(Document;$blob_data) `システム変数のDocumentを使う BLOB TO PICTURE($blob_data;Pictuer_data) `PDFの1ページ目をピクチャ変数に取り出す End if
ただし、この方法はPDFの最初のページだけを表示することはできますが、他のページを扱えません。サムネイル向きのテクニックです。PDFの全てを扱うためには4D以外のアプリケーションの力が必要になります。
プレビューで開く
4Dで生成したPDFをプレビューを使って表示させるには、次のようにメソッドを記述します。
`BLOBをPDFファイルとして書き出す $ref_document:=Create document("";".pdf") If (OK=1) CLOSE DOCUMENT(Document) `直ぐに閉じる BLOB TO DOCUMENT(Document;$blob_data) `作成したファイルの代わりにBLOBからPDFファイルを作成する `ドキュメントパスをUnix形式にする $file_path:=Replace string(Document;":";"/") $i_pos:=Position("/";$file_path) $file_path:=Substring($file_path;$i_pos) `書き出したPDFを表示 C_TEXT($t_command;$t_input;$t_output) $t_command:="open -a Preview "+$file_path LAUNCH EXTERNAL PROCESS($t_command;$t_input;$t_output) End if
ポイントはMacOSのopenコマンドを使うことです。openコマンドはアプリケーションを起動することができます。もしPDFファイルを一時的に作成するならCreate documentの代わりに、Temporary folderで返されたパスを利用することもできます。