📌  相关文章
📜  pdf 大小减小 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 14:45:06.757000             🧑  作者: Mango

Shell-Bash:压缩 PDF 文件大小

在程序开发中,PDF 文件通常被用于文档的共享和传递。但是,随着 PDF 文件的增多,它们的大小也会随之增加,导致传输时间增加和存储空间减少。为了解决这个问题,我们可以使用 Shell-Bash 脚本压缩 PDF 文件大小。

第一步:安装 Ghostscript

要使用 Shell-Bash 压缩 PDF 文件大小,我们需要安装 Ghostscript。Ghostscript 是一种用于处理 PDF 文件的开源库。你可以使用以下命令在 Linux 上安装 Ghostscript:

sudo apt-get install ghostscript
第二步:创建 Shell-Bash 脚本

创建一个名为 "compress-pdf.sh" 的 Shell-Bash 脚本文件,输入以下内容:

#!/bin/bash
# 压缩 PDF 文件大小
# 使用 Ghostscript 压缩

# 输入参数检查,必须输入文件名和压缩比率
if [[ $# -ne 2 ]]; then
    echo "Usage: `basename $0` input_file output_file[compress_ratio]"
    echo "compress_ratio: 0-100"
    exit 1
fi

# 检查输入的文件参数是否正确
if [[ ! -f "$1" || ! "${1##*.}" == "pdf" ]]; then
    echo "error: incorrect input format"
    exit 1
fi

# 默认的压缩比率为 80
ratio=${2:-80}

# 输出的文件名
output_file=${1%.pdf}-compressed.pdf

# 通过 Ghostscript 压缩 PDF 文件
gs -q -dNOPAUSE -dBATCH -dSAFER \
   -sDEVICE=pdfwrite \
   -dCompatibilityLevel=1.3 \
   -dPDFSETTINGS=/screen \
   -dEmbedAllFonts=true \
   -dSubsetFonts=true \
   -dColorImageDownsampleType=/Bicubic \
   -dColorImageResolution=$ratio \
   -dGrayImageDownsampleType=/Bicubic \
   -dGrayImageResolution=$ratio \
   -dMonoImageDownsampleType=/Bicubic \
   -dMonoImageResolution=$ratio \
   -sOutputFile="$output_file" \
   "$1"

echo "compressed file created: $output_file"

这个脚本接受两个参数:输入文件名和压缩比率。如果没有提供压缩比率,默认为 80。该脚本使用 Ghostscript 压缩 PDF 文件的大小,并将压缩后的文件保存为新文件。

第三步:运行脚本

在终端中为脚本授予权限:

chmod +x compress-pdf.sh

使用以下命令运行脚本:

./compress-pdf.sh input_file.pdf output_file.pdf [compress_ratio]

其中,"input_file.pdf" 是你要压缩的 PDF 文件名,"output_file.pdf" 是压缩后的 PDF 文件名,"compress_ratio" 是可选的压缩比率参数(0-100)。

总结

使用 Shell-Bash 脚本和 Ghostscript,我们可以轻松地压缩 PDF 文件大小。这对于需要共享或传递 PDF 文件的开发人员来说,是非常有用的技能。