Написание нескольких строк и страниц в PDFBox - получите PDPageContentStream Y-Axis - PullRequest
1 голос
/ 27 апреля 2020

Я тестирую PDFBox и сомневаюсь, что пишу новый документ ..

Следующий код записывает 75 строк в PDF-файл. Высота файла не достаточно. Поэтому мне нужно знать, когда contentStream достигнет конца страницы, чтобы создать новую и продолжить писать строки.

Есть ли способ решить мой вопрос?

Большое спасибо !

    File pdfFile = new File("hello.pdf");
    PDDocument doc = new PDDocument();
    PDPage page = new PDPage();
    PDPageContentStream contentStream = new PDPageContentStream(doc, page);
    contentStream.setFont( PDType1Font.TIMES_ROMAN, 12);
    float initPosY = page.getMediaBox().getHeight()-50;
    contentStream.beginText();
    contentStream.newLineAtOffset(25, initPosY);
    contentStream.setLeading(30.5f);
    for(int i=1; i<75;i++){
        contentStream.showText("Line: "+i);
        contentStream.newLine();
   }
    contentStream.endText();
    contentStream.close();
    doc.addPage(page);
    doc.save(pdfFile);
    doc.close();

1 Ответ

1 голос
/ 27 апреля 2020

Вычтите начальное значение (30,5f) из initPosY в вашем l oop после вызова newLine (). Когда оно <0 или ниже полезного значения (например, 50, которое является вашим верхним полем), тогда вы должны начать новую страницу. </p>

...