- 2006-01-18 (水)
- ActionScript
Webがこれほど普及して、さらなる技術進歩に挑戦している時代においても、業務システムとなるとまだまだ過去の機器や技術 (THE legacies) を必要とするケースが多く残っています。紙印刷だとか原稿のFAX送信だとか。開発側としてはブラウザ完結の flaw-less なシステムを夢見るのですが、大抵こういったレガシー環境利用の必要性を前に、夢は夢のままで終わってしまいます。
で、今回僕が携わった、
FLASHで原稿の確認帳票を作成 → プリンタ出力 → FAXでクライアントに送信する
てな感じのアプリの開発においてブチ当たった問題についての解決方法を記しておきます。
※現象を確認できた Flash のバージョン: Flash MX 2004 , Flash 8
チェックボックスやラジオボタンの背景が黒く塗りつぶされてしまう
Flash Player 上では何の問題も無く表示されている、チェックボックスやラジオボタン等のコンポーネントが、プリンタ印刷された紙上では背景色が黒?灰色のグラデーションで塗りつぶされてしまいます:
※「印刷紙面上の表示」イメージは Microsoft Office に付属する Document Image Writer を使って作成
原因はグラデーション
一見、黒ベタに塗りつぶされているように見えますが、Flash Player の画面を拡大してよーく観察してみると、これら塗りつぶされている部分は共通してグラデーションが背景色として使用されている事が判ります。てか僕はわからなかったんだけど... (thanx jimbo氏♪)。
詳しくは判らないけど、Flash Player → OSのプリンタドライバ → プリンタ の経路中のどこかで、グラデーションをうまく表現できずに、こうした黒ベタ塗りつぶしになってしまっているのが原因っぽいです。
解決方法 - コンポーネントのテーマ設定をカスタマイズする
Halo や Simple 等のテーマごとに、これらコンポーネントの外観を定義している .fla ファイルが存在しています。その .fla ファイルを開いて、ラジオボタン等のシンボルに直接編集を加えた上で、そのシンボルを含む Assets フォルダを適応先のライブラリにコピーする事で、問題を修正できます。
コンポーネントテーマのカスタマイズ方法の詳細はFlashヘルプ:
- Flashコンポーネントガイド > コンポーネントのカスタマイズ > コンポーネントへのスキンの適用について > ドキュメントのコンポーネントスキンの編集 (MX 2004の場合)
を参照してください。ここでは簡略的に画像で修正すべき箇所を示しておきます。
編集対象のテーマ設定ファイルは下記の場所にあります (windowsの場合) :
C:\Program Files\Macromedia\Flash MX 2004\ja\Configuration\ComponentFLA\HaloTheme.fla (または SimpleTheme.fla)
このファイルをFlashで開いて、ライブラリにある各種コンポーネントごとのシンボルを直接編集します :
修正後イメージ
HaloTheme.fla に修正を加えたのちに、該当コンポーネントの Assets フォルダを自分のライブラリにコピーする事で、テーマ設定を上書きする事ができます。
修正後のサンプル .fla ファイルもここに置いておきます。
なお、今回印刷に使った(問題が出た)プリンターは Fuji Xerox 社の Docu Color 1256 GA と DocuPrint 250 でした。これらレーザープリンターでは無く、インクジェットプリンターの場合だとどうなるかは試してません(し、どうなるか気になる...)。
- Newer: PrintJobクラスを使う際の注意点
- Older: 編集画面にてエントリ一覧のタイトル表示文字数を変更する方法