embedPreviewWindow

指定した印刷データをiframeにプレビュー表示します。また、プレビュー画面から[印刷]ボタンをクリックした際の動作も指定します。

注意

プレビューできるのは、プリンター機種「EMF」または「EMFPLUS」で作成された印刷データのみです。

構文

sdp.embedPreviewWindow(id, printData[, dialogPrintMode [, initialDisplayMode[, endPrint[, errorPrint]]]]);

引数

引数 必須 説明
id プレビューを表示するiframeタグのidを指定します。
printData

SVFで出力した印刷データを指定します。ファイル形式のデータとストリーム形式のデータを指定できます。
ファイル形式のデータを印刷する場合は印刷データファイルのURL、ストリーム形式のデータを印刷する場合は印刷データを返すサーブレットなどのURLを指定します。
また、GETメソッドで通信するためURLクエリーパラメーターも使用できます。

URLクエリーパラメーターの指定例
embedPreviewWindow('iframeID', 'http://localhost:8080/webdirectprint/servlet/ExecStreamPrintServlet?key1=value1&key2=value2')
dialogPrintMode   プレビュー画面で[印刷]ボタンをクリックした際の動作を指定します。省略した場合、指定した値が無効の場合は[印刷]ボタンを表示しません。
  • 0
    [印刷]ボタンを表示しません(プレビューのみ可能)。
  • 1
    アプリケーション内で指定したプリンターに直接印刷します。印刷先のプリンターは以下の優先順位で決定されます。
    1. インスタンスのプロパティ「printerName」に指定された出力先
      インスタンスのプロパティについては、「コンストラクター」を参照してください。
    2. インスタンスのプロパティも指定されていない場合、Windowsの「通常使うプリンター」
  • 2
    「プリンター選択ダイアログ」を表示します。
    ダイアログの詳細については「1-1-1 機能で使用できる画面の詳細」を参照してください。
  • 3
    「印刷ダイアログ」を表示します。
    ダイアログの詳細については「1-1-1 機能で使用できる画面の詳細」を参照してください。
initialDisplayMode   プレビューの初期表示倍率を指定します。省略した場合、指定した値が無効の場合は拡大縮小率100%で表示します。
  • 0
    拡大縮小率100%で表示します。
  • 1
    全体を表示します。
  • 2
    幅に合わせて表示します。
  • 3
    高さに合わせて表示します。
endPrint   プレビュー後の印刷が成功した時に動作させるFunctionオブジェクトを設定します。
errorPrint   プレビュー後の印刷が失敗した時に動作させるFunctionオブジェクトを設定します。

 

戻り値

Promiseオブジェクトが返却されますので、処理結果による動作の制御に利用できます。
また、JavaScript APIがPromise経由でステータスコードを返すので、ステータスコードを利用してより詳細な動作の制御も可能です。ステータスコードの使い方については「print」の「指定例」を参照してください。

ステータスコード 内容
-101 印刷エラー
-102 印刷中断
「印刷ダイアログ」が閉じられた場合が該当します。
-103 印刷中断
ファイル出力用プリンターへの出力時にファイル名などを指定するダイアログが閉じられた場合などが該当します。
-201 プレビュー時のレンダリング失敗
-202 プレビューデータが無効
データがnullの場合などが該当します。
-203 プレビューキャッシュが無効
キャッシュがない場合などが該当します。

 

指定例

印刷データ「http://localhost:8080/sample.emf]をiframeにプレビュー表示します。プレビュー画面で[印刷]ボタンがクリックされるとWindowsの「通常使うプリンター」に直接印刷します。
また、プレビューが成功した場合は警告ダイアログに「preview success」を出力し、失敗した場合は「preview error」を出力します。プレビュー後の印刷が成功した場合は警告ダイアログに「print success」を出力し、失敗した場合は「print error」を出力します。

<iframe class="previewframe" id="iframeID" style="height:800px; width:800px"></iframe>
 
var sdp = new SDP();
var promise = sdp.embedPreviewWindow('iframeID', 'http://localhost:8080/sample.emf', 1, 0, function(){ window.alert('print success')}, function(){ window.alert('print error')});
promise.then(function(){
    window.alert('preview success'); //プレビュー成功時の処理
}).catch(function(){
    window.alert('preview error'); //プレビュー失敗時の処理
})