- - PR -
ファイルの印刷
1
| 投稿者 | 投稿内容 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-09-01 13:13
はじめまして,NUE_Eといいます。
早速になりますが,Javaでのファイルの印刷についてご教授ください。 具体的には,HTML形式のファイルを印刷したいと思うのですが WEB上を見回ってみたものの,GIFやPNGの印刷は説明されていたのですが, 同様にHTMLをと試みてもうまくいきませんでした。 HTMLファイルの印刷の方法,あるいはこれについて分かり易いページをご存知でしたら ご教授ください。 ちなみに,何ゆえこのようなことをしようとしているのかといいますと, Javaアプリケーションから印刷する際に,HTMLでレイアウトを構成して これを印刷すれば意図通りのレイアウトで出力できるかな,と考えたためです。 そもそも,アプリケーションからレイアウト付のドキュメントを印刷する場合 もっとうまい方法がありましたら,こちらもご教授いただきたいです。 よろしくお願いします。 | ||||||||
|
投稿日時: 2004-09-01 21:53
一般的によくあるのは、サーバ側でPDFファイルを生成してそれをブラウザに返すというやり方です。
同じ基データ(つまり基データは1つ)からHTML、PDFと両方変換してやるという感じです。 クライアント側では、ブラウザのAcrobatReaderプラグインで表示されますので、そのまま印刷しておくれという感じです。 | ||||||||
|
投稿日時: 2004-09-01 23:54
説明不足をお詫びします。
aaさんはWEBアプリケーションに関してお答えくださったのだと思いますが わたしが考えておりますのは,スタンドアロンのアプリケーションのことです。 アプリケーション,特にエディタのようなものには 印刷機能はつきものだと思うのですが,WEB上や書籍等の資料の少なさをみると Javaアプリケーションで印刷というのはあまりしないものなのでしょうか。 もうしばらく調べてみようと思いますが,aaさんのご助言を参考にしまして, アプリケーションはHTMLファイルの出力だけして あとは別途勝手に印刷しておくれ,という手が無難なのかもしれません。 | ||||||||
|
投稿日時: 2004-09-02 09:51
こんにちは。
一般的にどの程度行われているかは分かりませんが、以前実装したことがあります。 JavaPress Vol27を参考にしました。
HTMLの印刷と言われていますが、これはHTMLをブラウザで見たときの表示(HTMLを構文解析してWEBページのように表示したもの)を印刷するということですか?それとも、HTMLの書かれたテキストをそのまま印刷するということですか?それによって、実装が異なる気がしますが。 | ||||||||
|
投稿日時: 2004-09-02 10:38
unibon です。こんにちわ。
画面表示も印刷も、Graphics に対する描画なので、基本的に違いはないです。印刷にはページ替えが追加されている程度です。ただ、世間一般では、印刷は画面に対するものとは表現方法を変えるのが普通です。ページ替えも面倒です。用紙の大きさも限られていますので、描画領域が広いからと言ってもスクロールバーを付けるなどができず、描画は用紙の大きさを意識する必要があります。ああ、めんどくさい。 なお、javax.swing.JEditorPane には HTML をレンダリングする機能があるので、これを使うと画面でもおそらく印刷でも、HTML を描けるはずです。しかし、HTML を描きたいときって、HTML を描けば良いだけではなく、IE と同じ見栄えになるように描きたい、という要求であることが多いのですが、JEditorPane はそこまで高機能ではないです。 あと、Java はバージョンが 0.1 上がるごとに印刷 API がコロコロ変わるので、付き合い切れないということや、ペーパーレス化のためにあまり印刷の必要性がなくなってきている、ということも多少関係しているのかもしれません。 | ||||||||
|
投稿日時: 2004-09-02 23:48
ご回答ありがとうございます。
まず,taipingさんお尋ねの件について,HTMLファイルは ブラウザで見たときの表示の印刷を考えております。 taipingさんのご紹介にあったJavaPress vol.27のサンプルコードが 出版社のページにありましたので,読ませていただいておりますが Graphicsでオブジェクトを描画する方法のようですね。 わたしはレイアウトのし易さからHTMLに走りましたが,このサンプルのように Graphicsで描画するのが一般的なのかもしれません。 (そうすれば,HTMLファイルが印刷できなくて困るといったこともありませんし) 今回の件では,やや込み入ったレイアウトを想定しており,かつ, わたし自身の想像力が乏しいので(Graphicsの描画は,苦しい) レイアウト作業が簡易で,結果が想像し易い方法をと考えております。 それならばこの方法がいいよ,というものがあればご教授いただきたいと思います。
Sun社のPrinting APIのTutorialのページにサンプルとして掲載されている, 印刷機能付の簡易ブラウザがこの方法を使っておりました。 ファイルを相対アドレスで指定できないこと,unibonさんのご指摘にもあるように, IEと同様の見栄えにはならないこと,などの点がネックになりますが HTMLファイルの印刷という目的に関しては,これしかないかなと思い始めております。 当初の目論見通りにいくかどうかは分かりませんが,実装の目処は立ちました。 みなさまのご助言に感謝します。 | ||||||||
1
