문서 취합 및 쪽번호 매기기 자동화
enscript와 pdftk로 PDF의 머릿글과 페이지 번호를 추가하기
4개의 제안서를 받아 평가용 책자를 만드는 예제
제안서 PDF에 평가용 코드를 헤더로 넣기 → PDF 병합 → 쪽번호 추가
파일 | 평가용 코드 (제안서별 머릿글) | |
---|---|---|
RFP-AS-01-AAA.pdf | 2020-AS-01 | 쪽 |
RFP-AS-02-BBB.pdf | 2020-AS-02 | |
RFP-CW-01-CCC.pdf | 2020-CW-01 | |
RFP-CW-02-DDD.pdf | 2020-CW-02 |
% -- code follows this line -- %Format: fmodstr $D{%a %b %d %H:%M:%S %Y} %Format: pagenumstr $V$% %HeaderHeight: 38 %FooterHeight: 15 /do_header { % print default simple header % Footer gsave d_footer_x d_footer_y HFpt_h 3 div add translate HF setfont user_footer_p { d_footer_x d_footer_y moveto user_footer_left_str show d_footer_w user_footer_center_str stringwidth pop sub 2 div 0 moveto user_footer_center_str show d_footer_x d_footer_w add user_footer_right_str stringwidth pop sub d_footer_y moveto user_footer_right_str show } if grestore % Header gsave d_header_x d_header_y HFpt_h 3 div add translate HF setfont user_header_p { 5 0 moveto user_header_left_str show d_header_w user_header_center_str stringwidth pop sub 2 div 0 moveto user_header_center_str show d_header_w user_header_right_str stringwidth pop sub 5 sub 0 moveto user_header_right_str show } { 5 0 moveto fname show 45 0 rmoveto fmodstr show 45 0 rmoveto pagenumstr show } ifelse grestore } def |
INPUT=$1 HEADER=$2 echo IN : $INPUT echo OUT : $HEADER.pdf pdftk $INPUT output tmp.pdf number_of_pages=$(pdftk tmp.pdf dump_data | grep NumberOfPages | sed 's/NumberOfPages: //g') (for i in $(seq $number_of_pages); do echo; done) | \ enscript -F Times-Roman20 --fancy-header=footer -L1 -b"|$HEADER|" --footer '||' -o- | \ ps2pdf - | \ pdftk "tmp.pdf" multistamp - output "$HEADER.pdf" rm tmp.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 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 - | \ pdftk "tmp.pdf" multistamp - output "$OUTPUT" rm tmp.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 |
https://anaraven.bitbucket.io/blog/2018/numbering-pages-of-a-pdf.html
https://www.maketecheasier.com/combine-multiple-pdf-files-with-pdftk/