¿Cómo continuar la salida de campo en una segunda página?

He generado un PDF a partir de una plantilla. El PDF tiene un campo en el medio que es de longitud variable. Estoy intentando trabajar de modo que si el contenido del campo se desborda, el progtwig usará una segunda plantilla de instancia como segunda página y continuará en el mismo campo allí. es posible?

Esto solo funcionará si aplana el formulario. He escrito una prueba de concepto donde tengo un formulario PDF src que tiene un campo llamado "body" :

 public void manipulatePdf(String src, String dest) throws DocumentException, IOException { PdfReader reader = new PdfReader(src); Rectangle pagesize = reader.getPageSize(1); PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest)); Paragraph p = new Paragraph(); p.add(new Chunk("Hello ")); p.add(new Chunk("World", new Font(FontFamily.HELVETICA, 12, Font.BOLD))); AcroFields form = stamper.getAcroFields(); Rectangle rect = form.getFieldPositions("body").get(0).position; int status; PdfImportedPage newPage = null; ColumnText column = new ColumnText(stamper.getOverContent(1)); column.setSimpleColumn(rect); int pagecount = 1; for (int i = 0; i < 100; ) { i++; column.addElement(new Paragraph("Hello " + i)); column.addElement(p); status = column.go(); if (ColumnText.hasMoreText(status)) { newPage = loadPage(newPage, reader, stamper); triggerNewPage(stamper, pagesize, newPage, column, rect, ++pagecount); } } stamper.setFormFlattening(true); stamper.close(); reader.close(); } public PdfImportedPage loadPage(PdfImportedPage page, PdfReader reader, PdfStamper stamper) { if (page == null) { return stamper.getImportedPage(reader, 1); } return page; } public void triggerNewPage(PdfStamper stamper, Rectangle pagesize, PdfImportedPage page, ColumnText column, Rectangle rect, int pagecount) throws DocumentException { stamper.insertPage(pagecount, pagesize); PdfContentByte canvas = stamper.getOverContent(pagecount); canvas.addTemplate(page, 0, 0); column.setCanvas(canvas); column.setSimpleColumn(rect); column.go(); } 

Como puede ver, creamos una instancia de PdfImportedPage e insertamos una nueva página con esta página como fondo. ColumnText el contenido en la posición definida por el campo usando ColumnText .