List of usage examples for org.apache.pdfbox.pdmodel.interactive.form PDComboBox getOptions
public List<String> getOptions()
From source file:com.formkiq.core.service.generator.pdfbox.PdfEditorServiceImpl.java
License:Apache License
/** * Create {@link FormJSONField} from {@link PDField}. * * @param pdffield {@link PdfFieldMatch} * @param relatedTextMap {@link Map} of {@link PdfTextField} * @return {@link FormJSONField}/*from w w w .j a va2 s .co m*/ */ private FormJSONField createFormField(final PdfFieldMatch pdffield, final Map<UUID, List<PdfTextField>> relatedTextMap) { FormJSONField field = new FormJSONField(); field.setRequired(FormJSONRequiredType.OPTIONAL); PDField pdfield = pdffield.getField(); field.setLabel(getLabel(pdffield, relatedTextMap)); if (pdfield instanceof PDComboBox) { PDComboBox box = (PDComboBox) pdfield; field.setType(SELECTBOX); field.setOptions(box.getOptions()); } else if (pdfield instanceof PDCheckBox) { PDCheckBox c = (PDCheckBox) pdfield; field.setOptions(c.getOnValues().stream().map(s -> s + "[" + s + "]").collect(Collectors.toList())); if (pdffield.getWidgets().size() == c.getOnValues().size()) { List<String> options = field.getOptions(); for (int i = 0; i < options.size(); i++) { PdAnnotationWidgetMatch wm = pdffield.getWidgets().get(i); if (!wm.getMatches().isEmpty()) { String v = extractLabelAndValue(options.get(i)).getRight(); options.set(i, wm.getMatches().get(0).getTextField().getText().trim() + "[" + v + "]"); } } } field.setType(SWITCH); } else if (pdfield instanceof PDSignatureField) { field.setType(SIGNATURE); } else { field.setType(TEXTBOX); } return field; }