気ままな開発メモ
日々の開発で気付いた事などを備忘録的に綴ってます。

FlexPrintJobで印刷するときの余白とか

8 月 27th 2009 in Flex

印刷時に余白が欲しい

FlexPrintJobに関して、以前この記事で簡単に触れましたが、クライアントから「余白を設けて、中央に表示したい」と言われ、対応したのでメモ。

FlexPrintJobクラスでは、addObject()メソッドを呼ぶ際の第2引数に、オブジェクトをページに収める方法を指定することができます。

指定するタイプはFlexPrintJobScaleTypeクラスで定義されています。

「FILL_PAGE」は、少なくとも1ページに完全に収まるよう、MATCH_WIDTHかMATCH_HEIGHTのどちらかを自動で選択

「MATCH_HEIGHT」は高さに

「MATCH_WIDTH」は幅に合わせて拡大縮小

「NONE」は、拡大縮小なし

「SHOW_ALL」もFILL_ALLに似ていて、自動で1ページに収まるように拡大縮小してくれます。

でも、ページに余白をつける方法は提供されていません。

Boxのpaddingでいってみる

addObject()メソッドに印刷対象のオブジェクトを渡す直前に余白を調整し、終わったら元に戻すことで調整が可能です。

まず、印刷対象をBox(もしくはBoxを継承したクラス:HBoxやVBoxなど)で、あらかじめ囲んでおきます。
今回はこのコンテナに”printBox”というidをつけました。

もともとパディングは0だったとします。

if( printJob.start() ) {
    // 元の幅を持っておく
    var tmpWidth:Number = printBox.width;

    // 上、左、右の余白を指定
    printBox.setStyle( "paddingTop", paddingTopValue );
    printBox.setStyle( "paddingLeft", paddingLeftValue );
    printBox.setStyle( "paddingRight", paddingRightValue );

    // そのままだとはみ出てしまったので
    // コンテナの幅を余白の分だけ増やす
    printBox.width += paddingLeftValue + paddingRIghtValue;

    // 印刷
    printJob.addObject( printBox );
    printJob.start();

    // 元に戻す
    printBox.width = tmpWidth;
    printBox.setStyle( "paddingTop", 0 );
    printBox.setStyle( "paddingLeft", 0 );
    printBox.setStyle( "paddingRight", 0 );
}

こんな感じで、なんとかうまく余白がつきました。
もっとうまい方法があるのかなぁ。




required



required - won't be displayed


Your Comment:

画面外に出てしまったウィンドウを戻したい

ウィンドウが消えた・・・

Windowsで、何かの拍子にウィンドウが画面外に出てしまうことがあります。

タスクバーやAlt+Tabからフォーカスを当てることはできても、ウィンドウそのものは完全に消えてしまっている…。

そんなときは、そのウィンドウにフォーカスのある状態で、Alt+Spaceで、メニューを開き、Mキーを押すことでウィンドウを移動させることができます。
移動モードに入ってしまえば、あとはマウスでドラッグしたような状態なので、彼方に飛んでしまったウィンドウでも呼び戻すことができます。

Alt+Space使えない場合

今日、会社で作業中、いつも使っているアネモネというランチャが行方不明になりました。
画面の右上にちょこんと置いてあったはずなのに…。

で、やっかいなことにこのアネモネにはAlt+Spaceが効きません(メニューが出ない)

そんなとき、こんなツールを見つけました。

出ておいで

画面の外に出てしまったウィンドウを画面内に戻してくれるツールです。

さっそく使ってみると、あっという間に迷子のアネモネが見つかりましたw

画面外に出てしまったウィンドウを戻したいPrevious Entry

マウスを使わずに・・・

マウスに慣れすぎ?

Windows(または、GUI環境のその他OS)を立ち上げ、マウスに触ることなく一日の仕事をこなせますか?

業務内容にもよりますが、自分はある程度マウスに依存しなくても一通りのことができるような環境を作っています。

確かに、マウスは便利でわかりやすい操作ができますが、より高速に作業をこなしたいと思ったときには煩わしいものです。キーボードから手を離さなければいけませんから。

使いやすいアプリケーションは?

アプリケーション(広い意味ではGUI環境そのもの)を設計するとき、マウスでの操作だけを意識してはいけません。

中には自分のように極力マウスを使いたくない人や、場合によってはマウスの使えない環境もあります。
マウスで操作することを大前提としたため、キーボードでは操作できない、というのは問題です。
多くの優秀なアプリケーションは、適切なショートカットなどが設定され(あるいはユーザがカスタマイズし)、キーボードだけでもたいていのことができてしまうように設計されています。

逆に、マウスでの操作性を極限まで高め、キーボードへの手の移動を極力減らすというのもアリでしょう(マウスゼスチャなど)
その場合でも、キーボードでも操作できるようにしておくのが重要ですが・・・。

マウスでモタモタ・・・

作業の遅い人は、マウスに対する依存度が高いように思います。

ファイルをひとつ開くにも、エクスプローラを立ち上げ、せっせと階層をクリックで辿る・・・。
時と場合によりますが、違った方法もあるはずです。

適切で最適な操作を覚えることは、この業界で働いているなら当然のことではないでしょうか。

マウスの話はそんな中の一例。「使うな」というのではなく、「使わなくてもできる方法もある」、ということです。

マウスを使わずに・・・Next Entry