如何使用Jasper在PDF文档中合并横向文档并调整其大小并在边框内进行拟合

时间:2019-07-17 04:41:23

标签: java pdf itext jasper-reports landscape-portrait

我有一个使用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报告生成的新手。

0 个答案:

没有答案