extractByteRange static method

List<int> extractByteRange(
  1. Uint8List pdfBytes
)

Extracts the last /ByteRange array from pdfBytes.

Implementation

static List<int> extractByteRange(Uint8List pdfBytes) {
  if (useInternalByteRangeParser) {
    return _extractByteRangeInternal(pdfBytes);
  }

  if (useFastByteRangeParser) {
    try {
      final range = _extractByteRangeFast(pdfBytes);
      if (_isValidByteRange(pdfBytes.length, range)) {
        return range;
      }
    } catch (e) {
      if (e is StateError && e.message == 'ByteRange not found') {
        throw e;
      }
    }
  }

  try {
    final range = _extractByteRangeStringSearch(pdfBytes);
    if (_isValidByteRange(pdfBytes.length, range)) {
      return range;
    }
  } catch (_) {
    // fall through
  }

  final range = _extractByteRangeInternal(pdfBytes);
  if (!_isValidByteRange(pdfBytes.length, range)) {
    throw StateError('ByteRange encontrado mas inconsistente.');
  }
  return range;
}