decode method

List<UPdfCodePoint> decode(
  1. Uint8List bytes
)

Implementation

List<UPdfCodePoint> decode(Uint8List bytes) {
  final List<UPdfCodePoint> out = <UPdfCodePoint>[];
  if (isType0) {
    final UPdfCMap cmap = encodingCMap ?? UPdfCMap.identity();
    int offset = 0;
    while (offset < bytes.length) {
      final int length = cmap.codeLengthAt(bytes, offset).clamp(1, 4);
      int code = 0;
      for (int i = 0; i < length && offset + i < bytes.length; i++) {
        code = (code << 8) | bytes[offset + i];
      }
      out.add(UPdfCodePoint(code: code, cid: cmap.cidFor(code), byteLength: length));
      offset += length;
    }
    return out;
  }
  for (final int byte in bytes) {
    out.add(UPdfCodePoint(code: byte, cid: byte, byteLength: 1));
  }
  return out;
}