inheritedPageAttribute method

dynamic inheritedPageAttribute(
  1. PdfDictToken pageDict,
  2. String key
)

Value of an inheritable page attribute (/Rotate, /CropBox, …), looked up on the page itself and then on its ancestors.

Returns the raw value (it may still be an indirect reference).

Implementation

dynamic inheritedPageAttribute(PdfDictToken pageDict, String key) {
  final direct = pageDict.values[key];
  if (direct != null) return direct;

  var parentVal = pageDict.values[PdfNameTokens.parent];
  for (var depth = 0; depth < 32; depth++) {
    final parentRef = PdfParserObjects.asRef(parentVal);
    if (parentRef == null) return null;
    final parentObj =
        _getObjectNoStream(parentRef.obj) ?? _getObject(parentRef.obj);
    if (parentObj == null || parentObj.value is! PdfDictToken) return null;
    final parentDict = parentObj.value as PdfDictToken;
    final value = parentDict.values[key];
    if (value != null) return value;
    parentVal = parentDict.values[PdfNameTokens.parent];
  }
  return null;
}