resolveSize method

CPDFPageThumbnailSize resolveSize(
  1. Size pageSize
)

Resolves the target render size for a page.

Implementation

CPDFPageThumbnailSize resolveSize(Size pageSize) {
  validate();
  if (pageSize.width <= 0 || pageSize.height <= 0) {
    throw ArgumentError.value(
        pageSize, 'pageSize', 'Must be greater than 0.');
  }

  int resolvedWidth;
  int resolvedHeight;
  if (width != null && height != null) {
    resolvedWidth = width!;
    resolvedHeight = height!;
  } else if (width != null) {
    resolvedWidth = width!;
    resolvedHeight = preserveAspectRatio
        ? (width! * pageSize.height / pageSize.width).round()
        : (pageSize.height * scale).round();
  } else if (height != null) {
    resolvedHeight = height!;
    resolvedWidth = preserveAspectRatio
        ? (height! * pageSize.width / pageSize.height).round()
        : (pageSize.width * scale).round();
  } else {
    resolvedWidth = (pageSize.width * scale).round();
    resolvedHeight = (pageSize.height * scale).round();
  }

  resolvedWidth = resolvedWidth.clamp(1, maxPixelCount);
  resolvedHeight = resolvedHeight.clamp(1, maxPixelCount);
  final pixelCount = resolvedWidth * resolvedHeight;
  if (pixelCount > maxPixelCount) {
    throw ArgumentError.value(
      pixelCount,
      'pixelCount',
      'Must be less than or equal to maxPixelCount.',
    );
  }
  return CPDFPageThumbnailSize(resolvedWidth, resolvedHeight);
}