PDF出力
2 posters
PDF出力
4Dv15.6(Windows10)より、PDFを出力しようとしています。
マニュアルサンプルの通り、以下のように記述しました。
$pdfpath:=System folder(Desktop)+"test.pdf"
$pdfprintername:="Microsoft Print to PDF"
ARRAY TEXT($name1;0)
PRINTERS LIST($name1)
If(Find in array($name1;$pdfprintername)>0)
SET CURRENT PRINTER($pdfprintername)
SET PRINT OPTION(Destination option;2;$pdfpath)
ALL RECORDS([Table_1])
PRINT SELECTION([Table_1];*)
SET CURRENT PRINTER("")
End if
環境として「印刷」ボタンと「PDF出力」ボタンは個別にあります。
「PDF出力」ボタンPDFは出力はされるのですが、
「印刷」ボタンでプレビューを行いXPSビューアーを開いてしまうと、
以後、「PDF出力」ボタンからの出力ではXPSビューアーが開きます。
次に「印刷」ボタンからのダイアログで手動で「Microsoft Print to PDF」ドライバに切り替え、
PDFを出力すると、以後、「PDF出力」ボタンから正常にPDF出力できるようになります。
これはバグなのでしょうか?
マニュアルサンプルの通り、以下のように記述しました。
$pdfpath:=System folder(Desktop)+"test.pdf"
$pdfprintername:="Microsoft Print to PDF"
ARRAY TEXT($name1;0)
PRINTERS LIST($name1)
If(Find in array($name1;$pdfprintername)>0)
SET CURRENT PRINTER($pdfprintername)
SET PRINT OPTION(Destination option;2;$pdfpath)
ALL RECORDS([Table_1])
PRINT SELECTION([Table_1];*)
SET CURRENT PRINTER("")
End if
環境として「印刷」ボタンと「PDF出力」ボタンは個別にあります。
「PDF出力」ボタンPDFは出力はされるのですが、
「印刷」ボタンでプレビューを行いXPSビューアーを開いてしまうと、
以後、「PDF出力」ボタンからの出力ではXPSビューアーが開きます。
次に「印刷」ボタンからのダイアログで手動で「Microsoft Print to PDF」ドライバに切り替え、
PDFを出力すると、以後、「PDF出力」ボタンから正常にPDF出力できるようになります。
これはバグなのでしょうか?
shige- 投稿数 : 62
登録日 : 2018/03/31
Re: PDF出力
こんにちは。
はじめに
Windowsでは,
SET PRINT OPTION (Destination option; 2)
ファイル(タイプ不問)という意味
Macでは,
SET PRINT OPTION (Destination option; 3)
PDFという意味
を指定しますので,Windowsの場合,出力ファイルタイプは拡張子で決まります。
https://doc.4d.com/4Dv15/4D/15.6/SET-PRINT-OPTION.301-3818579.ja.html
なので,Windowsでは,毎回の印刷時,Destination optionの直前に
SET CURRENT PRINTER(Generic PDF driver)
を呼び出す必要があります。
注記:v15の場合はPDFCreator Printer name(PDFCreatorを使用する場合)
または"Microsoft Print to PDF"を指定します。
https://doc.4d.com/4Dv16/4D/16.6/SET-CURRENT-PRINTER.301-4444642.ja.html
ただ,説明の動作は正常に思えます。
というのは,XPSビューアは4Dの一部ではなく,独立した別アプリですので,
プレビューを実行した時点でファイルは4Dの手を離れたことになるからです。
PDFの出力前にPDFをプレビューされるのであれば,
4Dのプレビュー機能は使用せず,
直接PDFをディスクに作成してOPEN URLコマンドでファイルを開くか,
フォームに組み込んだWebエリア等でプレビュー表示するなど,
XPSビューアに依存しない方法を選ぶ必要があると思います。
注記:OPEN URLは,ファイルをダブルクリックして開くのと同等の働きをします。
アプリ名を指定することもできます。
https://doc.4d.com/4Dv15/4D/15/OPEN-URL-new-name-for-OPEN-WEB-URL.300-2044190.ja.html
はじめに
Windowsでは,
SET PRINT OPTION (Destination option; 2)
ファイル(タイプ不問)という意味
Macでは,
SET PRINT OPTION (Destination option; 3)
PDFという意味
を指定しますので,Windowsの場合,出力ファイルタイプは拡張子で決まります。
https://doc.4d.com/4Dv15/4D/15.6/SET-PRINT-OPTION.301-3818579.ja.html
なので,Windowsでは,毎回の印刷時,Destination optionの直前に
SET CURRENT PRINTER(Generic PDF driver)
を呼び出す必要があります。
注記:v15の場合はPDFCreator Printer name(PDFCreatorを使用する場合)
または"Microsoft Print to PDF"を指定します。
https://doc.4d.com/4Dv16/4D/16.6/SET-CURRENT-PRINTER.301-4444642.ja.html
ただ,説明の動作は正常に思えます。
というのは,XPSビューアは4Dの一部ではなく,独立した別アプリですので,
プレビューを実行した時点でファイルは4Dの手を離れたことになるからです。
PDFの出力前にPDFをプレビューされるのであれば,
4Dのプレビュー機能は使用せず,
直接PDFをディスクに作成してOPEN URLコマンドでファイルを開くか,
フォームに組み込んだWebエリア等でプレビュー表示するなど,
XPSビューアに依存しない方法を選ぶ必要があると思います。
注記:OPEN URLは,ファイルをダブルクリックして開くのと同等の働きをします。
アプリ名を指定することもできます。
https://doc.4d.com/4Dv15/4D/15/OPEN-URL-new-name-for-OPEN-WEB-URL.300-2044190.ja.html
miyako- 投稿数 : 487
登録日 : 2016/07/05
Re: PDF出力
早速の返信、ありがとうございます。
プレビューは出力PDFで行うというご提案ですが...
運用的に印刷時にプリンタドライバでのプレビューに慣れているので
オペレーションミスが多発することが想定されます。
イメージ的には「SET CURRENT PRINTER」で指定することで
出力先を"Microsoft Print to PDF"に切り替えているものと思っておりましたが...
この方法しかないのでしょうか?
最新バージョンである4Dv18でも同様でしょうか?
プレビューは出力PDFで行うというご提案ですが...
運用的に印刷時にプリンタドライバでのプレビューに慣れているので
オペレーションミスが多発することが想定されます。
イメージ的には「SET CURRENT PRINTER」で指定することで
出力先を"Microsoft Print to PDF"に切り替えているものと思っておりましたが...
この方法しかないのでしょうか?
最新バージョンである4Dv18でも同様でしょうか?
shige- 投稿数 : 62
登録日 : 2018/03/31
Re: PDF出力
SET CURRENT PRINTER("")
が期待どおりに動いていない,ということはないでしょうか。
空の文字列ではなく,PDF出力前のプリンターを変数に取り,
それで戻してはどうでしょうか。
参考までに
ACI0100847 64ビット版のみ。SET CURRENT PRINTER("")でカレントプリンターをデフォルトプリンターにリセットすることができませんでした。
https://4d-jp.github.io/2020/07/09/release-note-version-18-latest/
が期待どおりに動いていない,ということはないでしょうか。
空の文字列ではなく,PDF出力前のプリンターを変数に取り,
それで戻してはどうでしょうか。
参考までに
ACI0100847 64ビット版のみ。SET CURRENT PRINTER("")でカレントプリンターをデフォルトプリンターにリセットすることができませんでした。
https://4d-jp.github.io/2020/07/09/release-note-version-18-latest/
miyako- 投稿数 : 487
登録日 : 2016/07/05
Re: PDF出力
「SET CURRENT PRINTER」後、「Get current printer」で確認する限りでは
指定通りに切り替わっているようです。
ただ、一度プレビューすると、
"Microsoft Print to PDF"になっていても"XPSビューア"が開きます。
恐らくプリンタドライバの「プレビュー」にチェックが付いたままになっている
状態を維持し続けているからではないか...と思われます。
チェックを外し、実際に印刷を行うと、以後PDF出力が可能となりました。
オペレーション的には、プレビューをした後は、必ず印刷を実行し、
印刷ダイアログの「プレビュー」のチェックを外すことが必要のようです。
指定通りに切り替わっているようです。
ただ、一度プレビューすると、
"Microsoft Print to PDF"になっていても"XPSビューア"が開きます。
恐らくプリンタドライバの「プレビュー」にチェックが付いたままになっている
状態を維持し続けているからではないか...と思われます。
チェックを外し、実際に印刷を行うと、以後PDF出力が可能となりました。
オペレーション的には、プレビューをした後は、必ず印刷を実行し、
印刷ダイアログの「プレビュー」のチェックを外すことが必要のようです。
shige- 投稿数 : 62
登録日 : 2018/03/31
Re: PDF出力
ご連絡ありがとうございます。
返事が遅れすみません。
先ほど確認したところ...
SET PRINT PREVIEW(False)を実行することでうまくいきました!!
ご教示頂きありがとうございました。
返事が遅れすみません。
先ほど確認したところ...
SET PRINT PREVIEW(False)を実行することでうまくいきました!!
ご教示頂きありがとうございました。
shige- 投稿数 : 62
登録日 : 2018/03/31
Permissions in this forum:
返信投稿: 不可