日々学んだことを残しておこう。きっと未来の自分が探しにくる。 (ただ忘れっぽいだけです…)

Flex 印刷機能 FlexPrintJob 


Flexで作成しているWebアプリケーションの画面の一部を印刷したいという要望が。

プリントスクリーンでいーんじゃないかと思ったが、どうしても印刷機能が必要とのこと。

早速探してみると、FlexPrintJobクラスを使えば結構簡単にできそうだ。

こちらに詳しい説明があったのでお勉強。
[Flex2][AS3]Flex2で帳票作成

例えば、あるパネル(idがpanel_xxx)出力した場合、これだけでOK。
import mx.printing.FlexPrintJob;

var printJob:FlexPrintJob = new FlexPrintJob();
printJob.start();
printJob.addObject(panel_xxx);
printJob.send();


(参考サイト)
FlexPrintJob クラスの使用

レイアウトとかこったりすると大変かもだけど、細かい微調整なしに印刷するレベルなら簡単にできるんですね。



20130124追記↓---------
と、問題なく印刷できていたのですが、印刷ウィザードで[キャンセル]すると、panelが消えてしまう現象が。。。

ヘルプを良く見る。

--ヘルプ抜粋---
印刷ダイアログボックスでユーザーがプリントを開始するオプションを選択すると、 start() メソッドは true の値を返します。ユーザーがプリントジョブをキャンセルすると、戻り値は false になります。ユーザーがオペレーティングシステムの印刷ダイアログボックスを閉じると、start() メソッドはプリンタ情報を使用して FlexPrintJob オブジェクトの pageHeight および pageWidth プロパティの値を設定します。これらのプロパティは、プリントするページ領域のサイズを表します。
--------------

とのこと。
キャンセルの場合、printJob.startにfalseが帰ってくるので、if文で分岐。
そしたら大丈夫でした。

import mx.printing.FlexPrintJob;

var printJob:FlexPrintJob = new FlexPrintJob();
if (printJob.start()) {
printJob.addObject(panel_xxx, FlexPrintJobScaleType.MATCH_WIDTH);
printJob.send();
}
関連記事

2012-11-29 : Flex : コメント : 0 : トラックバック : 0
Pagetop
コメントの投稿
非公開コメント

Pagetop
« next  ホーム  prev »

広告

読みたいと思っている書籍

Amazon Web Services クラウドネイティブ・アプリケーション開発技法 一番大切な知識と技術が身につく Amazon Web Services 定番業務システム12パターン 設計ガイド イラストで学ぶ 機械学習 最小二乗法による識別モデル学習を中心に (KS情報科学専門書) イラストで学ぶ ディープラーニング (KS情報科学専門書)

カウンタ

メールフォーム

名前:
メール:
件名:
本文:

GoogleTranslate

管理人のつぶやき

人気記事ランキング

カテゴリ

openclose

ブログ内検索

全記事表示リンク

全ての記事を表示する

ブログパーツ