getStreamData method
Get decoded stream data for an object.
Implementation
Uint8List? getStreamData(int objectNumber) {
final obj = getObject(objectNumber);
if (obj == null || !obj.isStream) return null;
final stream = obj.object as PdfStream;
var streamData = stream.data;
// Decrypt if needed
if (encryption != null && encryption!.isAuthenticated) {
streamData =
encryption!.decrypt(streamData, objectNumber, obj.generation);
}
// Decompress
final filters = stream.filters;
if (filters.isNotEmpty) {
// Get DecodeParms
Map<String, dynamic>? decodeParms;
final dp = stream.dict['DecodeParms'];
if (dp is PdfDict) {
decodeParms = {};
for (final key in dp.keys) {
final val = dp[key];
if (val is PdfInt) decodeParms[key] = val.value;
if (val is PdfBool) decodeParms[key] = val.value;
}
}
return PdfStreamCodec.decode(streamData, filters,
decodeParms: decodeParms);
}
return streamData;
}