Fotos del mòbil a PDF: per què el fitxer surt enorme i una pàgina queda de costat
Imatges a PDF posa cada foto en una pàgina pròpia a la mida completa en píxels, de manera que tres JPEG de 3,2 MB fets amb un mòbil van esdevenir un PDF de 41,5 MB, i una foto vertical va sortir en una pàgina horitzontal. Reduïu les fotos abans de convertir i gireu després la pàgina de costat.
Imatges a PDF converteix fitxers JPEG, PNG, GIF o BMP en un sol PDF, una imatge per pàgina, en l'ordre de pujada. No redueix res i ignora l'indicador de rotació que els mòbils escriuen a les fotos verticals. En una execució de prova, tres JPEG de 3,2 MB van tornar com un PDF de 41,5 MB, i una foto marcada com a vertical va acabar en una pàgina horitzontal. Reduïu les fotos abans de pujar-les i arregleu després la pàgina de costat amb Gira PDF.
L'exemple pràctic
L'entrada eren tres JPEG de 4032 × 3024 píxels, d'uns 3,2 MB cadascun (9,7 MB en total), la mida en píxels d'un fotograma típic de càmera de mòbil. Eren imatges sintètiques amb soroll fi, de manera que es comprimeixen pitjor que la majoria de fotos reals; preneu totes les mides següents com una sola execució el 2026-10-04 contra un servidor local compilat amb el codi font actual, no com una promesa. La petició:
curl -s -o IMG_0001.pdf \
-F fileInput=@IMG_0001.jpg -F fileInput=@IMG_0002.jpg -F fileInput=@IMG_0003.jpg \
https://pdf123.xyz/api/v1/convert/img/pdf
| Pas | Resultat |
|---|---|
| 3 JPEG, 4032 × 3024 px | 9,7 MB en total |
| Imatges a PDF | 3 pàgines, 41,5 MB, cada pàgina de 4032 × 3024 pt |
| Comprimeix PDF sobre aquest PDF | 39,9 MB, un 4 % més petit aproximadament |
| Les mateixes 3 fotos reduïdes abans a 1600 px al costat llarg | 1,7 MB en total |
| Imatges a PDF amb les fotos reduïdes | 3 pàgines, 6,2 MB, cada pàgina de 1600 × 1200 pt |
| Comprimeix PDF sobre aquest PDF | 6,2 MB, no més petit |
La sortida rep el nom del primer fitxer, així que la baixada de dalt és IMG_0001.pdf.
Per què 10 MB de fotos es converteixen en 41 MB
Un JPEG desa una foto com a blocs comprimits amb pèrdua. Imatges a PDF no copia aquests bytes al PDF. Descodifica cada imatge, la converteix a RGB de 8 bits i desa els píxels en brut amb compressió Flate sense pèrdua. Un fotograma de 4032 × 3024 són 36,6 milions de bytes de RGB (4032 × 3024 × 3). Flate ho va reduir a uns 13,8 MB per pàgina, encara més de quatre vegades el JPEG d'origen. Nou còpies de les mateixes tres fotos van fer un PDF de 124,6 MB.
Això també explica les files de Comprimeix PDF. Comprimeix PDF torna a comprimir els fluxos i empaqueta objectes; no redueix la resolució de les imatges ni les torna a codificar. Els píxels ja estan comprimits amb Flate, així que queda ben poc per treure (per què). El camí cap a un fitxer més petit és tenir menys píxels abans de construir el PDF.
Hi ha un segon cost. Cada pàgina pren la mida de la seva imatge, un píxel per punt, de manera que una foto de 4032 píxels fa una pàgina de 56 polzades d'ample. Els visors l'ajusten a la finestra i les impressores l'escalen al paper, però els quadres de pàgina no són A4 ni Carta. El formulari no té cap opció de mida de paper, ajust, tipus de color ni gir automàtic, i el servidor no llegeix els camps de l'API fitOption, colorType ni autoRotate.
Reduïu primer, convertiu després
Canvieu la mida de les fotos abans de pujar-les. En un Mac, ho fa sips -Z 1600 IMG_0001.jpg --out small1.jpg. Amb ImageMagick en qualsevol sistema:
magick IMG_0001.jpg -resize 1600x1600 -quality 85 small1.jpg
Totes dues ordres converteixen una foto de 4032 × 3024 en una de 1600 × 1200. En aquesta execució, els tres JPEG van passar de 9,7 MB a 1,7 MB i el PDF de tres pàgines de 41,5 MB a 6,2 MB. En un full Carta, 1600 píxels en 11 polzades són uns 145 dpi: llegible per a un formulari fotografiat, aspre per a la lletra petita. Trieu la mida segons el text més petit que necessiteu llegir, no només segons la mida de fitxer que voleu assolir.
La mida importa dues vegades perquè les eines que vénen després també tenen un límit. El cos d'una sola petició està limitat a 100 MiB. El PDF de 124,6 MB de dalt va ser rebutjat amb un 413 (payload_too_large) en enviar-lo a Comprimeix PDF. Vegeu Quan es rebutja la càrrega d'un PDF gran per saber com esquivar-ho.
La pàgina de costat
Molts mòbils desen una foto vertical com a píxels horitzontals i hi afegeixen una etiqueta d'orientació EXIF que diu al visor que la giri. Les aplicacions de fotos solen obeir l'etiqueta. Imatges a PDF no la llegeix: un JPEG de 1600 × 1200 amb l'orientació 6 (girar 90° en sentit horari) va produir una pàgina horitzontal de 1600 × 1200.
La solució és Gira PDF: introduïu el número de pàgina, aquí 1, i un angle de 90. El resultat tenia /Rotate 90 definit en aquella pàgina, de manera que un visor la mostra dreta. Useu 270 per a fotos amb l'etiqueta de l'altre sentit (orientació 8) i 180 per a les cap per avall (orientació 3); aquí només es va provar l'orientació 6. Gira PDF defineix un angle absolut a la pàgina en lloc d'afegir-lo a l'actual, i no torna a codificar la imatge. Si preferiu no arreglar les pàgines una per una, gireu la foto a l'aplicació de fotos i deseu-ne una còpia abans de convertir.
Què rebutjarà aquesta eina
- HEIC i altres formats. La pàgina accepta
.png,.jpg,.jpeg,.gifi.bmp. Un fitxer HEIC real va retornar un 400,unsupported_file_type; exporteu-lo primer com a JPEG. - Un fitxer que no és una imatge. Pujar un PDF a aquest punt d'accés va retornar el mateix 400 amb el missatge «The file is not a supported image.»
- SVG. Un fitxer SVG va obtenir el mateix 400.
- Text cercable. El text d'una pàgina fotografiada continua sent píxels. OCR a Markdown retorna text en Markdown; no afegeix una capa de text a aquest PDF (com funciona).
- Transparència. Les imatges es converteixen a RGB i es descarta el canal alfa.
Comproveu abans d'enviar
Obriu el PDF i compteu les pàgines en relació amb les fotos, en ordre. L'ordre de les pàgines és l'ordre de pujada; en una prova, pujar un PNG vertical abans d'un d'horitzontal va produir primer la pàgina vertical. Després mireu la mida del fitxer abans d'adjuntar-lo.