如何将图像的子文件夹批量转换为单个 PDF?

如何将图像的子文件夹批量转换为单个 PDF?

我很惊讶我在网上找不到一个简单的脚本。我有一个目录,里面有很多子目录,每个子目录都充满了 TIFF。我如何批量将多个图像(TIFF)的子文件夹转换为单个 PDF,每个 PDF 都以其父文件夹命名?CLI 解决方案和设置首选输出目录的能力

前任。
dir > 1998 > Jan011998 > 1.tif 2.tif ... → Jan011998.pdf (or, ideally, 1998-01.pdf)
dir > 1999 > 02231999 > 1.tif 2.tif ... → Feb231999.pdf (or 1999-02-23.pdf)

答案1

这是一个可以解决问题的小脚本:

#!/bin/bash

dirs=$(find . -type f -name "*.tiff" | xargs dirname |sort -u)

for d in $dirs; do
    #ls $d/*.tiff  # just debug info, should list all desired tiffs
    #echo $(cut -d/ -f3 <<<$d)  # debug info, should be desired output file name
    convert $d/*.tiff $(cut -d/ -f3 <<<$d).pdf

done

首先,find用于确定包含 TIFF 文件的所有目录。然后我们使用 ImageMagickconvert将每个目录中的所有 TIFF 转换为 PDF 文件,其名称由目录创建。您可以轻松包含不同的输出目录:

    convert $d/*.tiff somewhereElse/$(cut -d/ -f3 <<<$d).pdf

答案2

pdftk(PDF 工具包)程序允许您将多个 PDF 文件合并为一个大的输出 pdf 文件。

$ pdftk in1.pdf in2.pdf in3.pdf cat output big_out.pdf

相关内容