When I had to add any pages in reports or even put together several reports, the way was to join the documents with iText.
This is not POG! POG is to use a tool for a purpose other than the one it was designed for.
JasperReports (iReport is just the editor) was a project to generate reports from data sources and not documents containing text. IText is designed to create and manipulate PDF files. Therefore, nothing is fairer than to leave each tool with its function.
On the other hand, I did a brief survey to find out if the JasperReports staff could have implemented something specific about this and I came to a blog that shows a snippet of code that allows you to merge two reports together. I did not test the solution, but if it works you can create another report that is just the cover and merge with the report that contains the data.
See the code snippet:
JasperPrint jp1 = JasperFillManager.fillReport(url.openStream(), parameters,
new JRBeanCollectionDataSource(inspBean));
JasperPrint jp2 = JasperFillManager.fillReport(url.openStream(), parameters,
new JRBeanCollectionDataSource(inspBean));
List pages = jp2 .getPages();
for (int j = 0; j < pages.size(); j++) {
JRPrintPage object = (JRPrintPage)pages.get(j);
jp1.addPage(object);
}
JasperViewer.viewReport(jp1, false);
Obviously it would be necessary to adapt the example and verify that its API version is compatible with this method.