我有一个使用Jasper生成报告的Java程序。它将票据收据合并到主报告中。收据可以是横向或纵向形式。下面是要合并的代码。 如果是纵向收据,则可以合并。但是对于风景收据,边界超过A4尺寸,导致双方收据丢失。因此,我想在合并时将收据的尺寸调整为横向格式并使其适合PDF文档的边界。还在边框处留一些空格。
public void mergeCtcDocument(List<InputStream> list, OutputStream outputStream) throws DocumentException, IOException {
Document document = new Document();
PdfWriter writer = PdfWriter.getInstance(document, outputStream);
document.open();
PdfContentByte cb = writer.getDirectContent();
for (InputStream in : list) {
PdfReader reader = new PdfReader(in);
for (int i = 1; i <= reader.getNumberOfPages(); i++) {
document.newPage();
//import the page from source pdf
PdfImportedPage page = writer.getImportedPage(reader, i);
//Set content to the center
float x = (document.getPageSize().getWidth() - page.getWidth())/2;
float y = (document.getPageSize().getHeight() - page.getHeight())/2;
//add the page to the destination pdf
cb.addTemplate(page, x, y);
}
}
outputStream.flush();
document.close();
outputStream.close();
for(InputStream in : list) {
in.close();
}
}
请提出建议,因为我是Jasper报告生成的新手。