Win/MacのFirefox(手元のバージョンは2.0)にて、HTMLページを印刷する際、コンテンツにFlash(SWF)が含まれていると、その部分がぽっかり空白になって印刷されてしまう。
FirefoxでHTMLと一緒にFlashコンテンツを印刷したいのだが……どうしたらよいものか。
いろいろ調べた結果、
:
:
:
ずばり、対処法はありません。
SafariやIEだと問題ない。
どうもFirefoxの仕様のようです。(バグ?)
Firefox 3はどうなんでしょうか。まだ使ってません。
HTMLはそもそも印刷に向いてない!というのは、制作側の言い分で、ほとんどのオーナーさんは、かなりの確立でHTMLページを印刷してチラシ代わりに使ったり、資料として使ったりする。
CSSのmediaでprintを指定しておけば、印刷時にFlashの代替えを表示することは可能だが、Safari/IEではFlashコンテンツを印刷できるのに、静止画に差し替えるのはもったいない。
Flash(SWF)を印刷できないFirefoxの時のみ、静止画に差し替えたいのだ。
そこで、
・Safari/IEは、通常時(screen)、印刷時(print)ともに、Flashコンテンツをそのまま使用
・Firefoxは、通常時は、Flashコンテンツを使用、印刷時は、代替えのイメージや文字を表示
する方法を考えた。
つまり、ブラウザ毎にCSSを切り替えかつ、mediaもチェックするということ。
ブラウザ毎のCSSの切り替えには
Simple CSS Hack - CSS Browser Selector - SCREAMO
CSS Browser Selector
を使った。これはコードも短いし、便利だね。
で、実際に作成したコードはこんな感じ。
HTMLコード
CSSのコード
-
/* flash部分の指定 */
-
div#flashcontent{
-
}
-
/* 基本、非表示 */
-
div#flashcontent_fw_print{
-
display:none;
-
}
-
/* 印刷時 Gecko(Firefox)のみ、swfを非表示、印刷用を表示*/
-
@media print {
-
.gecko div#flashcontent{
-
display:none;
-
}
-
.gecko div#flashcontent_fw_print{
-
display:block;
-
}
-
}
これで、Firefoxのみ、印刷時に代替えブロック(div id="flashcontent_fw_print">が表示され、Safari/IEでは、そのまま印刷されます。
FirefoxがFlashコンテンツの印刷にちゃんと対応してくれれば、こんな小手先の対応しなくてもいいんだけどね~
理想的なのは、Flashが、ブラウザからの印刷リクエストをちゃんと理解して、そのときに表示するステージを指定できたら一番いいんだけどねー。たとえば、IEからFlashが含まれるページを印刷しようとすると、その時点で表示されているFlashが印刷されてしまう。
そうじゃなくて、Flash側でブラウザの印刷リクエストを処理できれば、印刷向けに用意したムービークリップなりを表示して、印刷しても情報の不備が無いようにできたらいいんだけどね~
adobeは印刷のソリューションもやってるんだから、そのあたりもちゃんとやってくれてもいいのにネー。
…もっといい方法があったらコメントorトラバお願いします。
Popularity: 59% [?]




