简体   繁体   中英

How to change margins throughout the document Itext?

I'm trying to do this:

 PdfDocument pdf = new PdfDocument(new PdfWriter(dest));
Document document = new Document(pdf);
BufferedReader br = new BufferedReader(new FileReader(SRC));
String line;

for(int i = 1; i<5;i++)
{
    if(n%2==0) 
    {
        pdfDoc.addNewPage();
        doc.setLeftMargin(100);
    }
    else if(!(n%2==0)) 
    {
        pdfDoc.addNewPage();
        doc.setLeftMargin(50);
    }
}
while ((line = br.readLine()) != null) {
document.add(new Paragraph(line));
}

document.close();

But it does not work! I need a different page for each margin. At the same time I read a very large text with .txt

Try something like this in itext 7:

PdfWriter writer = new PdfWriter("111");

    PdfDocument pdfDoc = new PdfDocument(writer);
    Document document = new Document(pdfDoc);

    for (int i = 0; i < 10; i++) {

        if (i % 2 == 0) {
            pdfDoc.addNewPage();
            document.setLeftMargin(100);
            document.add(new Paragraph("AAA"));
            document.add(new AreaBreak());

        } else {
            pdfDoc.addNewPage();
            document.setLeftMargin(50);
            document.add(new Paragraph("SSS"));
            document.add(new AreaBreak());
        }


    }
    document.close();

This way the left margin of all even pages (2, 4, 6, etc.) is 100 and the left margin of all uneven pages is 50 (1, 3, 5, etc.).

I did this:

PdfDocument srcDoc = new PdfDocument(new PdfReader(DEST1));
        Rectangle rect = srcDoc.getFirstPage().getPageSize();

        Rectangle pageSize = new Rectangle(rect.getWidth(), rect.getHeight());

        PdfDocument pdfDoc = new PdfDocument(new PdfWriter(dest));
        pdfDoc.setDefaultPageSize(new PageSize(pageSize));

        PdfCanvas content = new PdfCanvas(pdfDoc.addNewPage());


        int n = 0;
        for (int i = 1; i <= srcDoc.getNumberOfPages(); i++) {
            PdfFormXObject page = srcDoc.getPage(i).copyAsFormXObject(pdfDoc);

            content.clip();
            content.newPath();
            x++;
            if(n%2==0)
                content.addXObject(page,0,0);//here margin which is installed in DEST1
                else if(!(n%2==0))
            content.addXObject(page,150,0);
                content = new PdfCanvas(pdfDoc.addNewPage());
                n++;

        }
        srcDoc.close();
        pdfDoc.close();
    }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM