ExCella Reports1.4のライブラリを使用し帳票・ExcelをOpenOffice3経由でPDFで出力します(失敗しました)。
【準備】
1.「OpenOffice3.4.1のインストール方法」の手順で、OpenOffice3をインストールしておきます。
【手順】
1.「Javaプロジェクトの作成方法」の手順で、「ExCellaSample038-PdfOpenOffice3NG」といプロジェクトを作成。
2.「excella-reports-1.4.jarとそれに依存ライブラリを設定する方法」の手順で、プロジェクトにExCella Reports1.4とそれに依存するライブラリを追加。
3.「PdfOpenOffice3NGTemplate.xls」という名前の、以下の様なテンプレートファイルを作成し、「ExCellaSample038-PdfOpenOffice3NG」直下に配置。
4.「Javaクラスファイルの作成方法」の手順で、「Main」というクラスを作成。
5.「Main.java」を以下の様に入力。
import org.bbreak.excella.reports.exporter.OoPdfExporter;
import org.bbreak.excella.reports.model.ReportBook;
import org.bbreak.excella.reports.model.ReportSheet;
import org.bbreak.excella.reports.processor.ReportProcessor;
import org.bbreak.excella.reports.tag.SingleParamParser;
public class Main {
public static void main(String[] args) throws Exception {
String templateFilePath = "PdfOpenOffice3NGTemplate.xls";
String outputFileName = "PdfOpenOffice3NG";
String outputFileDir = "";
String outputFilePath = outputFileDir.concat(outputFileName);
ReportBook outputBook = new ReportBook(templateFilePath, outputFilePath, OoPdfExporter.FORMAT_TYPE);
ReportSheet outputSheet = new ReportSheet("請求書");
outputBook.addReportSheet(outputSheet);
outputSheet.addParam(SingleParamParser.DEFAULT_TAG, "値1", "値1に入るHello, World");
outputSheet.addParam(SingleParamParser.DEFAULT_TAG, "値2", "値2に入るHello, World");
outputSheet.addParam(SingleParamParser.DEFAULT_TAG, "値3", "値3に入るHello, World");
ReportProcessor reportProcessor = new ReportProcessor();
reportProcessor.process(outputBook);
}
}
6.「Ctrl+Shift+O」を押し、パッケージのインポート文を補完。7.「Ctrl+Shift+F」を押し、ソースコードをフォーマッティング。
8.「Javaプロジェクトの実行方法」の手順で、「Main.java」を実行。
9.コンソールに以下の様なエラーが出力されます。(Windows7の64bit版の場合)
log4j:WARN No appenders could be found for logger (org.bbreak.excella.core.BookController).
log4j:WARN Please initialize the log4j system properly.
Exception in thread "main" java.lang.IllegalStateException: officeHome doesn't exist or is not a directory: C:\Program Files\OpenOffice.org 3
at org.artofsolving.jodconverter.office.DefaultOfficeManagerConfiguration.buildOfficeManager(DefaultOfficeManagerConfiguration.java:117)
at org.bbreak.excella.reports.exporter.OoPdfExporter.output(OoPdfExporter.java:137)
at org.bbreak.excella.reports.exporter.ReportBookExporter.export(ReportBookExporter.java:96)
at org.bbreak.excella.reports.processor.ReportProcessor.processBook(ReportProcessor.java:207)
at org.bbreak.excella.reports.processor.ReportProcessor.process(ReportProcessor.java:110)
at Main.main(Main.java:26)
【結論】
JODConverterのバージョンがbeta3の場合、Windowsが64bitの場合のパスを上手く判断できないようです。
以上です。


0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。