pages static method

Future<List<PdfRaster>> pages(
  1. PrintRequest request, {
  2. required double widthPx,
})

Implementation

static Future<List<PdfRaster>> pages(
  PrintRequest request, {
  required double widthPx,
}) {
  final key = jsonEncode({
    'template': request.template.toItem().data,
    'template_name': request.template.name,
    'paper': request.paper.toItem().data,
    'sample': request.sampleData,
    'notice': request.pageNotice,
    'cells': request.cellData,
    'locale': request.localeName,
    'copies': request.copies,
    'skipped': request.skippedPerSheet,
    'guides': request.showCutGuides,
    'single': request.singleCellPage,
    'width': widthPx.round(),
  });
  final cached = _entries.remove(key);
  if (cached != null) {
    _entries[key] = cached;
    return cached;
  }
  final future = _render(request, widthPx);
  _entries[key] = future;
  if (_entries.length > _maxEntries) _entries.remove(_entries.keys.first);
  future.catchError((_) {
    _entries.remove(key);
    return <PdfRaster>[];
  });
  return future;
}