- PR -

ファイルの印刷

1
投稿者投稿内容
NEU_E
会議室デビュー日: 2004/09/01
投稿数: 3
投稿日時: 2004-09-01 13:13
はじめまして,NUE_Eといいます。

早速になりますが,Javaでのファイルの印刷についてご教授ください。
具体的には,HTML形式のファイルを印刷したいと思うのですが
WEB上を見回ってみたものの,GIFやPNGの印刷は説明されていたのですが,
同様にHTMLをと試みてもうまくいきませんでした。
HTMLファイルの印刷の方法,あるいはこれについて分かり易いページをご存知でしたら
ご教授ください。

ちなみに,何ゆえこのようなことをしようとしているのかといいますと,
Javaアプリケーションから印刷する際に,HTMLでレイアウトを構成して
これを印刷すれば意図通りのレイアウトで出力できるかな,と考えたためです。
そもそも,アプリケーションからレイアウト付のドキュメントを印刷する場合
もっとうまい方法がありましたら,こちらもご教授いただきたいです。

よろしくお願いします。
aa
ぬし
会議室デビュー日: 2004/01/08
投稿数: 299
投稿日時: 2004-09-01 21:53
一般的によくあるのは、サーバ側でPDFファイルを生成してそれをブラウザに返すというやり方です。
同じ基データ(つまり基データは1つ)からHTML、PDFと両方変換してやるという感じです。
クライアント側では、ブラウザのAcrobatReaderプラグインで表示されますので、そのまま印刷しておくれという感じです。
NEU_E
会議室デビュー日: 2004/09/01
投稿数: 3
投稿日時: 2004-09-01 23:54
説明不足をお詫びします。
aaさんはWEBアプリケーションに関してお答えくださったのだと思いますが
わたしが考えておりますのは,スタンドアロンのアプリケーションのことです。
アプリケーション,特にエディタのようなものには
印刷機能はつきものだと思うのですが,WEB上や書籍等の資料の少なさをみると
Javaアプリケーションで印刷というのはあまりしないものなのでしょうか。

もうしばらく調べてみようと思いますが,aaさんのご助言を参考にしまして,
アプリケーションはHTMLファイルの出力だけして
あとは別途勝手に印刷しておくれ,という手が無難なのかもしれません。
ぬべたそ
ベテラン
会議室デビュー日: 2003/12/18
投稿数: 72
投稿日時: 2004-09-02 09:51
こんにちは。
引用:

NEU_Eさんの書き込み (2004-09-01 23:54) より:
わたしが考えておりますのは,スタンドアロンのアプリケーションのことです。
アプリケーション,特にエディタのようなものには
印刷機能はつきものだと思うのですが,WEB上や書籍等の資料の少なさをみると
Javaアプリケーションで印刷というのはあまりしないものなのでしょうか。


一般的にどの程度行われているかは分かりませんが、以前実装したことがあります。
JavaPress Vol27を参考にしました。

引用:

もうしばらく調べてみようと思いますが,aaさんのご助言を参考にしまして,
アプリケーションはHTMLファイルの出力だけして
あとは別途勝手に印刷しておくれ,という手が無難なのかもしれません。


HTMLの印刷と言われていますが、これはHTMLをブラウザで見たときの表示(HTMLを構文解析してWEBページのように表示したもの)を印刷するということですか?それとも、HTMLの書かれたテキストをそのまま印刷するということですか?それによって、実装が異なる気がしますが。
unibon
ぬし
会議室デビュー日: 2002/08/22
投稿数: 1532
お住まい・勤務地: 美人谷        良回答(20pt)
投稿日時: 2004-09-02 10:38
unibon です。こんにちわ。

引用:

NEU_Eさんの書き込み (2004-09-01 23:54) より:
アプリケーション,特にエディタのようなものには
印刷機能はつきものだと思うのですが,WEB上や書籍等の資料の少なさをみると
Javaアプリケーションで印刷というのはあまりしないものなのでしょうか。


画面表示も印刷も、Graphics に対する描画なので、基本的に違いはないです。印刷にはページ替えが追加されている程度です。ただ、世間一般では、印刷は画面に対するものとは表現方法を変えるのが普通です。ページ替えも面倒です。用紙の大きさも限られていますので、描画領域が広いからと言ってもスクロールバーを付けるなどができず、描画は用紙の大きさを意識する必要があります。ああ、めんどくさい。
なお、javax.swing.JEditorPane には HTML をレンダリングする機能があるので、これを使うと画面でもおそらく印刷でも、HTML を描けるはずです。しかし、HTML を描きたいときって、HTML を描けば良いだけではなく、IE と同じ見栄えになるように描きたい、という要求であることが多いのですが、JEditorPane はそこまで高機能ではないです。
あと、Java はバージョンが 0.1 上がるごとに印刷 API がコロコロ変わるので、付き合い切れないということや、ペーパーレス化のためにあまり印刷の必要性がなくなってきている、ということも多少関係しているのかもしれません。
NEU_E
会議室デビュー日: 2004/09/01
投稿数: 3
投稿日時: 2004-09-02 23:48
ご回答ありがとうございます。

まず,taipingさんお尋ねの件について,HTMLファイルは
ブラウザで見たときの表示の印刷を考えております。

taipingさんのご紹介にあったJavaPress vol.27のサンプルコードが
出版社のページにありましたので,読ませていただいておりますが
Graphicsでオブジェクトを描画する方法のようですね。
わたしはレイアウトのし易さからHTMLに走りましたが,このサンプルのように
Graphicsで描画するのが一般的なのかもしれません。
(そうすれば,HTMLファイルが印刷できなくて困るといったこともありませんし)

今回の件では,やや込み入ったレイアウトを想定しており,かつ,
わたし自身の想像力が乏しいので(Graphicsの描画は,苦しい)
レイアウト作業が簡易で,結果が想像し易い方法をと考えております。
それならばこの方法がいいよ,というものがあればご教授いただきたいと思います。

引用:

unibonさんの書き込み (2004-09-02 10:38) より:
なお、javax.swing.JEditorPane には HTML をレンダリングする機能があるので、これを使うと画面でもおそらく印刷でも、HTML を描けるはずです。


Sun社のPrinting APIのTutorialのページにサンプルとして掲載されている,
印刷機能付の簡易ブラウザがこの方法を使っておりました。
ファイルを相対アドレスで指定できないこと,unibonさんのご指摘にもあるように,
IEと同様の見栄えにはならないこと,などの点がネックになりますが
HTMLファイルの印刷という目的に関しては,これしかないかなと思い始めております。

当初の目論見通りにいくかどうかは分かりませんが,実装の目処は立ちました。
みなさまのご助言に感謝します。
1

スキルアップ/キャリアアップ(JOB@IT)