getObject method
Get a resolved indirect object by object number.
Implementation
PdfIndirectObject? getObject(int objectNumber) {
// Check cache first
if (_objectCache.containsKey(objectNumber)) {
return _objectCache[objectNumber];
}
final entry = crossRef.entries[objectNumber];
if (entry == null || !entry.inUse) return null;
PdfIndirectObject? obj;
if (entry.isCompressed) {
// Object is in an object stream
obj = _getCompressedObject(
objectNumber,
entry.objectStreamNumber!,
entry.objectStreamIndex!,
);
} else {
// Regular uncompressed object
try {
final (parsed, _) = _parseObjectAt(entry.offset);
if (parsed is PdfIndirectObject) {
obj = parsed;
}
} catch (e) {
return null;
}
}
if (obj != null) {
_objectCache[objectNumber] = obj;
}
return obj;
}