Java 如何使用itext5在A4纸张上添加两张a5纸张

Java 如何使用itext5在A4纸张上添加两张a5纸张,java,printing,itext,Java,Printing,Itext,我需要一个pdf文件,其中有一个A4两个A5 像这样,我把这张A4打印出来之后,怎么做呢 您是否从头开始创建PDF。或者你已经有了A5 PDF,你想把它放在A4纸上两次吗?你试过什么?您是否阅读了教程,在那里您可以找到几乎完全符合您要求的示例?如果你对这个问题投了反对票,原因可能是:@BrunoLowagie我创建了一个类似于模板的pdf(itext5)文件,在我必须在这两个pdf a5中输入数据之后,我将在一个a4(1)上打印两个a5。iText 5不再受支持。如果需要我的帮助,请升级到iT

我需要一个pdf文件,其中有一个A4两个A5

像这样,我把这张A4打印出来之后,怎么做呢


您是否从头开始创建PDF。或者你已经有了A5 PDF,你想把它放在A4纸上两次吗?你试过什么?您是否阅读了教程,在那里您可以找到几乎完全符合您要求的示例?如果你对这个问题投了反对票,原因可能是:@BrunoLowagie我创建了一个类似于模板的pdf(itext5)文件,在我必须在这两个pdf a5中输入数据之后,我将在一个a4(1)上打印两个a5。iText 5不再受支持。如果需要我的帮助,请升级到iText 7。(2.)如果你想从仍然回答以下5个问题的人那里得到帮助,你需要发布一些代码。没有代码,没有人能告诉你你做错了什么。(例如:您忘记旋转A5页,并且使用了错误的缩放。简而言之:您的问题是一个数学问题,而不是一个iText问题。)@BrunoLowagie我添加了一些代码,请帮助我如果您将
orig.getHeight()
更改为
0
,在您执行
canvas.addXObject()
的行中会发生什么?
PdfDocument pdf = new PdfDocument(new com.itextpdf.kernel.pdf.PdfWriter(dest));
    PdfDocument sourcePdf = new PdfDocument(new PdfReader(SRC1));
    //Original page
    PdfPage origPage = sourcePdf.getPage(1);
    com.itextpdf.kernel.geom.Rectangle orig = origPage.getPageSize();
    PdfFormXObject pageCopy = origPage.copyAsFormXObject(pdf);
    //N-up page
    PageSize nUpPageSize = PageSize.A4.rotate();
    PdfPage page = pdf.addNewPage(nUpPageSize);
    PdfCanvas canvas = new PdfCanvas(page);
    AffineTransform transformationMatrix = AffineTransform.getScaleInstance(
            nUpPageSize.getWidth() / orig.getWidth() / 2f,
            nUpPageSize.getHeight() / orig.getHeight() / 2f);
    canvas.concatMatrix(transformationMatrix);
    //Add pages to N-up page
    canvas.addXObject(pageCopy, 0, orig.getHeight());
    canvas.addXObject(pageCopy, orig.getWidth(), orig.getHeight());
    // close the documents
    pdf.close();
    sourcePdf.close();