Pertanyaan Bagaimana saya bisa mengurangi ukuran file dari file PDF yang dipindai?


Saya memiliki file PDF 72,9MB yang saya perlu menyusut ke bawah 500KB.

File itu adalah gambar JPEG yang telah saya pindai, dan kemudian dikonversi ke pdf.


294
2018-03-16 17:12


asal


itu tergantung pada apa yang memakan ruang ... butuh lebih banyak informasi. mengompresi ruang gambar dapat membantu, tetapi jika Anda mencoba semprotan tumpukan file besar, itu tidak akan berfungsi. serius perlu info lebih lanjut. - RobotHumans
mengkonversinya ke DjVu, alih-alih mencoba untuk mengurangi ke ukuran PDF yang mustahil (menurut sumber) - zetah
file adalah gambar jpeg yang saya pindai, dan kemudian dikonversi ke pdf. - tamimym
Tampaknya hanya sedikit yang bisa membantu, tetapi pdfopt memiliki sintaks yang sederhana dan meningkatkan kecepatan loading dan page-turning di era iPad. :-) - Ari B. Friedman
PDF ke PS tidak efektif dalam file PDF yang dipindai, saya mencoba untuk mengkonversi 56 MB pdf ke file ps tetapi file ps diubah menjadi 1.3 GB dan lagi ps2pdf diubah dalam file 45 MB


Jawaban:


aking1012 benar. Dengan informasi lebih lanjut mengenai gambar yang mungkin tertanam, hyperlink dll. Akan jauh lebih mudah untuk menjawab pertanyaan ini!

Berikut adalah beberapa solusi script dan command-line. Gunakan sesuai keinginan Anda.


119
2018-03-16 17:28



Terima kasih banyak atas saran Anda, shell ghostscript bekerja keajaiban dan menyusut ke 460KB :) - tamimym
Itu tidak sepenuhnya benar. Jika konten beralih dari satu gambar ke teks, itu lebih dari sekadar bisa dipahami. [Itu mengasumsikan bahwa teks itu secara akurat dipercaya] - monksy
Saya sarankan Anda skrip shrinkpdf.sh, Anda dapat menyesuaikan kode untuk menggunakan nilai ppi yang Anda inginkan (72 secara default) dan mencapai fileisasi yang Anda butuhkan untuk mengorbankan kualitas paling rendah. Ini membuat saya dapat mengunggah dokumen pindaian sebesar 11 MB dengan ukuran 3 MB tanpa kehilangan banyak kualitas. - Severo Raz
shrinkpdf bekerja dengan baik! - AmanicA
Tautan pertama, dengan pengaturan "/ ebook", mengurangi file yang dipindai menjadi 20 MB menjadi 4,2 MB dan teks yang dipindai tetap dapat dibaca. - dremodaris


Gunakan yang berikut ini ghostscript perintah:

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf input.pdf
  • -dPDFSETTINGS=/screen kualitas lebih rendah, ukuran lebih kecil. (72 dpi)
  • -dPDFSETTINGS=/ebook untuk kualitas yang lebih baik, tetapi pdfs sedikit lebih besar. (150 dpi)
  • -dPDFSETTINGS=/prepress output mirip dengan pengaturan Acrobat Distiller "Prepress Optimized" (300 dpi)
  • -dPDFSETTINGS=/printer memilih output yang mirip dengan pengaturan Acrobat Distiller "Print Optimized" (300 dpi)
  • -dPDFSETTINGS=/default memilih output yang dimaksudkan untuk berguna di berbagai macam penggunaan, mungkin dengan mengorbankan file output yang lebih besar

406
2018-02-15 13:53



Anda juga dapat membuat skrip Nautilus untuk mengakses fungsi ini untuk setiap file. - Sina
Ini harus menjadi jawaban yang diterima. ghostscript adalah itu Implementasi PDF, XPS, dan PS untuk berbagai jenis dan pada dasarnya dapat melakukan semuanya dengan kualitas terbaik ... - dom0
@Sina: Sebenarnya ada Script Nautilus dengan GUI sederhana berbasis Zenity yang menggunakan perintah gs ini dengan semua opsi tingkat kualitasnya: launchpad.net/compress-pdf - Sadi
Ini adalah jawaban yang tepat untuk pertanyaan ini (mengompresi pdf yang sebagian besar adalah data bitmap). Saya menemukan bahwa screen pengaturan terlalu rendah untuk saya, tapi ebook bekerja dengan baik, memotong PDF scan berbasis 33Mb ke 3.6Mb, dan membuatnya sangat mudah dibaca. Pilihan lain untuk -dPDFSETTINGS pilihan tercantum di sini: milan.kupcevic.net/ghostscript-ps-pdf, dan mungkin ada baiknya untuk memasukkan mereka dalam jawaban ini. - naught101
gs parameter konfigurasi yang tersedia: ghostscript.com/doc/current/Ps2pdf.htm - Antonios Hadjigeorgalis


Cara favorit saya untuk melakukan ini adalah mengubah pdf menjadi ps dan kembali. Itu tidak selalu berhasil, tetapi saat bekerja hasilnya bagus:

ps2pdf input.pdf output.pdf

Ini juga langsung bekerja di pdf, seperti yang disarankan di komentar.


123
2018-01-16 09:18



Ini adalah cara yang sangat sederhana dan efektif untuk melakukannya. Saya terkejut melihat seberapa banyak metode ini mengompresi file. Terimakasih! - Gabriel
Terlepas dari kenyataan bahwa pendekatan yang satu ini menjadi solusi favorit saya untuk memampatkan file pdf, itu memecah tautan url yang mungkin dimiliki dokumen (yang tidak terjadi dengan pendekatan @Michael D). Selain itu, kedahsyatan adalah semua yang bisa kupikirkan menjalankan cuplikan ini! (: - Rubens
@Rubens Ah. Tidak tahu tentang fakta bahwa itu merusak tautan url. Terima kasih sudah menambahkannya. - don.joey
Ini melewati perlindungan kata sandi ... katakan saja - jojo
ps2pdf akan mengambil pdf sebagai input, sehingga Anda dapat melakukan ini dalam satu langkah: ps2pdf intput.pdf output.pdf - frabjous


Jika Anda punya pdf dengan gambar yang dipindai, Kamu dapat memakai convert untuk membuat pdf dengan kompresi jpeg (Anda dapat menggunakan metode ini pada pdf apa pun, tetapi Anda akan kehilangan semua informasi teks).

Sebagai contoh:

convert -density 200x200 -quality 60 -compress jpeg input.pdf output.pdf

Menyesuaikan massa jenis (mis. 100x100) dan kualitas untuk kebutuhan anda.

Tergantung pada jpeg masukan Anda kompresi mungkin bukan pilihan terbaik karena artefak kompresi. Anda memiliki pilihan antara BZip, Fax, Group4, JPEG, JPEG2000, Lossless, LZW, RLE atau Zip sebagai metode kompresi alternatif (beberapa hanya mengizinkan gambar b / w). Untuk detailnya lihat sini.

Saya dapat mencapai rasio kompresi yang bagus untuk dokumen yang dipindai / difoto (tergantung pada pengaturan). Tergantung pada sumber dokumen, Anda mungkin ingin mengurangi kedalaman warna (-depth argumen).


105
2018-05-19 17:39



Untuk dokumen yang dipindai di mana teks adalah apa yang Anda minati ketimbang gambar dan kedalaman pelestarian bukanlah masalah, kompresi jpeg bukan ide yang baik karena artefak cenderung sangat terlihat. Jika Anda menggunakan pdfimages input.pdf pages untuk mengekstrak file pbm, maka Anda dapat melakukan sesuatu seperti: for page in *.pbm; do convert $page -compress Group4 -type bilevel TIFF:- | convert - output.pdf. OCR apa pun akan hilang sehingga biasanya saya lakukan pdfsandwich output.pdf, yang tampaknya mengurangi ukuran file lebih jauh. - Brian Z
@BrianZ yakin kompresi jpeg tidak selalu merupakan pilihan terbaik, tetapi bagi saya itu adalah pendekatan terbaik untuk dokumen tipe campuran. Saya menambahkan beberapa informasi tentang metode kompresi lain untuk jawabannya. - someonr
Metode ini akhirnya menggunakan gs dibalik layar. - alfC
Saya harus menggunakan dash ganda untuk opsi menjalankan perintah --density --quality --compress vs -density -quality -compress. - Rotareti
Jika qaulity gambar bukan masalah tertinggi (dan Anda hanya ingin mendapatkan lampiran email dang yang cukup kecil untuk dikirim), orang dapat menambahkan -resize 50% juga, ubah persentase tergantung pada seberapa banyak DPI digunakan saat memindai - chrki


Saya perlu mengecilkan PDF yang berisi pindaian berwarna penuh dokumen. Masing-masing halaman saya adalah gambar berwarna penuh sejauh menyangkut file itu. Mereka adalah gambar halaman yang berisi teks dan gambar, tetapi mereka diciptakan dengan memindai ke gambar.

Saya menggunakan kombinasi perintah ghostscript di bawah dan satu lagi dari utas lainnya.

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dDownsampleColorImages=true \
-dColorImageResolution=150 -dNOPAUSE  -dBATCH -sOutputFile=output.pdf input.pdf

Ini mengurangi resolusi gambar menjadi 150dpi, memotong ukuran file saya menjadi dua. Melihat dokumen itu, hampir tidak ada kehilangan kualitas gambar. Teks masih dapat dibaca dengan sempurna pada Nexus7 2012 saya.


30
2018-01-19 06:25



+1 untuk pengambilan gambar di bawah tetapi menyimpan teks sebagai vektor. Membuat perbedaan besar di sisi tanpa membuat teks saya menjadi pixel. - Jason O'Neil


Ini skripnya untuk menulis ulang pdf yang dipindai:

#!/bin/sh

gs  -q -dNOPAUSE -dBATCH -dSAFER \
    -sDEVICE=pdfwrite \
    -dCompatibilityLevel=1.3 \
    -dPDFSETTINGS=/screen \
    -dEmbedAllFonts=true \
    -dSubsetFonts=true \
    -dColorImageDownsampleType=/Bicubic \
    -dColorImageResolution=72 \
    -dGrayImageDownsampleType=/Bicubic \
    -dGrayImageResolution=72 \
    -dMonoImageDownsampleType=/Bicubic \
    -dMonoImageResolution=72 \
    -sOutputFile=out.pdf \
     $1

Anda dapat menyesuaikannya sedikit untuk membuatnya lebih dapat digunakan kembali tetapi jika Anda hanya memiliki satu pdf, Anda bisa mengganti $1 dengan nama file pdf Anda dan bung itu di terminal.


24
2017-08-31 20:29



Bekerja mengobati, terima kasih Oli. Anda telah menjawab hampir semua yang saya tanyakan di sini sejauh ini :-D - Rob Cowell
Ini adalah jawaban yang bagus tetapi dalam kasus saya, paling tidak, dibutuhkan a banyak waktu untuk mengkonversi file PDF yang agak besar (> 10Mb) (lebih dari satu menit). - Gabriel
Saya tidak yakin apa yang terjadi, tetapi hasil PDF 30 MB menghasilkan 68 MB file. Alih-alih mengurangi, itu membesar. Output yang sama jika menggunakan ps2pdf langsung sebagaimana dinyatakan dalam jawaban berikutnya. - Ed Villegas
@EdVillegas Satu-satunya hal yang dapat saya pikirkan (untuk menjelaskan peningkatan semacam itu) adalah bahwa gambar memiliki resolusi yang lebih rendah daripada gambar yang dihasilkan (72dpi). Atau entah bagaimana melekatkan font yang sedang diisap semua font-nya. - Oli♦


Saya biasanya menggunakan ps2pdf untuk melakukan ini (lebih mudah sintaks), sesuatu seperti ini:

ps2pdf -dPDFSETTINGS=/ebook BiggerPdf SmallerPDF

Saya menggunakan skrip python berikut untuk mengurangi ukuran semua file pdf dalam dir dalam server produksi (8.04). Jadi seharusnya berhasil.

#!/usr/bin/python

import os

for fich in os.listdir('.'):
        if fich[-3:]=="pdf":
                os.system("ps2pdf -dPDFSETTINGS=/ebook %s reduc/%s" % (fich,fich))

15
2017-09-01 07:26



Terima kasih atas solusi alternatifnya. Saya mencoba Oli pertama dan itu memberi saya hasil yang saya butuhkan, tetapi saya akan menyimpan yang ini untuk referensi di masa mendatang juga. - Rob Cowell
-dPDFSETTINGS = / opsi printer melakukan 50% resize. ebook melakukan 90% mengubah ukuran. - neouyghur


  1. saya menggunakan LibreOffice Draw untuk membuka pdf.
  2. Saya kemudian "ekspor sebagai pdf"
  3. Dan atur "kualitas kompresi jpeg" menjadi 50% dan "resolusi gambar" menjadi 150 dpi

Ini akan memiliki hasil yang bagus.


13
2018-06-14 09:59



Solusi terburuk yang mungkin untuk masalah ini! Itu benar-benar mengacaukan file saya! - ThatIs