How to convert an existing A4 PDF document to an A3 booklet?

匆匆过客 提交于 2020-01-07 11:19:29

问题


Hi We have a requirement to convert an existing A4 size pdf to A3 Size PDF in java. Since i am new to itext api conversion pdfs, Can anyone guide me how to do in java using itext or any other api to do. If sample reference provided then appreciable.

UPDATe: Output PDF should be in A3 booklet format.


回答1:


Please take a look at the MakeA3Booklet example. In this example, we take an existing PDF document with 299 A4 pages (primes.pdf) and we convert it to a 150-page A3 booklet (a3_booklet.pdf):

public void manipulatePdf(String src, String dest)
    throws IOException, DocumentException {
    // Creating a reader
    PdfReader reader = new PdfReader(src);
    // step 1
    Document document = new Document(PageSize.A3.rotate());
    // step 2
    PdfWriter writer
        = PdfWriter.getInstance(document, new FileOutputStream(dest));
    // step 3
    document.open();
    // step 4
    PdfContentByte canvas = writer.getDirectContent();
    float a4_width = PageSize.A4.getWidth();
    int n = reader.getNumberOfPages();
    int p = 0;
    PdfImportedPage page;
    while (p++ < n) {
        page = writer.getImportedPage(reader, p);
        if (p % 2 == 1) {
            canvas.addTemplate(page, 0, 0);
        }
        else {
            canvas.addTemplate(page, a4_width, 0);
            document.newPage();
        }
    }
    // step 5
    document.close();
    reader.close();
}

We create a Document object with PageSize.A3 as parameter, but as PageSize.A3 is in portrait, we rotate it so that we get the page size in landscape. We need the width of the A4 page (which is half of the width of the A3 page in landscape format) and we loop over all the pages in the existing document.

If we encounter an odd page, we add it at position (x = 0; y = 0). If we encounter an even page, we add it at position (x = a4_width; y = 0) and we create a new page.



来源:https://stackoverflow.com/questions/34019298/how-to-convert-an-existing-a4-pdf-document-to-an-a3-booklet

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!