Bagaimana cara mengubah PDF ke Gambar?

327

Saya memiliki persyaratan untuk mengkonversi halaman PDF ke gambar. Ada gambar latar belakang dengan beberapa teks yang ditulis, jadi ketika saya menyimpan ini sebagai gambar hanya gambar latar yang disimpan.

Apakah ada perangkat lunak yang tersedia untuk hal yang sama sehingga halaman lengkap dapat dikonversi menjadi gambar?

Deependra Solanky
sumber
Rupanya itu juga mungkin dengan inkscape: stackoverflow.com/a/15484727/32453
rogerdpack

Jawaban:

299
  1. Pasang imagemagick .

  2. Menggunakan terminal tempat PDF berada:

    • Untuk dokumen lengkap:

      convert -density 150 input.pdf -quality 90 output.png
      
    • Untuk satu halaman:

      convert -density 150 input.pdf[666] -quality 90 output.png
      

Dimana:

  • PNG, JPG, atau (hampir) format gambar lain dapat dipilih.

  • -density xxxakan mengatur DPI ke xxx(umum adalah 150 dan 300).

  • -quality xxxakan mengatur kompresi ke xxxformat file PNG, JPG, dan MIFF (100 berarti tidak ada kompresi).

  • [666]hanya akan mengkonversi halaman ke-667 ke PNG (penomoran berbasis nol begitu [0]juga dengan halaman ke-1).

  • Semua opsi lain (seperti pemangkasan, skala abu-abu, dll.) Dapat dilihat di situs Image Magic .

Binarylife
sumber
2
Jawabannya memang berfungsi tetapi resolusinya sangat buruk. Karena itu saat ini bukan jawaban yang berguna. Mungkin jika konversi memiliki beberapa parameter yang dapat ditentukan ini dapat berubah.
Elijah Lynn
48
Jawaban ini adalah kualitas yang jauh lebih tinggi askubuntu.com/a/50180/11929
Elijah Lynn
6
Anda dapat mengubah kerapatan dengan menambahkan -density 300parameter
OHLÁLÁ
4
Jadi, adakah yang bisa memastikan bahwa menentukan kepadatan membuatnya "sebagus" jawaban lain di sini, atau tidak? Juga sebagai catatan untuk pengikut, ImageMagick memanggil "ghostscript" untuk benar-benar mengkonversi dari pdf ke png ex: gs -q NOPROMPT ...-sDEVICE=pngalpha -r150x150 -sOutputFile=/var/tmp/Yf%d -f/var/tmp/L -f/var/tmp/Fic1dan jika Anda mendapatkannya convert: no images defined output.pngberarti Anda tidak menginstal ghostscript ...
rogerdpack
4
Parsing PDF dalam imagemagick telah dinonaktifkan - bugs.archlinux.org/task/59778 - dapat diaktifkan secara manual dengan mengedit /etc/ImageMagick-7/policy.xmlfile dan menghapus PDFdari<policy domain="coder" rights="none" pattern="{PS,PS2,PS3,EPS,PDF,XPS}" />
Jezor
393

Anda dapat menggunakan pdftoppmuntuk mengonversi PDF ke PNG:

pdftoppm input.pdf outputname -png

Ini akan menampilkan setiap halaman dalam PDF menggunakan format outputname-01.png, dengan 01menjadi indeks halaman.

Mengonversi satu halaman PDF

pdftoppm input.pdf outputname -png -f {page} -singlefile

Ubah {page}ke nomor halaman. Diindeks pada 1, jadi -f 1akan menjadi halaman pertama.

Menentukan resolusi gambar yang dikonversi

Resolusi default untuk perintah ini adalah 150 DPI. Meningkatkannya akan menghasilkan ukuran file yang lebih besar dan lebih detail.

Untuk meningkatkan resolusi PDF yang dikonversi, tambahkan opsi -rx {resolution}dan -ry {resolution}. Sebagai contoh:

pdftoppm input.pdf outputname -png -rx 300 -ry 300
enzotib
sumber
24
Terima kasih banyak. Kualitas yang jauh lebih baik daripada dengan imagemagick atau graphicmagick!
dAnjou
7
pdftoppm jauh lebih cepat daripada konversi
zuo
4
Ini benar-benar jauh lebih baik daripada imagemagick. Imagemagick benar-benar mengubah warna dengan cara yang tidak terduga dalam kasus saya!
NoBackingDown
13
ini bagus !, tapi sedikit lebih mudah untuk menulis -r 300daripada menentukan resolusi x dan y secara mandiri ketika Anda ingin mengaturnya ke nilai yang sama.
mlc
2
Saya lebih sukses dengan pdftoppm daripada dengan imagemagick.
Michael Hays
22

IIRC GIMP mampu menggunakan PDF, yaitu mengonversinya menjadi gambar. Jadi jika Anda ingin mengedit gambar segera - GIMP adalah teman Anda.

tesseract
sumber
GIMP memang dapat membuka PDF, setiap halaman sebagai satu lapisan. Memilih "Ekspor Sebagai" tampaknya hanya menyimpan lapisan saat ini, tetapi Anda dapat dengan mudah menghapus lapisan setelah mengekspor dan menjalankan "Ekspor Sebagai" lagi.
Dan Dascalescu
12

Jawaban yang diterima saat ini melakukan pekerjaan tetapi menghasilkan output yang lebih besar dalam ukuran dan menderita kehilangan kualitas.

Metode dalam jawaban yang diberikan di sini menghasilkan output yang sebanding ukurannya dengan input dan tidak menderita kehilangan kualitas.

TLDR - Gunakan pdfimages:pdfimages -j input.pdf output

Mengutip jawaban tertaut:

Tidak jelas apa yang Anda maksud dengan "kehilangan kualitas". Itu bisa berarti banyak hal yang berbeda. Bisakah Anda memposting beberapa sampel untuk diilustrasikan? Mungkin memotong bagian yang sama dari versi kualitas buruk dan kualitas yang baik (sebagai PNG untuk menghindari kehilangan kualitas lebih lanjut).

Mungkin Anda perlu menggunakan -densityuntuk melakukan konversi pada dpi yang lebih tinggi:

convert -density 300 file.pdf page_%04d.jpg

(Anda dapat menambahkan -units PixelsPerInchatau -units PixelsPerCentimeterjika perlu. Salinan saya default ke ppi.)

Pembaruan: Seperti yang Anda tunjukkan, gscan2pdf(cara Anda menggunakannya) hanyalah pembungkus untuk pdfimages(dari poppler ). pdfimages tidak melakukan hal yang convertsama ketika mengisi PDF sebagai input.

convert mengambil PDF, membuatnya pada beberapa resolusi, dan menggunakan bitmap yang dihasilkan sebagai gambar sumber.

pdfimagesmelihat melalui PDF untuk gambar bitmap tertanam dan mengekspor masing-masing ke file. Itu hanya mengabaikan perintah menggambar teks atau vektor dalam PDF.

Akibatnya, jika yang Anda miliki adalah PDF yang hanya membungkus serangkaian bitmap, pdfimagesakan melakukan pekerjaan yang jauh lebih baik untuk mengekstraksinya, karena itu memberi Anda data mentah pada ukuran aslinya. Anda mungkin juga ingin menggunakan -jopsi ini pdfimages, karena PDF dapat berisi data JPEG mentah. Secara default, pdfimagesmengonversikan semuanya ke format PNM, dan mengonversi JPEG> PPM> JPEG adalah proses yang hilang.

Jadi, cobalah

pdfimages -j file.pdf page

Anda mungkin atau mungkin tidak perlu mengikuti dengan convertke .jpglangkah (tergantung pada apa bitmap memformat PDF itu menggunakan).

Saya mencoba perintah ini pada PDF yang saya buat sendiri dari serangkaian gambar JPEG. JPEG yang diekstraksi adalah byte-untuk-byte yang identik dengan gambar sumber. Anda tidak bisa mendapatkan kualitas yang lebih tinggi dari itu.

Anmol Singh Jaggi
sumber
8

Jika pdf Anda dipindai, gambar sudah disimpan sebagai bagian dari pdf. Anda hanya perlu mengekstraknya dengan pdfimages:

pdfimages my-file.pdf prefix 
VitoshKa
sumber
2
Ini adalah solusi sempurna untuk pdf yang dipindai, karena dengan ini Anda dapat, dengan satu perintah, mengekstrak jpg asli, dan tanpa kompresi ulang lebih lanjut.
Jose Gómez
3

Untuk mendapatkan satu halaman dari konversi gm, tambahkan [N] (dengan N nomor halaman mulai dari 0) ke nama PDF, yaitu gm convert foo.pdf[11] out.pnguntuk mendapatkan halaman ke-12 dari PDF.

Untuk pdftoppmdigunakan -f N -singlefile, dengan N adalah nomor halaman mulai dari 1, yaitu pdftoppm -f 12 -singlefile foo.pdf outuntuk hasil yang sama. Tampaknya selalu menambahkan ".png" ke nama file keluaran dan tidak ada cara untuk menghentikan ini.

pengguna3080602
sumber
2

Anda dapat menggunakan konversi dan tentukan -densityopsi penggunaan kepadatan yang lebih tinggi .

misalnya. convert -d 300 foo.pdf bar.png

Arjun
sumber
dapatkah Anda menjelaskan lebih lanjut tentang apa itu kepadatan dan apa yang dapat dilakukannya?
rɑːd14
1
@ AgentCool Menentukan kepadatan gambar horizontal dan vertikal (dalam ppi).
Arjun
2

Jika Anda hanya ingin mengonversi halaman tertentu dari PDF ke PNG, Anda dapat melakukan pipe pdftkke convert( dijelaskan di atas ) seperti ini:

pdftk document.pdf cat 12 output - | convert - document-page-12.png
IQAndreas
sumber
1

Master PDF Editor (ver 2.2) memiliki opsi ini masuk. Buka file PDF dan kemudian pergi ke File> Ekspor ke> Gambar. Ini menyajikan dialog di mana Anda dapat menentukan berbagai opsi untuk output. Sangat bermanfaat. Semoga info ini membantu.

Buru-buru
sumber
Apakah itu dalam versi gratis atau berbayar? Dalam versi saya, opsi ini diklik? Apakah itu berarti saya harus membayar? Apakah ada versi berbayar?
Joshua Robison
0

PDF Mod juga memungkinkan mengekspor gambar dari semua halaman file PDF.

  • Buka file PDF dalam PDF Mod
  • Pilih halaman -
  • Edit> Ekspor gambar
nhylated
sumber