Tips

PDFファイルを扱う(MacOSのみ)

日付2008/04/03
ID08-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で返されたパスを利用することもできます。