API version 4
- ‐
PrintStreamDocument¶
PrintStream 印刷スプールファイル(PSS)をダウンロードするためのクラスです。
PrintStream 印刷スプールファイル(PSS)をPrintPreviewで表示・印刷するためのクラスです。
getメソッドもしくは、PrintableDocument.load メソッドで、PSSファイルのダウンロードができます。
ダウンロードの進行に伴うstatusプロパティの遷移・イベントの発生は下記のようになっています。
CRSコード |
内部処理 |
ステータス |
||
|---|---|---|---|---|
(初期状態) |
STATUS_INITIAL |
|||
getメソッド呼び出し |
→ |
00000001.pss取得 |
→ |
STATUS_GENERATINGに移行 |
↓ |
||||
ExtractInfo発生 |
← |
印刷定義情報ファイル抽出 |
||
ExtractPage発生 |
← |
1ページ目SVG抽出 |
||
ExtractPage発生 |
← |
2ページ目SVG抽出 |
||
… |
||||
(00000001.pss全ページ抽出完了) |
||||
↓ |
||||
00000002.pss取得 |
||||
… |
||||
最終pssファイル取得 |
||||
↓ |
||||
ExtractFinished発生 |
← |
最終ページマーク検出 |
→ |
STATUS_FINISHEDに移行 |
↓ |
||||
ダウンロード完了 |
PrintPreviewでのプレビュー表示・印刷手順¶
PrintStreamDocumentは、以下の手順でPrintPreviewに接続してプレビュー表示・印刷を行います。
PrintPreview の document プロパティに、PrintStreamDocumentオブジェクトを設定します。documentプロパティは、PSSファイルのページ展開に連動して自動的にページを追加していくため、 get メソッド呼び出しの前後どちらで設定してもかまいません。
PrintStreamDocumentオブジェクトの get メソッドを呼び出し、PSSファイルのダウンロードを開始します。ダウンロードが進行するにつれ、上記の表のとおり ExtractPage イベントが発生する毎にPrintPreviewへページが追加されていきます。
ExtractFinished イベントが発生し、statusプロパティが``STATUS_FINISHED``になった時点で全ページの展開が完了します。この時点で、PrintPreviewの printDialog メソッドを呼び出すことで印刷ダイアログを表示し、印刷を実行できます。
Form formPrintStreamDocument {
x = 0; y = 0; width = 800; height = 600;
PrintStreamDocument pssDoc {
function onExtractFinished(e) {
# 全ページの展開が完了したら印刷可能にする
^.buttonPrint.enabled = true;
}
function onExtractFailed(e) {
messageBox("ダウンロードに失敗しました: " + e.message, "エラー", MB_ICON_STOP);
}
}
PrintPreview preview {
x = 8; y = 40; width = 784; height = 552;
}
Button buttonGet {
x = 8; y = 8; width = 160; height = 24;
title = "ダウンロード開始";
function onTouch(e) {
^.buttonPrint.enabled = false;
^.preview.clearPages();
# document プロパティの設定は get 呼び出しの前後どちらでもよい
^.preview.document = ^.pssDoc;
^.pssDoc.get("http://printserver/psddata");
}
}
Button buttonPrint {
x = 176; y = 8; width = 160; height = 24;
title = "印刷"; enabled = false;
function onTouch(e) {
^.preview.printDialog();
}
}
}
スタティックメソッドでのプレビュー表示・印刷手順¶
PrintPreviewコントロールを画面上に配置せず、 PrintPreview の previewDirect / printDialogDirect スタティックメソッドを 使う方法でも、プレビュー表示・印刷を行えます。
重要
previewDirect / printDialogDirect は、呼び出された時点でのPrintableDocumentの全ページを対象とします。
PrintStreamDocumentはページを逐次ダウンロードして展開するため、ダウンロード完了前(status が
STATUS_FINISHED になる前)に呼び出すと、その時点までに展開済みのページのみが対象になってしまいます。
そのため、必ず ExtractFinished イベント発生後(全ページの展開完了後)に呼び出してください。
Form formPrintStreamDocument_direct {
x = 0; y = 0; width = 800; height = 600;
PrintStreamDocument pssDoc {
function onExtractFinished(e) {
# 全ページの展開が完了したら別タブでプレビュー表示する
PrintPreview.previewDirect(^.pssDoc, true);
}
function onExtractFailed(e) {
messageBox("ダウンロードに失敗しました: " + e.message, "エラー", MB_ICON_STOP);
}
}
Button buttonGet {
x = 8; y = 8; width = 160; height = 24;
title = "ダウンロード開始";
function onTouch(e) {
^.pssDoc.get("http://printserver/psddata");
}
}
Button buttonPrintDirect {
x = 176; y = 8; width = 160; height = 24;
title = "直接印刷";
function onTouch(e) {
# status が STATUS_FINISHED になっている場合のみ直接印刷する
if (^.pssDoc.status == STATUS_FINISHED) {
PrintPreview.printDialogDirect(^.pssDoc);
} else {
messageBox("ダウンロードが完了していません", "エラー", MB_ICON_STOP);
}
}
}
}
関連項目