从命令行按关键字拆分 pdf

从命令行按关键字拆分 pdf

如何使用关键字作为分割 pdf 的指示符将一个 pdf 分割成多个 pdf?为了命名生成的 pdf,我只想使用一个列出目标文件名的文件。

答案1

也许是这样的:

#!/bin/bash

keyword="MyKeyword"

pdftotext $1 - | awk -vRS=$'\f' -vNAME=$keyword 'index($0,NAME){printf "%d\n", NR;}' > $1_index


## Generate ranges
prev=
paste $1_index | while read line
do
    if [ ! -z "${prev}" ];then
        line1="${prev}"
        line2="$((${line} -1))"
        echo "${line1}-${line2}"
    fi
    prev="${line}"
done > $1_ranges

## Split pdf
paste $1_ranges Names.dat | while read line1 line2;
do
    echo "pdftk $1 cat $line1 output $line2.pdf"
    pdftk $1 cat $line1 output $line2.pdf
done

## Handle last page
lastPage=$(tail -n 1 $1_index)
lastName=$(tail -n 1 Names.dat)

echo "pdftk $1 cat $lastPage-end output $lastName.pdf"
pdftk $1 cat $lastPage-end output $lastName.pdf

至少如果段与文件名的数量匹配,它应该可以工作。

相关内容