// create form stream, form and resource.
this.pdfBuilder.createHolderFormStream(template);
PDStream holderFormStream = pdfStructure.getHolderFormStream();
this.pdfBuilder.createHolderFormResources();
PDResources holderFormResources = pdfStructure.getHolderFormResources();
this.pdfBuilder.createHolderForm(holderFormResources, holderFormStream, formater);
// that is /AP entry the appearance dictionary.
this.pdfBuilder.createAppearanceDictionary(pdfStructure.getHolderForm(), pdSignatureField);
// inner formstream, form and resource (hlder form containts inner form)
this.pdfBuilder.createInnerFormStream(template);
this.pdfBuilder.createInnerFormResource();
PDResources innerFormResource = pdfStructure.getInnerFormResources();
this.pdfBuilder.createInnerForm(innerFormResource, pdfStructure.getInnterFormStream(), formater);
PDXObjectForm innerForm = pdfStructure.getInnerForm();
// inner form must be in the holder form as we wrote
this.pdfBuilder.insertInnerFormToHolerResources(innerForm, holderFormResources);
// Image form is in this structure: /AcroForm/DR/FRM0/Resources/XObject/n0
this.pdfBuilder.createImageFormStream(template);
PDStream imageFormStream = pdfStructure.getImageFormStream();
this.pdfBuilder.createImageFormResources();
PDResources imageFormResources = pdfStructure.getImageFormResources();
this.pdfBuilder.createImageForm(imageFormResources, innerFormResource, imageFormStream, formater, transform,
pdfStructure.getJpedImage());
// now inject procSetArray
this.pdfBuilder.injectProcSetArray(innerForm, page, innerFormResource, imageFormResources, holderFormResources,