MacでPDFに保存 デフォルトのファイル名を指定したい
4Dアプリでフォームを使って印刷する場合、PDFファイルに保存したい場合があります。その時のデフォルトファイル名を指定する方法です。
プロジェクトメソッドに次のように記述します。
//—– ここから A04_btnPrint
//一覧を印刷、P07
//20170901 wat
C_LONGINT($numOfPages)
C_LONGINT($sizeOfAry;$i)
C_LONGINT($dlg_ok)
C_LONGINT($maxRows)
$maxRows:=42
C_LONGINT($pittari)
$pittari:=0
C_TEXT($title)
$title:=vA04_txtSpaceTitle+” “+vA01_txtPE_BeginEnd
P07_DefInit
//印刷設定ダイアログを表示
$dlg_ok:=JCL_prt_PageSetup (“P07_A04”)
If ($dlg_ok=1)
//印刷ファイル名を指定
SET PRINT OPTION(Spooler document name option;$title)
//進歩表示を隠す
SET PRINT OPTION(Hide printing progress option;1)
//総ページ数を求める ページごとの開始SL_ID
$numOfPages:=zz_prt_GetNumOfPages ($maxRows;->vA04_lstB_JO_ID)
For ($i;1;$numOfPages)
P07_PrintHeader ($i;$numOfPages)
//伝票を印刷 ボディ部を印刷
P07_PrintDetail ($i;$maxRows;->vA04_lstB_JO_ID)
If ($i=$numOfPages)
P07_PrintFooter
End if
If ($i<$numOfPages) PAGE BREAK(>)
End if
End for
End if
//—– ここまで
このソースでは、SET PRINT OPTIONに「Spooler document name option」を指定すればPDFのファイル名をデフォルト設定できると期待しました。
SET PRINT OPTION
http://doc.4d.com/4Dv16/4D/16.2/SET-PRINT-OPTION.301-3432883.ja.html
□ Windowsの場合
OSにPDF出力機能が実装されていないため、オプションでPDF出力機能を追加することになります。このケースでは上記スプーラドキュメントのデフォルトファイル名はうまく機能します。
□ Macの場合
OSにPDF出力機能が実装されているため、うまく働きません。プリントダイアログで左下のプルダウンメニューの[PDFで保存]を実行するとデフォルトファイル名は「名称未設定.pdf」になってしまいます。
しかし、プリントダイアログで左下のプルダウンメニューで[プレビューでPDFを開く]を選択すると、プレビューアプリが起動してデフォルトファイル名に指定した文字列が適用されます。プレビューの保存機能を利用することでデオフォルトファイル名が有効に働きます。