showPreviewWindow

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

注意

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

構文

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

引数

引数 必須 説明
printData

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

URLクエリーパラメーターの指定例
showPreviewWindow('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」を幅600ピクセル x 高さ400ピクセルのサイズを持つ別ウィンドウに拡大縮小率100%でプレビュー表示します。プレビュー画面で[印刷]ボタンがクリックされるとWindowsの「通常使うプリンター」に直接印刷します。
    また、プレビューが成功した場合は警告ダイアログに「preview success」を出力し、失敗した場合は「preview error」を出力します。プレビュー後の印刷が成功した場合は警告ダイアログに「print success」を出力し、失敗した場合は「print error」を出力します。

    var sdp = new SDP();
    sdp.windowWidth = 600;
    sdp.windowHeight = 400;
    sdp.windowLeft = 100;
    sdp.windowTop = 100;
    var promise = sdp.showPreviewWindow('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'); //プレビュー失敗時の処理
    })
  • 印刷処理後のページ遷移
    印刷成功後または印刷失敗後に呼び出し元画面をページ遷移させる場合、sdpオブジェクトは破棄されるためプレビューウィンドウの再利用ができなくなります。
    このため、呼び出し元画面のページ遷移の前にプレビューウィンドウを閉じる必要があります。

    var sdp = new SDP();
    var windowObj; // PreviewWindowオブジェクト保持用の変数
    var promise = sdp.showPreviewWindow(
      'http://localhost:8080/sample.emf',
      2,
      0,
      function(res){ 
        //印刷終了後の処理
        windowObj.close(); // ウィンドウを閉じる
        location.href = "http://localhost:8080/end.html"; //成功ページに遷移
      },   
      function(err){ 
        //印刷終了後の処理
        windowObj.close(); // ウィンドウを閉じる
        location.href = "http://localhost:8080/error.html"; //失敗ページに遷移
      } 
    );
    promise.then(function(res){
      //プレビュー成功後処理
      windowObj = res.window; //プレビュー成功後に、プレビュー画面のウィンドウオブジェクト(res.window)を変数(windowObj)にセットする
    }).catch(function(err){
    })
    • 変数(windowObj)を用意しておく
    • Promiseで、プレビュー成功後にres.windowをwindowObjにセットしておく
    • endPrintに、印刷終了後の処理を記述する。そこでプレビューウィンドウ(windowObj)を閉じる処理を記述する