¿Cambiar entre ColumnDocumentRenderer y DocumentRenderer en la misma página?

Estaba probando algunas cosas con iText7 y tengo un escenario en el que necesito tener el párrafo DocumentRenderer en la parte superior y luego iniciar ColumnDocumentRender con 2 columnas justo debajo de él en la misma página. El problema que tengo es que cuando cambio el contenido en la misma página, se superpone el contenido de DocumentRenderer con el contenido de ColumnDocumentRenderer. Creo que es porque un render no sabe sobre el otro render y el contenido comienza desde la parte superior de la página. Seguíeste tutorial pero solo muestra cómo agregar contenido a la página siguiente. Sí dice

tendremos que indicarle a iText que no vacíe el contenido a OutputStream

¿Pero alguien puede mostrarme exactamente cómo podemos lograr esto?

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

Necesito algo como esto

iText7 Columnas

Cuando crea un nuevo DocumentRenderer, iText comienza regresa a la parte superior del documento, es decir, desde la primera página. Esto le permite usar diferentes renderizadores en el mismo documento uno al lado del otro en la misma página. Si es necesario, tendremos que indicar a iText que no vacíe el contenido en OutputStream; de lo contrario no tendremos acceso a páginas anteriores. En este caso, no necesitamos cambiar nada en las páginas anteriores. Solo queremos cambiar a otro renderizador en la página siguiente. Introducir un salto de página que vaya a la última página evitará que el contenido nuevo sobrescriba el contenido anterior.

Respuestas a la pregunta(1)

Su respuesta a la pregunta