Example usage for org.apache.pdfbox.pdmodel.interactive.form PDComboBox getOptions

List of usage examples for org.apache.pdfbox.pdmodel.interactive.form PDComboBox getOptions

Introduction

In this page you can find the example usage for org.apache.pdfbox.pdmodel.interactive.form PDComboBox getOptions.

Prototype

public List<String> getOptions() 

Source Link

Document

This will get the option values "Opt".

Usage

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