在Linux中压缩多个pdf的文件夹

在Linux中压缩多个pdf的文件夹

我想减少硬盘上不必要的数据,所以我想缩小一些pdf。

对于我来说,使用命令行界面处理所有这些 pdf 会很困难,对吗?

是否有一个好的解决方案可以减少一个文件夹中的所有 pdf?

谢谢。

答案1

您可以使用 ghostscript 来实现这一点。

apt-get install ghostscript

然后,使用 ghostscript 来减少文件空间。

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/prepress \
    -dNOPAUSE -dQUIET -dBATCH -sOutputFile=compressed_file.pdf original_file.pdf

要对文件夹中的所有 PDF 文件执行此操作,请执行以下操作:

for file in *pdf; do
    gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/prepress \
    -dNOPAUSE -dQUIET -dBATCH \
        -sOutputFile="compressed_${file}" -- "$file"
done

或者,也递归到子目录:

shopt -s globstar 
for file in **/*pdf; do 
    gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/prepress \
    -dNOPAUSE -dQUIET \
        -dBATCH -sOutputFile="${file//.pdf/_compressed.pdf}" -- "$file"
done

最后,压缩后删除文件(但在确保该命令适合您之前请不要运行此命令):

shopt -s globstar 
for file in **/*pdf; do 
    gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/prepress \
        -dNOPAUSE -dQUIET -dBATCH \
            -sOutputFile="${file//.pdf/_compressed.pdf}" -- "$file" &&
    rm -- "$file"
done

--为了确保这个功能即使在以 开头的文件名上也能正常工作-,请参阅https://askubuntu.com/a/794014/85695

相关内容