diff --git a/.changeset/pretty-jars-begin.md b/.changeset/pretty-jars-begin.md new file mode 100644 index 000000000..aa5edf5c6 --- /dev/null +++ b/.changeset/pretty-jars-begin.md @@ -0,0 +1,9 @@ +--- +'@react-pdf/layout': minor +'@react-pdf/pdfkit': minor +'@react-pdf/render': minor +'@react-pdf/stylesheet': minor +'@react-pdf/types': minor +--- + +fix: fix dpi \ No newline at end of file diff --git a/packages/layout/src/page/getSize.js b/packages/layout/src/page/getSize.js index 76ee76aa6..4fe676a2d 100644 --- a/packages/layout/src/page/getSize.js +++ b/packages/layout/src/page/getSize.js @@ -78,8 +78,8 @@ const flipSizeObject = (v) => ({ width: v.height, height: v.width }); * @returns {{ width: number, height: number }} adjusted size object */ const adjustDpi = (v, dpi) => ({ - width: v.width ? v.width * dpi : v.width, - height: v.height ? v.height * dpi : v.height, + width: v.width ? v.width * (72 / dpi) : v.width, + height: v.height ? v.height * (72 / dpi) : v.height, }); /** @@ -121,14 +121,15 @@ const getSize = (page) => { size = getStringSize(value); } else if (Array.isArray(value)) { size = toSizeObject(value); + size = adjustDpi(size, dpi); } else if (type === 'number') { size = getNumberSize(value); + size = adjustDpi(size, dpi); } else { size = value; + size = adjustDpi(size, dpi); } - size = adjustDpi(size, dpi / 72); - return isLandscape(page) ? flipSizeObject(size) : size; }; diff --git a/packages/layout/src/steps/resolveStyles.js b/packages/layout/src/steps/resolveStyles.js index 1c24b3c8d..b94637432 100644 --- a/packages/layout/src/steps/resolveStyles.js +++ b/packages/layout/src/steps/resolveStyles.js @@ -56,7 +56,7 @@ const resolveNodeStyles = (container) => (node) => { * @returns {Object} document page with resolved styles */ export const resolvePageStyles = (page) => { - const dpi = page.props?.dpi || 72; + const dpi = 72; // Removed: page.props?.dpi || 72; const width = page.box?.width || page.style.width; const height = page.box?.height || page.style.height; const orientation = page.props?.orientation || 'portrait'; diff --git a/packages/stylesheet/src/transform/units.js b/packages/stylesheet/src/transform/units.js index c4f18fe96..01ec54b2e 100644 --- a/packages/stylesheet/src/transform/units.js +++ b/packages/stylesheet/src/transform/units.js @@ -22,7 +22,7 @@ const parseValue = (value) => { const transformUnit = (container, value) => { const scalar = parseValue(value); - const dpi = container.dpi || 72; + const dpi = 72; // Removed: container.dpi || 72 const mmFactor = (1 / 25.4) * dpi; const cmFactor = (1 / 2.54) * dpi;