Telefon Fotoğraflarından PDF: Dosya Neden Dev Çıkıyor ve Bir Sayfa Neden Yan Dönüyor
Görüntüden PDF'e her fotoğrafı kendi sayfasına tam piksel boyutunda koyar; bu yüzden telefon boyutundaki üç adet 3,2 MB'lık JPEG 41,5 MB'lık bir PDF oldu ve dikey bir fotoğraf yatay bir sayfaya düştü. Dönüştürmeden önce fotoğrafları küçültün, yan dönen sayfayı sonradan döndürün.
Görüntüden PDF'e, JPEG, PNG, GIF ya da BMP dosyalarını yükleme sırasıyla, sayfa başına bir görüntü olacak şekilde tek bir PDF'e dönüştürür. Hiçbir şeyi küçültmez ve telefonların dikey fotoğraflara yazdığı döndürme bayrağını yok sayar. Bir test çalıştırmasında üç adet 3,2 MB'lık JPEG, 41,5 MB'lık bir PDF olarak geri geldi ve dikey işaretli bir fotoğraf yatay bir sayfaya düştü. Yüklemeden önce fotoğrafları küçültün, yan dönen sayfayı da sonradan PDF döndür ile düzeltin.
Çalışılmış örnek
Girdi, her biri yaklaşık 3,2 MB (toplam 9,7 MB) olan, 4032 × 3024 piksellik üç JPEG'di; tipik bir telefon kamerası karesinin piksel boyutu. İnce gürültülü sentetik görüntülerdi, bu yüzden çoğu gerçek fotoğraftan daha kötü sıkışırlar; aşağıdaki her boyutu bir söz olarak değil, 2026-10-04'te güncel kaynaktan derlenmiş yerel bir sunucuya karşı yapılan tek bir çalıştırma olarak okuyun. İstek:
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
| Adım | Sonuç |
|---|---|
| 3 JPEG, 4032 × 3024 px | toplam 9,7 MB |
| Görüntüden PDF'e | 3 sayfa, 41,5 MB, her sayfa 4032 × 3024 pt |
| O PDF üzerinde PDF sıkıştır | 39,9 MB, yaklaşık %4 daha küçük |
| Aynı 3 fotoğraf önce uzun kenarda 1600 px'e küçültüldü | toplam 1,7 MB |
| Küçültülmüş fotoğraflarda Görüntüden PDF'e | 3 sayfa, 6,2 MB, her sayfa 1600 × 1200 pt |
| O PDF üzerinde PDF sıkıştır | 6,2 MB, daha küçük değil |
Çıktı ilk dosyanın adını alır, yani yukarıdaki indirme IMG_0001.pdf olur.
10 MB'lık fotoğraflar neden 41 MB oluyor
JPEG, bir fotoğrafı kayıplı sıkıştırılmış bloklar olarak saklar. Görüntüden PDF'e bu baytları PDF'e kopyalamaz. Her görüntüyü çözer, 8 bit RGB'ye çevirir ve ham pikselleri kayıpsız Flate sıkıştırmasıyla saklar. 4032 × 3024'lük tek bir kare 36,6 milyon bayt RGB'dir (4032 × 3024 × 3). Flate bunu burada sayfa başına yaklaşık 13,8 MB'a indirdi; bu, geldiği JPEG'in hâlâ dört katından fazla. Aynı üç fotoğrafın dokuz kopyası 124,6 MB'lık bir PDF yaptı.
Bu, PDF sıkıştır satırlarını da açıklar. PDF sıkıştır akışları yeniden sıkıştırır ve nesneleri paketler; görüntüleri örnekleme düzeyinde düşürmez ya da yeniden kodlamaz. Pikseller zaten Flate ile sıkıştırılmış olduğundan çıkarılacak pek bir şey kalmamıştır (nedeni). Daha küçük dosyaya giden yol, PDF oluşturulmadan önce daha az piksel olmasıdır.
İkinci bir maliyet daha var. Her sayfa, görüntüsünün boyutunu alır; bir piksel bir punto eder, yani 4032 piksellik bir fotoğraf 56 inç genişliğinde bir sayfa yapar. Görüntüleyiciler onu pencereye sığdırır, yazıcılar kâğıda ölçekler, ama sayfa kutuları A4 ya da Letter değildir. Formda kâğıt boyutu, sığdırma, renk türü ya da otomatik döndürme seçeneği yoktur ve sunucu fitOption, colorType ya da autoRotate API alanlarını okumaz.
Önce küçültün, sonra dönüştürün
Fotoğrafları yüklemeden önce yeniden boyutlandırın. Mac'te sips -Z 1600 IMG_0001.jpg --out small1.jpg bunu yapar. Her sistemde ImageMagick ile:
magick IMG_0001.jpg -resize 1600x1600 -quality 85 small1.jpg
İkisi de 4032 × 3024'lük bir fotoğrafı 1600 × 1200'e çevirir. Bu çalıştırmada üç JPEG 9,7 MB'dan 1,7 MB'a, üç sayfalık PDF ise 41,5 MB'dan 6,2 MB'a düştü. Bir Letter sayfasında 11 inç boyunca 1600 piksel yaklaşık 145 dpi eder: fotoğraflanmış bir form için okunaklı, küçük yazı için kaba. Boyutu yalnızca dosya boyutu hedefine göre değil, okumanız gereken en küçük metne göre seçin.
Boyut iki kez önemlidir, çünkü sonraki araçların da bir tavanı vardır. Tek bir istek gövdesi 100 MiB ile sınırlıdır. Yukarıdaki 124,6 MB'lık PDF, PDF sıkıştır'a gönderildiğinde 413 (payload_too_large) ile reddedildi. Çözüm yolu için Büyük Bir PDF Yüklemesi Reddedildiğinde yazısına bakın.
Yan dönen sayfa
Birçok telefon dikey bir fotoğrafı yatay pikseller olarak saklar ve görüntüleyiciye onu döndürmesini söyleyen bir EXIF yön etiketi ekler. Fotoğraf uygulamaları etikete genellikle uyar. Görüntüden PDF'e onu okumaz: yön 6 (saat yönünde 90° döndür) etiketli 1600 × 1200'lük bir JPEG, yatay 1600 × 1200'lük bir sayfa üretti.
Çözüm PDF döndür: sayfa numarasını, burada 1, ve 90 açısını girin. Sonuçta o sayfada /Rotate 90 ayarlıydı, yani görüntüleyici onu dik gösterir. Etiketi ters olan fotoğraflar için (yön 8) 270, baş aşağı olanlar için (yön 3) 180 kullanın; burada yalnızca yön 6 denendi. PDF döndür, sayfadaki mevcut açıya eklemek yerine mutlak bir açı ayarlar ve görüntüyü yeniden kodlamaz. Sayfaları tek tek düzeltmek istemiyorsanız, dönüştürmeden önce fotoğrafı fotoğraf uygulamanızda döndürüp bir kopya kaydedin.
Bu aracın reddedeceği şeyler
- HEIC ve diğer biçimler. Sayfa
.png,.jpg,.jpeg,.gifve.bmpkabul eder. Gerçek bir HEIC dosyası 400,unsupported_file_typedöndürdü; önce JPEG olarak dışa aktarın. - Görüntü olmayan dosya. Bu uç noktaya bir PDF yüklemek aynı 400'ü ve "The file is not a supported image." iletisini döndürdü.
- SVG. Bir SVG dosyası da aynı 400'ü aldı.
- Aranabilir metin. Fotoğraflanmış bir sayfadaki metin piksel olarak kalır. OCR Markdown metni döndürür; bu PDF'e metin katmanı eklemez (nasıl çalışır).
- Saydamlık. Görüntüler RGB'ye çevrilir ve alfa kanalı atılır.
Göndermeden önce kontrol edin
PDF'i açın ve sayfaları fotoğraflarla sırayla karşılaştırarak sayın. Sayfa sırası yükleme sırasıdır; bir testte dikey bir PNG'yi yatay birinden önce yüklemek dikey sayfayı öne koydu. Sonra eklemeden önce dosya boyutuna bakın.