DynamicJasper APIを使用してpdfレポートを作成しています。
要件に従って、1 つのロゴをヘッダーに、もう 1 つのロゴをフッターに表示する必要があります。DynamicReportBuilder.addImageBannerメソッドを使用してヘッダーにロゴを表示できます。しかし、フッターに画像を追加する方法が見つかりませんでした。
この問題に関するいくつかのスレッドを dynamic-jasper フォーラムで見ました。1 つの回避策は、 pageFooterバンドを使用してjrxmlテンプレートを作成することです。
これを試しましたが、うまくいきませんでした。次の例外が発生しました:
org.xml.sax.SAXParseException: The processing instruction target matching "[xX][mM][lL]" is not allowed
以下は、レポートを生成するコードです。
- dynamiceReportオブジェクトの作成
- jasperPrintオブジェクトの作成
- フォーマット タイプに基づいてレポートを作成するメソッドを呼び出します。ここでは、 jrxml表現、ターゲット ファイルの場所、およびレポート形式の種類を持つjasperPrintオブジェクトを渡す必要があります。
// ...
DynamicReport dynamicReport = buildDynamicReport(reportTemplate, grpFields);
// build jrxml <br/>
JasperPrint jasperPrint = buildJRXML(dynamicReport, dataSource, reportFormat);
// export the report into specific target format <br/>
exportReport(jasperPrint, targetReportFile, reportFormat);
// ...
private DynamicReport buildDynamicReport(Template reportTemplate,
Vector<String[]> groupFields) throws ServiceException {
/** code to generate DynamicReport object. */
dynamicReportBuilder.setTemplateFile("jrxml/report-footer.jrxml");
DynamicReport dynamicReport = dynamicReportBuilder.build();
return dynamicReport;
}
どんな助けでも感謝します。