protected internal void UpdateCalculationOrder(PdfReader reader)
{
PdfDictionary catalog = reader.Catalog;
PdfDictionary acro = catalog.GetAsDict(PdfName.ACROFORM);
if (acro == null)
return;
PdfArray co = acro.GetAsArray(PdfName.CO);
if (co == null || co.Size == 0)
return;
AcroFields af = reader.AcroFields;
for (int k = 0; k < co.Size; ++k) {
PdfObject obj = co[k];
if (obj == null || !obj.IsIndirect())
continue;
String name = GetCOName(reader, (PRIndirectReference)obj) ;
if (af.GetFieldItem(name) == null)
continue;
name = "." + name;
if (calculationOrder.Contains(name))
continue;
calculationOrder.Add(name);
}
}