react-pdf icon indicating copy to clipboard operation
react-pdf copied to clipboard

units in page size don't work any more

Open bernharduw opened this issue 3 years ago • 3 comments

Describe the bug Variable dpi support in #1869 removed support for page sizes with units such as mm. The units should be converted to points before dividing by dpi.

To reproduce These pages should be the same size, but the first one has invalid dimensions:

    <Page size={{ width:"105mm", height:"148.5mm" }} debug/>
    <Page size="A6" debug/>

Here's the react-pdf REPL snippet.

Expected behavior mm values in page sizes should work as in @react-pdf/[email protected] and @react-pdf/[email protected].

Desktop (please complete the following information):

  • OS: all
  • Browser: all
  • React-pdf version 3.0.0

bernharduw avatar Sep 05 '22 21:09 bernharduw

Hi, i've countered the same problem, so right now how can i create custom page size? thanks...

aditfurk avatar Sep 06 '22 08:09 aditfurk

Hi, i've countered the same problem, so right now how can i create custom page size? thanks...

@aditfurk one workaround is to use numeric units and convert the units to points. 1in = 72pt, and 2.54cm = 1in. So if you wanted to define a custom page size that is 10x14in, you can use <Page size={[10*72, 14*72]}></Page>.

For our use case though, this is not a viable solution because we have a large library of PDF templates that would have to be rewritten. I'm hoping for a PR to fix the issue in react-pdf instead.

bernharduw avatar Sep 06 '22 09:09 bernharduw

@bernharduw ahh okay, thanks for the answer

aditfurk avatar Sep 06 '22 10:09 aditfurk

Same here - page size specified in mm used to work, but it seems that since 3.* it's broken. Setting it to points after manually converting as @bernharduw does not solve my issue. The page size seems better but the height of items does not seem correct. If I set the same points size using [email protected] the page looks perfect. If there's a breaking change somewhere from 3.0.0 I'd love to know where - and have it documented in the release notes. I went through them and could not find anything clearly stated. 2.* to 3.* is a major upgrade so I fully understand if there's breaking changes - just want to know what they are and what are the migration suggestions 🙇‍♂️

klimeryk avatar Jan 09 '23 14:01 klimeryk

I believe "feat: variable dpi #1869" should be rolled back. Variable DPI should NOT be adjusting page size, but strictly image resolutions (the optional Resolution array %ALDImageResolution (see page 909 of PDF Reference 1.6).

The changes made in #1869 weren't properly tested before being merged. It broke how a pdf is supposed to be structured.

Ideally: Images should be embedded as-is without adjustments (any compression) as default. If a user provides a dpi prop for a page, then the image's resolution gets adjusted accordingly.

aready87 avatar Apr 14 '23 16:04 aready87

any updates on this?

vidjuheffex avatar May 02 '24 18:05 vidjuheffex