...
enscript와 pdftk로 PDF의 머릿글과 페이지 번호를 추가하기
...
(주의) 한글(korean) 머릿글은 지원하지 않는다
WHY?
HWP는 일괄병합 기능을 지원하지 않는다.
80개 제안서를 일일이 합치고 쪽번호를 매기는 작업은 심히 괴롭다.
PDF로 바꿔서 CLI로 작업하는게 정신건강에 이롭다.
예제 상황
4개의 제안서를 받아 평가용 책자를 만드는 예제
...
코드 블럭 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
INPUT=$1 HEADER=$2 echo IN : $INPUT echo OUT : $HEADER.pdf pdftk $INPUT output tmp.pdf number_of_pages=$(pdftk tmp.pdf$INPUT dump_data | grep NumberOfPages | sed 's/NumberOfPages: //g') (for i in $(seq if [ $(($number_of_pages % 2)) -eq 1 ]; then pdftk $INPUT a4.pdf cat output tmp.pdf number_of_pages=$(($number_of_pages); do echo; done) +1)) else pdftk $INPUT output tmp.pdf fi echo | \ enscript -F Times-Roman20 --fancy-header=footer -L1 -b"|$HEADER|" --footer '||' -o- | \ ps2pdfps2pdfwr - | \> stamp.pdf pdftk "tmp.pdf" multistampstamp -stamp.pdf output "$HEADER.pdfstamp-$INPUT" rm#rm tmp.pdf stamp.pdf |
코드 블럭 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
INPUT=$1 OUTPUT=$(echo $1 | sed 's/.pdf$//g')-numbered.pdf echo IN : $INPUT echo OUT : $OUTPUT pdftk $INPUT output tmp.pdf number_of_pages=$(pdftk tmp.pdf$IN dump_data | grep NumberOfPages | sed 's/NumberOfPages: //g') (for i in $(seq $number_of_pages); do echo; done) | \ enscript -F Times-Roman12 --fancy-header=footer -L1 -b"||" --footer '|$%|' -o- | \ ps2pdf - | \> stamp.pdf pdftk "tmp.pdf"$IN multistamp -stamp.pdf output "$OUTPUT" rm#rm tmpstamp.pdf |
스크립트 실행
코드 블럭 | ||||||
---|---|---|---|---|---|---|
| ||||||
$ ./add-header.sh RFP-AS-01-AAA.pdf "2020-AS-01" OUT : 2020-AS-01.pdf $ ./add-header.sh RFP-AS-02-BBB.pdf "2020-AS-02" OUT : 2020-AS-02.pdf $ ./add-header.sh RFP-CW-01-CCC.pdf "2020-CW-01" OUT : 2020-CW-01.pdf $ ./add-header.sh RFP-AS-02-DDD.pdf "2020-CW-02" OUT : 2020-CW-02.pdf $ pdftk `ls 2020-AS-*.pdf |sort` cat output RFP-AS.pdf $ pdftk `ls 2020-CW-*.pdf |sort` cat output RFP-AS.pdf $ pdftk RFP-AS.pdf RFP-CW.pdf cat output RFP.pdf $ ./add-pagenum.sh RFP.pdf OUT : RFP-numbered.pdf |
...