ensureFontAvailable method

Future<Uint8List> ensureFontAvailable(
  1. int pageNumber
)

Ensures the font for pageNumber is available locally.

Implementation

Future<Uint8List> ensureFontAvailable(int pageNumber) async {
  final cache = FontCache.instance;
  final fontFile = await cache.fontFileForPage(pageNumber);

  if (fontFile.existsSync()) {
    return fontFile.readAsBytes();
  }

  final bundleName = bundleNameForPage(pageNumber);
  await _downloadAndExtractBundle(bundleName);

  if (fontFile.existsSync()) {
    return fontFile.readAsBytes();
  }

  throw Exception('Font for page $pageNumber not found after downloading bundle $bundleName');
}