mirror of
https://github.com/documenso/documenso.git
synced 2025-11-14 00:32:43 +10:00
Handles edge cases with PDF media boxes and crop boxes, deals with certain documents that had been uploaded with weird combos of sizings.
19 lines
536 B
TypeScript
19 lines
536 B
TypeScript
import type { PDFPage } from 'pdf-lib';
|
|
|
|
/**
|
|
* Gets the effective page size for PDF operations.
|
|
*
|
|
* Uses CropBox by default to handle rare cases where MediaBox is larger than CropBox.
|
|
* Falls back to MediaBox when it's smaller than CropBox, following typical PDF reader behavior.
|
|
*/
|
|
export const getPageSize = (page: PDFPage) => {
|
|
const cropBox = page.getCropBox();
|
|
const mediaBox = page.getMediaBox();
|
|
|
|
if (mediaBox.width < cropBox.width || mediaBox.height < cropBox.height) {
|
|
return mediaBox;
|
|
}
|
|
|
|
return cropBox;
|
|
};
|