버전 비교

  • 이 줄이 추가되었습니다.
  • 이 줄이 삭제되었습니다.
  • 서식이 변경되었습니다.

...

enscript와 pdftk로 PDF의 머릿글과 페이지 번호를 추가하기

...

(주의) 한글(korean) 머릿글은 지원하지 않는다

WHY?

HWP는 일괄병합 기능을 지원하지 않는다.
80개 제안서를 일일이 합치고 쪽번호를 매기는 작업은 심히 괴롭다.
PDF로 바꿔서 CLI로 작업하는게 정신건강에 이롭다.

예제 상황

4개의 제안서를 받아 평가용 책자를 만드는 예제

...

코드 블럭
languagebash
themeEmacs
titleadd-header.sh
linenumberstrue
collapsetrue
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


코드 블럭
languagebash
themeEmacs
titleadd-pagenum.sh
linenumberstrue
collapsetrue
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
  


스크립트 실행

코드 블럭
languagebash
themeEmacs
linenumberstrue
$ ./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

...