4D-JUG
Would you like to react to this message? Create an account in a few clicks or log in to continue.

【小技】サードパーティ製XPSビューアで印刷プレビューを表示する

Go down

【小技】サードパーティ製XPSビューアで印刷プレビューを表示する Empty 【小技】サードパーティ製XPSビューアで印刷プレビューを表示する

投稿 by miyako 2018-12-03, 1:28 pm

v13以降,Windows版では,印刷プレビューにはシステム標準の『XPSビューア』が使用されるようになりました。Mac版のPDF形式に相当するWindowsの仕様がXPS形式であり,システムにプリインストールされたアプリをプレビューを表示させることで,どちらのプラットフォームでも『ネイティブな』印刷プレビューを提供することがおもな目的でした。

ご存知のように,Windows 1803以降,クリーンインストールされたWindowsには,XPSビューアが含まれていません。1803や1809のアップデートで,XPSがアンインストールされることはありませんが,新規のWindowsマシンでは,(Windows Serverと同じように)『アプリと機能』でXPSビューアを追加インストールする必要があります。

XPSビューアがインストールされていない場合にプレビューをどうするか

XPSビューアはインストールされていないとしても,仮想プリンターであるMicrosoft XPS Document Writerは利用することができます。つまり,SET CURRENT PRINTERでMicrosoft XPS Document Writerを対象プリンターに指定し,SET PRINT OPTION(Destination option;2;...) でXPSファイルに出力することができます。それで,4Dと一緒にサードパーティ製のXPSビューアを配付し,このパスをLAUNCH EXTERNAL PROCESSで開けば,システム標準のXPSビューアが利用できない環境でも代替ビューアでプレビューを表示することができます。

注記:64ビット版の4Dであれば,CEF版Webエリアをプレビュー代わりに使用することができます。CEFは,Google Chromeのエンジンであり,PDFを表示することができるからです。とはいえ,Microsoft Print to PDFも標準ではインストールされておらず,『アプリと機能』で追加インストールしなければなりません。XPSはビューアがオプション,PDFはドライバーがオプションなので,いずれにしても『アプリと機能』で環境を整備する必要があるということです。

例題を公開しました:

https://github.com/miyako/4d-tips-3rd-party-xps-viewer

SET PRINT PREVIEWがTrueに設定されている場合,Microsoft XPS Document Writerで一時フォルダーにXPSドキュメントを出力し,そのバスをオープンソースソフトウェアの xpsviewに渡して開いています。

せっかくなので,xpsview(言語:C#)をカスタマイズし,ウィンドウの位置とサイズを指定したり,進捗表示を無効にしたり,ウィンドウを最前面に移動したりできるようにしました。(標準のXPSビューアが表示される場所は,4D側から制御できないので・・・)

https://github.com/miyako/xpsview

miyako

投稿数 : 480
登録日 : 2016/07/05

トップに戻る Go down

トップに戻る


 
Permissions in this forum:
返信投稿: 不可