resolveSize method
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);
}