Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

excelファイルの印刷 2

不良社員さんから教えていただいた、javax.print.*を使ってexcelファイルを印刷しようとしています。

pngファイルなどの画像ファイルは印刷に成功したのですが、excelファイルがどうしても印刷できません。

以下はソースです。

PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();

DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;

PrintService printService[] = PrintServiceLookup.lookupPrintServices(flavor, pras);

PrintService defaultService = PrintServiceLookup.lookupDefaultPrintService();

PrintService service = ServiceUI.printDialog(null, 200, 200, printService, defaultService,
        flavor, pras);

if (service != null) {
    DocPrintJob job = service.createPrintJob();

    FileOutputStream fis = new FileOutputStream("ファイル名");

    DocAttributeSet das = new HashDocAttributeSet();
    
    Doc doc = new SimpleDoc(fis, flavor, das);

    job.print(doc, pras);

}

今はDocFlavor.INPUT_STREAM.AUTOSENSEと設定していますが、印刷したいファイルごとに設定を変えています。

自分としてはDocFlavorの設定がexcelファイルを印刷するものに合っていないのではないかと睨んでいるのですが、さっぱり分かりません。

もしよろしければご教授ください。

5

回答

7962

閲覧

5件の回答

評価

0

すいません、ソースの中の

FileOutputStreamの部分はFileInputStreamに変えて、ソースを読んでください。

評価

0

Flavorはプリンタの実装に依存します。:-D
どこかで、データから描画イメージを構築する必要があるわけで。

さっきのスレでは、印刷はOSの役割だってことが言いたかったんだが。

似たようなことをやってる人は何人もいて、
その場合は、JooConverteなんてものがあって、
OOoのAPIを利用して、
ExcelのファイルをPDFに変換しているらしい。
代わりになるかどうかはわからないけど。

評価

0

>>不良社員さん
回答の意図が読み取れず、申し訳ないです。

教えていただいたキーワードを元に勉強してみます。

後、POIを使って作ったexcelのデータをどこかに保存せずにそのまま印刷したいってのが一番の理想なんですけど、そいつは流石に無理ですかね?

重ね重ね質問ばかりですみません。

評価

0

Runtime.getRuntime().exec("excel /p " + fileName);

評価

0

Excelのデータから、イメージを生成する描画エンジンがどうしても必要。
Javaには用意されてないみたいだし。
俺としては、これ以上のものは出せそうにないです。

POIから、PDFファイルは吐き出せないのかな。

ついでだけど、Javaのパッケージを使いこなせれば、
ダイアログの表示なしに直接プリンタに
データを送ることも可能だ。
代わりに、全部自分でやらないといけないけど。:-p
がんばってください。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。