PDF 파일을 폴더로 병합하고 PDF 파일 이름을 북마크로 사용하는 쉘 스크립트

PDF 파일을 폴더로 병합하고 PDF 파일 이름을 북마크로 사용하는 쉘 스크립트

직원 이름과 해당 문서가 PDF 형식으로 포함된 일련의 폴더가 있습니다. PDF 문서가 PDF 파일의 북마크로 색인화되는 PDF 파일을 병합하고 생성하고 싶습니다.

PDFTK를 사용하여 폴더의 PDF를 병합하려고 하지만 출력이 북마크에 추가되지 않습니다.

답변1

이 목적을 위해 스크립트를 만들었습니다. .pdfheredoc를 수정하여 확장을 유지하도록 선택할 수 있습니다 .

#!/usr/bin/env zsh

pages=1
bookmarks="bookmarks.txt"
tmp_pdf="tmp.pdf"

if [ -f $bookmarks ]; then
    read -p "Do you want to overwrite the bookmarks file? [y/N] " -n 1 -r
    if [[ $REPLY =~ ^[Yy]$ ]]; then
        rm $bookmarks
    else
        echo "Aborting..."
        exit 1
    fi
fi

for pdf in *.pdf; do
    cat <<- EOF >> $bookmarks
    BookmarkBegin
    BookmarkTitle: ${pdf%.pdf}
    BookmarkLevel: 1
    BookmarkPageNumber: $pages
    EOF
    page_number=$(pdftk $pdf dump_data | rg 'NumberOfPages: ' | awk '{print $2}')
    pages=$(($pages + $page_number))
done

pdftk *.pdf cat output $tmp_pdf
pdftk $tmp_pdf update_info $bookmarks output final.pdf

rm -f $tmp_pdf
rm -f $bookmarks

아이디어는 다음과 같습니다.

  • 북마크가 포함된 pdftk 정보 파일 만들기
  • pdftk cat을 호출하여 연결하세요.
  • 북마크를 추가하려면 updateinfo를 호출하세요.
  • 임시 파일을 삭제하고 완료합니다.

관련 정보