Я разрабатываю отчет pdf с помощью DynamicJasper API.
В соответствии с требованием я должен отображать один логотип в заголовке, а другой в нижнем колонтитуле. Я могу отобразить логотип в заголовке с помощью метода DynamicReportBuilder.addImageBanner. Но я не нашел способ добавить изображение в нижний колонтитул.
Я видел несколько тем по этой проблеме на форуме dynamic-jasper, один из способов обхода, о котором упоминалось, заключается в создании шаблона jrxml с полосой pageFooter.
Я пробовал это, но не получилось. Я получил следующее исключение:
org.xml.sax.SAXParseException: The processing instruction target matching "[xX][mM][lL]" is not allowed
Ниже приведен код, который генерирует отчет.
- Создание объекта dynamiceReport
- Создание объекта jasperPrint
- Вызов метода, создающего отчет на основе типа формата. Здесь я должен передать объект jasperPrint, который имеет представление jrxml, расположение целевого файла и тип формата отчета.
// ...
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;
}
Любая помощь будет оценена.