O primeiro limite define a saída
O exemplo oficial PDF.js usa viewport de escala 1 e um fator. Moyoutil aplica a fórmula e arredonda para baixo. Exemplos usam unidades padrão e nenhuma rotação. CropBox, rotação ou unidades personalizadas podem mudar o viewport.
scale = min(DPI / 72,
3072 / max(width, height),
sqrt(8000000 / (width * height)))
outputWidth = floor(width * scale)
outputHeight = floor(height * scale)2000×1000 gerou 3072×1536px em 144 e 216 DPI: o lado maior limita a escala a 1.536. 3000×3000 gerou 2828×2828px em todos os ajustes. Aqui oito milhões limitam primeiro; o resultado inteiro contém 7,997,584 pixels.
Confira antes do próximo passo
612×792 gerou 612×792, 1224×1584 e 1836×2376px em 72, 144 e 216 DPI sem limites. DPI não é sempre ignorado. Confira dimensões baixadas de páginas grandes. O cálculo não garante metadados de impressão com o mesmo DPI.
Guarde o PDF para detalhes de desenhos grandes e considere ferramentas para regiões da página. Dividir PDF no Moyoutil separa páginas, não recorta regiões. Comprimir imagens não elimina esse limite.
Perguntas frequentes
PNG evita o limite?
Não. PNG e JPEG usam o mesmo cálculo prévio. Formato e limites de pixels são independentes.