仕事で扱っているWebページを印刷するときに問題が発生した。
問題のページは表が複数あって、そのうちの一列は各セルにtextarea要素がある。そして、そのページを印刷して作業中のメモとして使う。
今まではそのページを全部印刷していたので問題にならなかったのだが、最近の仕様変更でページ指定で印刷するようになったら問題になった。
先頭ページにしかtextareaの内容が出力されないのだ。2ページ目以降は枠だけが印刷されてテキストが出ない。ちょうど作業中のものが落ち着いたので調査を手伝った。
いろいろと試した結果、IE7だけ印刷された。Firefox3とIE6は駄目。印刷プレビューでは表示されてしまうので、実際にページ指定で印刷しなければわからない。そのため、省資源?のためPDF出力するプリンタドライバを使用して紙の代わりにPDFに出力して確認した。
ちなみに、table要素の各行にtextareaだけのセルを持つ長い表を素のHTMLファイルを作成して印刷とやっても同じ現象が発生したのでブラウザの問題だと思うのだが、グーグル先生にたずねてもいい答えは得られなかった。編集することもあるからtextareaは外せないのだと思う。そういう仕様なのだろう。見るだけならtextareaにしないで単にセルへのテキスト表示でいいはずなのだから。そうすれば印刷できる。
印刷用CSSで逃げる手もあるのだが、方法がわからない、と今思いついた。textareaにしている内容と同じ文字列を次の列に出力しておいて、表示のときはtextareaの列を表示し、印刷のときはtextareaの列を非表示にして素の列?を出力するというのはどうだ?いい感じだが、修正した内容は印字されないな。ボツだ。
とりあえず、業務の仕様を確認してみるしかないな。
コメント