Mengurangi ukuran File PDF

21

Saya mengambil beberapa foto dan membuat PDF besar di Omnigraffle (OSX).

Sekarang saya perlu mengirim email ke PDF itu, tetapi karena setiap foto berukuran 5MB, filenya sangat besar. Saya tidak membutuhkan foto beresolusi tinggi ketika saya mengirim email.

Jadi program apa yang akan mengambil PDF saya, mengubah ukuran semua gambar ke resolusi rendah dan menyimpannya?

kaca
sumber

Jawaban:

24

Buka PDF dalam Pratinjau, Pilih File »Simpan sebagai ... , dan pilih Filter Kuarsa bernama Kurangi Ukuran File .

masukkan deskripsi gambar di sini


Gunakan ColorSync Utility untuk menyempurnakan filter. Gandakan Kurangi Ukuran File dan ubah pengaturan sesudahnya.

Saya sarankan Anda pertama kali mencoba membersihkan semua nilai dari blok Pengambilan Gambar , kecuali Resolusi , yang seharusnya sekitar 150-300 DPI, tergantung pada seberapa banyak Anda ingin menyimpan.

masukkan deskripsi gambar di sini

Daniel Beck
sumber
Di mana Anda menemukan Utilitas ColorSync?
Karlo
1
Folder @Karlo Utilities.
Daniel Beck
11

Terinspirasi dari Max Glenister & Milan Kupcevic , Terima kasih kepada Burgi, penjelasan contoh script: Ini mengurangi ukuran PDF dari Massive ke Small menggunakan filter ebook

brew install ghostscript # aptitude work too if you do not have brew

compresspdf() {
    echo 'Usage: compresspdf [input file] [output file] [screen|ebook|printer|prepress]'
    gs -sDEVICE=pdfwrite -dNOPAUSE -dQUIET -dBATCH -dPDFSETTINGS=/${3:-"screen"} -dCompatibilityLevel=1.4 -sOutputFile="$2" "$1"
}

compresspdf "Massive.pdf" "Small.pdf" ebook

Opsi Gs:

-dPDFSETTINGS=/screen   (screen-view-only quality, 72 dpi images)
-dPDFSETTINGS=/ebook    (low quality, 150 dpi images)
-dPDFSETTINGS=/printer  (high quality, 300 dpi images)
-dPDFSETTINGS=/prepress (high quality, color preserving, 300 dpi imgs)
-dPDFSETTINGS=/default  (almost identical to /screen)
Mickaël
sumber
Bisakah Anda mengklarifikasi apa yang sebenarnya dilakukan skrip Anda?
Burgi
Ini mengurangi ukuran PDF dari Massive ke Small menggunakan filter ebook:
Mickaël
Bisakah Anda memasukkan informasi itu dalam jawaban Anda? Silakan lihat Cara Menjawab dan ikuti tur kami .
Burgi
Saya lebih suka skrip yang bisa dijelaskan sendiri, tetapi karena Anda merasa itu tidak cukup, apa yang Anda minta telah dilakukan.
Mickaël
1
Di sini sedikit (dan yang terbaik) jelaskan ...
Abdel Karim Mateos Sanchez
1

Saya tidak tahu program yang akan melakukan apa yang Anda inginkan, tetapi alternatif untuk menghasilkan hasil akhir yang sama adalah mengompres gambar dengan program grafis terlebih dahulu, dan kemudian memasukkannya ke dalam dokumen dan mengubahnya menjadi PDF.

goblinbox
sumber
0

Terima kasih @ Mickaël, untuk solusi hebat Anda,

Saya telah membuat perbaikan kecil untuk mengontrol halaman pemisahan -> tindakan default, dan beberapa contoh untuk alat ini - https://github.com/Elia-Sh/toolsAndUtils/blob/master/pdfSplit.sh

simpan file -

#!/bin/bash

# inspired by: 
#   /superuser/293856/reducing-pdf-file-size
#   https://www.ghostscript.com/doc/current/Use.htm#File_output

usage() {
    cat<<EOF
Usage:
    ${0} <input file> <output file> [screen|ebook|printer|prepress]

EOF
}
# Examples:
# Note: Ghostscript must be installed on your system
# Note that <n> represents the number of pages in the original document;

#     * Only split file to pages; no range available -
#         \$ ${0} someFile.pdf
#       will create the following single page files:
#         someFile_page_0001.pdf, someFile_page_0002.pdf someFile_page_0003.pdf, someFile_page_000<n>.pdf

#     * Split page to custom output file name -
#         \$ ${0} someFile.pdf newFileName_pageNumer_%2d.pdf
#       will create the following single page files:
#         newFileName_pageNumer_01.pdf, newFileName_pageNumer_02.pdf, newFileName_pageNumer_03.pdf, newFileName_pageNumer_0<n>.pdf

#     * Only reduce quality of pdf file !without! splitting -
#         \$ ${0} someFile.pdf newFileName.pdf ebook
#       will create the following single file: newFileName.pdf with reduced quality

#     * Reduce quality !and! split pdf to single pages -
#         \$ ${0} someFile.pdf newFileName_%2d.pdf ebook
#       will create the following single page files, with lower qualuty
#         newFileName_page_01.pdf, newFileName_page_02.pdf, newFileName_page_03.pdf, newFileName_page_0<n>.pdf

### main ###
DEFAULT_QUALITY="printer"
numberOfArguments=$#

case $numberOfArguments in
    1)
        # only split the file
        fileNameInput=$1
        fileNameOutput="${fileNameInput}_page_%04d.pdf"
        pdfSettings=$DEFAULT_QUALITY
        ;;
    2)
        # user supplied input and output files
        fileNameInput=$1
        fileNameOutput=$2
        pdfSettings=$DEFAULT_QUALITY
        ;;
    3)
        # user supplied input and output files
        fileNameInput=$1
        fileNameOutput=$2
        pdfSettings=$3
        ;;
    *)
    # incorrect syntax print usage and exit
        echo "Error: Illegal number of parameters."
        usage
        exit 1
    ;;
  esac

if [[ ! -f $fileNameInput ]]; then
    echo "Error: ${fileNameInput} not found!"
    exit 2
fi

if ! which gs > /dev/null 2>&1; then
    echo "Error: Looks like the Ghostscript package is not installed on your system."
    exit 3
fi

cmdToExecute="gs -sDEVICE=pdfwrite -dNOPAUSE -dQUIET -dBATCH \
    -dPDFSETTINGS=/$pdfSettings -dCompatibilityLevel=1.4 \
    -sOutputFile=$fileNameOutput $fileNameInput"

echo -e "Executing:\n    "$cmdToExecute

$cmdToExecute
# finish script with the return code from gs command
exit $?
Elia
sumber