Search in sources :

Example 1 with PDFormFieldAdditionalActions

use of org.apache.pdfbox.pdmodel.interactive.action.PDFormFieldAdditionalActions in project tika by apache.

the class AbstractPDF2XHTML method processAcroField.

private void processAcroField(PDField field, final int currentRecursiveDepth) throws SAXException, IOException, TikaException {
    if (currentRecursiveDepth >= MAX_ACROFORM_RECURSIONS) {
        return;
    }
    PDFormFieldAdditionalActions pdFormFieldAdditionalActions = field.getActions();
    if (pdFormFieldAdditionalActions != null) {
        handleDestinationOrAction(pdFormFieldAdditionalActions.getC(), ActionTrigger.FORM_FIELD_RECALCULATE);
        handleDestinationOrAction(pdFormFieldAdditionalActions.getF(), ActionTrigger.FORM_FIELD_FORMATTED);
        handleDestinationOrAction(pdFormFieldAdditionalActions.getK(), ActionTrigger.FORM_FIELD_KEYSTROKE);
        handleDestinationOrAction(pdFormFieldAdditionalActions.getV(), ActionTrigger.FORM_FIELD_VALUE_CHANGE);
    }
    if (field.getWidgets() != null) {
        for (PDAnnotationWidget widget : field.getWidgets()) {
            handleWidget(widget);
        }
    }
    addFieldString(field);
    if (field instanceof PDNonTerminalField) {
        int r = currentRecursiveDepth + 1;
        xhtml.startElement("ol");
        for (PDField child : ((PDNonTerminalField) field).getChildren()) {
            processAcroField(child, r);
        }
        xhtml.endElement("ol");
    }
}
Also used : PDField(org.apache.pdfbox.pdmodel.interactive.form.PDField) PDFormFieldAdditionalActions(org.apache.pdfbox.pdmodel.interactive.action.PDFormFieldAdditionalActions) PDAnnotationWidget(org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotationWidget) PDNonTerminalField(org.apache.pdfbox.pdmodel.interactive.form.PDNonTerminalField)

Aggregations

PDFormFieldAdditionalActions (org.apache.pdfbox.pdmodel.interactive.action.PDFormFieldAdditionalActions)1 PDAnnotationWidget (org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotationWidget)1 PDField (org.apache.pdfbox.pdmodel.interactive.form.PDField)1 PDNonTerminalField (org.apache.pdfbox.pdmodel.interactive.form.PDNonTerminalField)1