Мне очень сложно найти информацию об акрополях в iText (до iText7). У меня уже есть некоторые поля Acrofields в таблице, но мне нужно сделать некоторые из них выпадающими.
В настоящее время у меня есть этот код:
Мой класс Acrofield:
class MyCellField implements PdfPCellEvent {
protected String fieldname;
public MyCellField(String fieldname) {
this.fieldname = fieldname;
}
public void cellLayout(PdfPCell cell, Rectangle rectangle,
PdfContentByte[] canvases) {
final PdfWriter writer = canvases[0].getPdfWriter();
final TextField textField = new TextField(writer, rectangle,
fieldname);
try {
final PdfFormField field = textField.getTextField();
writer.addAnnotation(field);
} catch (final IOException ioe) {
throw new ExceptionConverter(ioe);
} catch (final DocumentException de) {
throw new ExceptionConverter(de);
}
}
}
И вот как я использую его в ячейке таблицы:
float[] widths = {20f, 80f};
PdfPTable table = new PdfPTable(widths);
table.setWidthPercentage(100f);
PdfPCell cell = new PdfPCell();
cell.setUseAscender(true);
cell.setUseDescender(true);
cell.setBorderWidthBottom(0.0f);
cell.setBorderWidthLeft(0.0f);
cell.setBorderWidthRight(0.0f);
cell.setBorderWidthTop(0.0f);
Paragraph ph = new Paragraph("Key:", TextUtilities.getInstance().SMALLBOLDFONT);
cell.addElement(ph);
table.addCell(cell);
cell = new PdfPCell();
cell.setUseAscender(true);
cell.setUseDescender(true);
cell.setBorderWidthBottom(0.5f);
cell.setBorderWidthLeft(0.0f);
cell.setBorderWidthRight(0.0f);
cell.setBorderWidthTop(0.0f);
cell.setCellEvent(new MyCellField(""));
ph = new Paragraph("", TextUtilities.getInstance().SMALLBOLDFONT);
cell.addElement(ph);
table.addCell(cell);