Giảm kích thước tệp PDF


18

Tôi đã chụp một số bức ảnh và tạo một tệp PDF khổng lồ trên Omnigraffle (OSX).

Bây giờ tôi cần gửi email bản PDF đó, nhưng vì mỗi bức ảnh là 5 MB, nên tệp rất lớn. Tôi không cần những bức ảnh độ phân giải cao khi tôi gửi email.

Vì vậy, chương trình nào sẽ đưa PDF của tôi, thay đổi kích thước tất cả các hình ảnh thành độ phân giải thấp và lưu nó?

Câu trả lời:


23

Mở tệp PDF trong Bản xem trước, Chọn tệp »Lưu dưới dạng tên lửa và chọn Bộ lọc thạch anh có tên Giảm kích thước tệp .

nhập mô tả hình ảnh ở đây


Sử dụng tiện ích ColorSync để tinh chỉnh bộ lọc. Nhân đôi Giảm kích thước tệp và thay đổi cài đặt sau đó.

Tôi khuyên bạn trước tiên hãy thử xóa tất cả các giá trị khỏi khối Lấy mẫu hình ảnh , ngoại trừ Độ phân giải , khoảng 150-300 DPI, tùy thuộc vào mức độ bạn muốn lưu.

nhập mô tả hình ảnh ở đây


Bạn tìm thấy tiện ích ColorSync ở đâu?
Karlo

1
@Karlo Thư mục tiện ích.
Daniel Beck

10

Lấy cảm hứng từ Max Glenister & Milan Kupcevic , Nhờ Burgi, giải thích về kịch bản ví dụ: Nó giảm kích thước PDF từ Massive sang Small bằng bộ lọc 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

Tùy chọn 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)

Bạn có thể làm rõ những gì kịch bản của bạn thực sự làm?
Burgi

Nó giảm kích thước PDF từ Massive xuống Small bằng bộ lọc ebook:
Mickaël

Bạn có thể bao gồm thông tin đó trong câu trả lời của bạn? Xin vui lòng xem Làm thế nào để trả lời và đi tour của chúng tôi .
Burgi

Tôi thích các kịch bản tự giải thích, nhưng vì bạn không nghĩ rằng nó đủ, những gì bạn yêu cầu đã được thực hiện.
Mickaël

1
Dưới đây một chút (và tốt nhất) giải thích nó ...
Abdel Karim Mateos Sanchez

1

Tôi không biết một chương trình sẽ làm những gì bạn muốn, nhưng một giải pháp thay thế để tạo ra kết quả cuối cùng sẽ là nén hình ảnh bằng chương trình đồ họa trước, sau đó đưa chúng vào tài liệu và chuyển đổi nó thành PDF.


0

Cảm ơn bạn @ Mickaël, vì giải pháp tuyệt vời của bạn,

Tôi đã tạo một cải tiến nhỏ để kiểm soát trang chia tách -> hành động mặc định và một số ví dụ cho công cụ - https://github.com/Elia-Sh/toolsAndUtils/blob/master/pdfSplit.sh

lưu các tập tin -

#!/bin/bash

# inspired by: 
#   https://superuser.com/questions/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 $?
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.