我创建了一个带有表格的 PDF。我设法通过收听 PdfPCellEvent 在选定的单元格中创建字段:
cell.setCellEvent( new PdfPCellEvent() {
@Override
public void cellLayout( PdfPCell pdfPCell,
Rectangle rectangle,
PdfContentByte[] canvas ) {
PdfContentByte pcb = canvas[canvas.length - 1];
PdfWriter writer = pcb.getPdfWriter();
PdfFormField field = PdfFormField.createTextField( writer, false, false, 3 );
field.setName( "quantity " + hashCode() );
field.setFieldFlags( PdfFormField.FF_EDIT );
Rectangle rect = new Rectangle( rectangle.getLeft() + 5, rectangle.getTop() - 5,
rectangle.getLeft() + rectangle.getWidth() - 5,
rectangle.getTop() - rectangle.getHeight() + 5);
field.setWidget( rect, PdfAnnotation.HIGHLIGHT_OUTLINE );
field.setFieldFlags( PdfAnnotation.FLAGS_PRINT );
writer.addAnnotation( field );
writer.flush();
}
} );
就在字段中输入文本而言,它工作正常。但是一旦领域失去焦点,内容就会消失。如果我再次将焦点设置到该字段,则数据会重新出现。
我的问题是:我需要做什么才能使 PdfFormField 中的文本保持打印状态?
这里有一个示例 PDF:http: //qr.sertal.ch/output.pdf
感谢您的帮助。