メニュー最初の一歩基本的な仕組み機能サンプル
プログラム仕様デザイン仕様機能拡張その他関連製品開発・運営会社 |
参考資料:JavaからPDF印刷RapidReportでは、Javaからプリンタへ直接印刷する機能を提供していません。 PDFまたはXLS/XLSXファイルを作成した上で、印刷処理はそれぞれのファイル形式に応じた外部のアプリケーション(Acrobat/Excelなど)にて行うという形になります。 しかし、Apache PDFBoxというライブラリを利用すれば、 Javaプログラム内にてRapidReportで作成したPDFを、そのままプリンタへ印刷することが可能になります。 ここでは参考のため、PDFBoxによるPDFファイルの印刷を行うコード例を紹介します。 ※PDFBoxの使い方や、印刷に関わるシステム設定(CUPSの設定方法など)については、サポートできかねますのでご了承ください。 ※この方法を利用して印刷を行う場合は、必要なフォントをPDFに埋め込んでください。 ※Webアプリケーションにおいて、クライアントに接続されているプリンタへ印刷することはできません。サーバに接続されたプリンタのみ印刷可能です。 依存するソフトウェア
上記リンクから、以下の必要なライブラリをダウンロードし、クラスパスへの配置およびビルドパスの設定を行ってください。
※ 本記事作成時点(2017/11/8)でのバージョンはそれぞれpdfbox-2.0.8、fontbox-2.0.8、commons-logging-1.2でした。 コード例印刷ダイアログを表示せずにPDFを印刷
// Java
FileInputStream fis = new FileInputStream("input.pdf");
PDDocument doc = PDDocument.load(fis);
PrinterJob job = PrinterJob.getPrinterJob();
job.setPageable(new PDFPageable(doc));
job.print();
doc.close();
fis.close();
印刷ダイアログを表示してからPDFを印刷
// Java
FileInputStream fis = new FileInputStream("input.pdf");
PDDocument doc = PDDocument.load(fis);
PrinterJob job = PrinterJob.getPrinterJob();
job.setPageable(new PDFPageable(doc));
if (job.printDialog()) {
job.print();
}
doc.close();
fis.close();
プリンターを指定してPDFを印刷
// Java
AttributeSet attributeset = new HashAttributeSet();
for (PrintService service: PrintServiceLookup.lookupPrintServices(null, attributeset)) {
if (service.getName().equals("printerName")) {
FileInputStream fis = new FileInputStream("input.pdf");
PDDocument doc = PDDocument.load(fis);
PrinterJob job = PrinterJob.getPrinterJob();
job.setPrintService(service);
job.setPageable(new PDFPageable(doc));
job.print();
doc.close();
fis.close();
break;
}
}
|
Copyright (c) 2013, SystemBase Co.,Ltd. All rights reserved. |