I have created simple PDF document with 3 labels: First Name, Last Name and Photo. Then I added AcroForm layer with 2 'Text Fields' and one 'Image Field' using Adobe Acrobat PRO DC.
So if I want to fill up the form I can open this PDF file in regular Acrobat Reader and fill up by typing First Name, Last Name and in order to insert Photo I click on image placeholder and select photo in opened Dialog Window.
But how can I do same thing programmatically? Created simple Java Application that uses Apache PDFBox library (version 2.0.7) to find form fields and insert values.
I can easily populate Text Edit field, but can not figure out how can I insert image:
public class AcroFormPopulator {
    public static void main(String[] args) {
        AcroFormPopulator abd = new AcroFormPopulator();
        try {
            abd.populateAndCopy("test.pdf", "generated.pdf");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    private void populateAndCopy(String originalPdf, String targetPdf) throws IOException {
        File file = new File(originalPdf);
        PDDocument document = PDDocument.load(file);
        PDAcroForm acroForm = document.getDocumentCatalog().getAcroForm();
        Map<String, String> data = new HashMap<>();
        data.put("firstName", "Mike");
        data.put("lastName", "Taylor");
        data.put("photo_af_image", "photo.jpeg");
        for (Map.Entry<String, String> item : data.entrySet()) {
            PDField field = acroForm.getField(item.getKey());
            if (field != null) {
                if (field instanceof PDTextField) {
                    field.setValue(item.getValue());
                } else if (field instanceof PDPushButton) {
                    File imageFile = new File(item.getValue());
                    PDPushButton pdPushButton = (PDPushButton) field;
                    // do not see way to isert image
                } else {
                    System.err.println("No field found with name:" + item.getKey());
                }
            } else {
                System.err.println("No field found with name:" + item.getKey());
            }
        }
        document.save(targetPdf);
        document.close();
        System.out.println("Populated!");
    }
}
I have distinguished a weird thing - in Acrobat Pro DC it says that I add Image Field, but the only field I get by generated name: 'photo_af_image' is of type button - PDPushButton (that is why I check if (field instanceof PDPushButton)), but is nothing to do with Image.
How can I insert image to AcroForm 'photo_af_image' field, so that it will fit the size of a box created af Acrobat Pro DC?

