Как изменить поля по всему документу Itext? - PullRequest
0 голосов
/ 13 октября 2018

Я пытаюсь сделать это:

 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();

Но это не работает!Мне нужна отдельная страница для каждого поля.В то же время я читаю очень большой текст с .txt

Ответы [ 2 ]

0 голосов
/ 13 октября 2018

Я сделал это:

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();
    }
0 голосов
/ 13 октября 2018

Попробуйте что-то вроде этого в 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();

Таким образом, левое поле всех четных страниц (2, 4, 6 и т. Д.) Равно 100, а левое поле всех неровных страниц -50 (1, 3, 5 и т. Д.).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...