также. Очень помог бы таким людям, как я. Еще раз спасибо!

тировал несколько вещей с помощью iText7, и у меня есть сценарий, в котором мне нужно поместить абзац DocumentRenderer вверху, а затем запустить ColumnDocumentRender с двумя столбцами прямо под ним на той же странице. Проблема, с которой я сталкиваюсь, заключается в том, что когда я меняю содержимое на той же странице, оно перекрывает содержимое из DocumentRenderer с содержимым из ColumnDocumentRenderer. Я полагаю, что это потому, что один рендер не знает о другом рендере, и его содержимое начинается сверху страницы Я последовал заэтот урок но это только показывает, как добавить контент на следующую страницу. Это говорит

мы должны проинструктировать iText не сбрасывать содержимое в OutputStream

Но может ли кто-нибудь показать мне, как именно мы можем достичь этого?

public void createPdf(String dest) throws IOException {
    PdfDocument pdf = new PdfDocument(new PdfWriter(dest));
    Document document = new Document(pdf);
    Paragraph p = new Paragraph()
        .add("Be prepared to read a story about a London lawyer "
        + "named Gabriel John Utterson who investigates strange "
        + "occurrences between his old friend, Dr. Henry Jekyll, "
        + "and the evil Edward Hyde.");
    document.add(p);
    document.add(new AreaBreak(AreaBreakType.NEXT_PAGE));
    ... // Define column areas
    document.setRenderer(new ColumnDocumentRenderer(document, columns));
    document.add(new AreaBreak(AreaBreakType.LAST_PAGE));   
    ... // Add novel in two columns
    document.add(new AreaBreak(AreaBreakType.NEXT_PAGE));
    document.setRenderer(new DocumentRenderer(document)); 
    document.add(new AreaBreak(AreaBreakType.LAST_PAGE));
    p = new Paragraph()
        .add("This was the story about the London lawyer "
        + "named Gabriel John Utterson who investigates strange "
        + "occurrences between his old friend, Dr. Henry Jekyll, "
        + "and the evil Edward Hyde. THE END!");
    document.add(p);
    document.close();
}

Мне нужно что-то вроде этого:

Колонки iText7

Всякий раз, когда вы создаете новый DocumentRenderer, iText начинает возвращаться к началу документа - это: с первой страницы. Это позволяет использовать разные средства визуализации в одном документе рядом друг с другом на одной странице. Если это необходимо, мы должны проинструктировать iText не сбрасывать содержимое в OutputStream; в противном случае у нас не будет доступа к предыдущим страницам. В этом случае нам не нужно ничего менять на предыдущих страницах. Мы просто хотим переключиться на другого рендера на следующей странице. Введение разрыва страницы, которая идет к последней странице, позволит избежать того, что новый контент заменяет старый контент.

Ответы на вопрос(1)

Ваш ответ на вопрос