Menemukan resolusi gambar dalam file PDF?

15

Saya memiliki masalah memiliki beberapa pengguna membuat PDF yang sangat besar. Di sisi lain, saya memiliki PDF yang dikirim dari mesin faks kami yang berukuran sangat kecil dan benar-benar dapat dicetak. Pertanyaanku adalah

  • Apakah ada cara saya dapat menemukan resolusi (DPI) dari PDF. Saya mencari di internet, tidak dapat menemukan jawaban. Memeriksa properti file, informasi ini tidak disimpan di sana, setidaknya dalam kasus saya.
  • Apa resolusi optimal mengkonversi file teks ke gambar PDF. 96dpi, 300dpi atau lebih?
  • Pertanyaan menyenangkan. Bisakah saya mengubah ukuran PDF yang dipindai dengan dpi tinggi menjadi dpi lebih kecil?

Saya tahu beberapa jawaban mungkin tidak tersedia karena saya sudah mencari di internet dan tidak dapat menemukan jawaban.

Catatan: PDF saya sepenuhnya gambar, teks ke gambar. Saya juga terbiasa dengan primoPDF (gratis) sesuatu yang dapat Anda coba

hk_
sumber

Jawaban:

18

Jawaban dan komentar scrhck layak untuk diperbarui: pdfimagessekarang (setidaknya sejak versi 0.26.5) mencantumkan secara jelas x-ppidan y-ppi. Berikut adalah contoh output:

$ pdfimages -list example.pdf 
page   num  type   width height color comp bpc  enc interp  object ID x-ppi y-ppi size ratio
--------------------------------------------------------------------------------------------
   1     0 image    2244  2244  cmyk    4   8  image  no       215  0   301   301  418K 2.1%
   2     1 image     900   600  rgb     3   8  image  no       324  0  1524  1525 35.5K 2.2%

On Debian (Wheezy) dan Fedora (23), pdfimagesadalah bagian dari poppler-utilspaket.

Skippy le Grand Gourou
sumber
Punyaku semuanya kosong
theonlygusti
8

Saya tahu Anda tidak ingin mengekstrak data gambar, tetapi ini mungkin satu-satunya cara untuk mengetahui resolusi aslinya.


Di * nix, jika Anda memiliki ImageMagick ini identifydan Xpdf diinstal 1 :

pdfimages -j test.pdf test && for file in $(find . -name "test*.jpg"); do identify "$file"; done

Di mana test.pdfinput PDF Anda. File output ditulis ke test-000.jpg, test-001.jpgdan lain sebagainya. Ini akan memberi Anda ukuran asli dari semua gambar yang terkandung dalam PDF 2 itu .

Contoh output untuk file PDF yang hanya berisi satu gambar besar:

./test-000.jpg JPEG 2500x1961 2500x1961+0+0 8-bit DirectClass 1.022MB 0.000u 0:00.000

1) Windows juga memilikinya, tetapi skripnya tentu saja berbeda.
2) Perhatikan bahwa gambar tidak benar-benar membawa informasi DPI. Secara sederhana: Itu hanya sesuatu yang digunakan untuk mencetak dan gambar tidak perlu ukuran DPI yang melekat.


Apa resolusi optimal mengkonversi file teks ke gambar PDF. 96dpi, 300dpi atau lebih?

Secara umum, apa pun yang ingin Anda cetak harus 300dpi atau lebih. Sebagian besar printer juga akan menangani resolusi yang lebih tinggi.

slhck
sumber
2
Sebuah versi dari pdfimages (mungkin lebih baru daripada pertanyaan asli) dari proyek Poppler menambahkan -list pilihan: pdfimages -list test.pdf. Alih-alih menghasilkan file, ini mencantumkan ukuran dan jenis gambar. Masih tidak secara eksplisit memberi Anda resolusi, tetapi menghindari membuat file output.
scruss
1
@scruss Pada versi 0.34.0, pdfimages -listmenyediakan secara eksplisit x-ppidan y-ppi, serta banyak informasi lainnya.
Skippy le Grand Gourou
Memang sekarang sudah, @SkippyleGrandGourou: sekitar lima tahun setelah pertanyaan diajukan. pdfimages masih tidak menerapkan resolusi / ukuran itu untuk gambar yang diekstraksi.
scruss
@scruss Sebenarnya, tampaknya resolusi yang diberikan oleh pdfimagesbisa sangat tidak aktif (misalnya ketika gambar lebih besar dari area yang terlihat, dalam PDF yang diproduksi oleh scribus). (Sayangnya saya benar-benar tidak punya waktu untuk mengajukan laporan bug sekarang.)
Skippy le Grand Gourou
4

Untuk beberapa alasan, versi pdfimage terbaru yang dapat saya tingkatkan di CentOS saya adalah versi 3.04.

Jadi, saya tidak memiliki opsi -list seperti yang dinyatakan oleh jawaban sebelumnya. Namun, gambar uji yang dibuat dari pdfimages berdasarkan pada jawaban slhck berisi jawaban yang diinginkan!

identifikasikan -verbose test-0000.jpg | lebih

Image: test-0000.jpg  
Format: JPEG (Joint Photographic Experts Group JFIF format)  
Mime type: image/jpeg  
Class: DirectClass  
Geometry: 6600x5100+0+0  
Resolution: 600x600  
Print size: 11x8.5

Jadi dpi secara eksplisit ditampilkan pada baris ke-6 menggunakan opsi -verbose di perintah identifikasikan.

Jadi, jawaban slhck dapat dimodifikasi sebagai berikut.

pdfimages -j test.pdf test && untuk file dalam $ (temukan. -nama "test * .jpg"); lakukan identifikasikan -verbose "$ file" | awk 'NR == 6'; selesai

Pada catatan lain, saya mencoba berlari

mengidentifikasi -verbose test.pdf

Format: PDF (Portable Document Format)  
Mime type: application/pdf  
Class: DirectClass  
Geometry: 792x612+0+0  
Resolution: 72x72  
Print size: 11x8.5  

Tampaknya Imagemagick selalu mengasumsikan 72dpi dan informasi yang dicetak di sini tampaknya salah.

Kyong
sumber
1

File PDF tidak memiliki resolusi yang melekat, masing-masing gambar-raster di dalamnya (jika ada) akan memiliki resolusi sendiri. Saya tidak tahu cara sederhana untuk mengekstraksi nomor tunggal untuk resolusi median / modal XObjects gambar yang disematkan.

RedGrittyBrick
sumber
Ngomong-ngomong saya tidak tertarik mengekstraksi data gambar dari pdf, saya hanya ingin tahu apa resolusi pemindaian dan jika sangat tinggi tidak perlu ingin menghindari itu di masa depan.
hk_
@Dave: Sebenarnya saya maksud mengekstrak informasi tentang gambar yang disematkan, bukan mengekstrak gambar. Tetapi jawaban slhck dapat memecahkan masalah Anda.
RedGrittyBrick
1

Ini bekerja dengan pdf yang dihasilkan dari Kyocera mfp ... Ini mungkin hanya berlaku untuk gambar satu halaman penuh seperti pemindaian.

  1. Buka pdf dengan Reader
  2. File> Properties -Description tab -Halaman ukuran. Contoh saya mengatakan 8.5x11.0 di.

  3. Buka pdf dengan editor teks (notepad), cari /widthdan/height

  4. Ambil tinggi dan lebar dan bagi dengan tinggi dan lebar halaman (dalam inci)

Contoh:

5100/8.5=600
6600/11.0=600

PDF saya dipindai dengan resolusi 600x600.

Anda dapat melewati 2 langkah pertama jika Anda mengetahui ukuran dokumen (biasanya A4 adalah 8.27x11.69).

Jeff21050
sumber
0

Untuk menjawab poin kedua Anda, selain menyebutkan @slhck tentang dpi printer, 300dpi juga merupakan angka minimal yang disarankan untuk OCR dengan ukuran font 10 + pt.

Lebih jauh, layar laptop 15 "4K modern juga hanya memiliki sekitar 280PPi, jadi jika Anda ingin melihat seluruh A4 pada layar (lanskap) tidak ada titik pemindaian lebih tinggi dari ~ 320 dpi, karena dokumen apa pun yang lebih tinggi dari itu akan menjadi diperkecil Tentu saja, ini tidak masalah jika Anda berencana untuk memperbesar, maka Anda mungkin perlu dpi lebih tinggi.

Untuk menjawab dua poin Anda yang lain, saat ini setidaknya Anda dapat menggunakan Acrobat Pro untuk memeriksa DPI dan resolusi gambar, dan Anda juga dapat mengeditnya.

jiggunjer
sumber