form property
PdfForm
get
form
Gets the interactive form of the document.
Implementation
PdfForm get form {
if (_helper.isLoadedDocument) {
if (_form == null) {
if (_helper.catalog.containsKey(PdfDictionaryProperties.acroForm)) {
final IPdfPrimitive? formDictionary = PdfCrossTable.dereference(
_helper.catalog[PdfDictionaryProperties.acroForm]);
if (formDictionary is PdfDictionary) {
_form = PdfFormHelper.internal(_helper.crossTable, formDictionary);
if (_form != null && _form!.fields.count != 0) {
_helper.catalog.form = _form;
List<int>? widgetReference;
if (PdfFormHelper.getHelper(_form!).crossTable!.document !=
null) {
for (int i = 0;
i <
PdfFormHelper.getHelper(_form!)
.crossTable!
.document!
.pages
.count;
i++) {
final PdfPage page = PdfFormHelper.getHelper(_form!)
.crossTable!
.document!
.pages[i];
widgetReference ??=
PdfPageHelper.getHelper(page).getWidgetReferences();
if (widgetReference.isNotEmpty) {
PdfPageHelper.getHelper(page)
.createAnnotations(widgetReference);
}
}
if (widgetReference != null) {
widgetReference.clear();
}
if (!PdfFormHelper.getHelper(_form!).formHasKids) {
PdfFormFieldCollectionHelper.getHelper(_form!.fields)
.createFormFieldsFromWidgets(_form!.fields.count);
}
}
}
}
} else {
_form = PdfFormHelper.internal(_helper.crossTable);
_helper.catalog.setProperty(
PdfDictionaryProperties.acroForm, PdfReferenceHolder(_form));
_helper.catalog.form = _form;
return _form!;
}
} else {
return _form!;
}
} else {
return _helper.catalog.form ??= PdfForm();
}
return _form!;
}