Ghostscript로 PDF 파일 다루기
Windows 에서는 gswin32.exe 일 것으로 생각된다.
1. PDF 파일에서 일부 페이지만 추출하여 새로운 PDF 파일 만들기
gs -dNOPAUSE -dBATCH -sOutputFile="output.pdf" -dFirstPage=3 -dLastPage=4 -sDEVICE=pdfwrite "input.pdf"
- 입력파일 : input.pdf
- 출력파일 : output.pdf (-sOutputFile="output.pdf")
- 시작페이지 : 3 (-dFirstPage=3)
- 마지막페이지 : 4 (-dLastPage=4)
2. 여러개의 PDF 파일을 1개의 PDF 파일로 만들기(PDF 합치기)
gs -dNOPAUSE -sDEVICE=pdfwrite -sOUTPUTFILE="output.pdf" -dBATCH input-001.pdf input-002.pdf input-003.pdf input-004.pdf input-005.pdf
- 입력파일 : input-001.pdf ~ input-005.pdf
- 출력파일 : output.pdf (-sOUTPUTFILE="output.pdf")
3. 여러개의 JPEG 파일을 1개의 PDF 파일로 만들기
gs -dBATCH -dNOPAUSE -sPAPERSIZE=a4 -sDEVICE=pdfwrite -o output.pdf viewjpeg.ps \ -c "(input-001.jpg) viewJPEG showpage \ (input-002.jpg) viewJPEG showpage \ (input-003.jpg) viewJPEG showpage \ (input-004.jpg) viewJPEG showpage \ (input-005.jpg) viewJPEG showpage"
- 입력파일 : input-001.jpg ~ input-005.jpg
- 출력파일 : output.pdf (-o output.pdf)
-sPAPERSIZE=
의 기본 값은 "letter" 이므로 대한민국에서 많이 사용되는 "a4" 로 한다.
Paper sizes known to Ghostscript 를 참조한다.
PAPERSIZE 대신 넓이와 높이를 지정할 수도 있다.
-dDEVICEWIDTHPOINTS=595 -dDEVICEHEIGHTPOINTS=842
넓이와 높이의 단위는 "Points" 인데, "Points" = 인치 * 72 이므로, mm 를 "Points" 로 환산하는 것은 Math.round((mm값 / 25.4) * 72) 이 된다.
4. PDF 파일을 흑백(Gray Scale)으로 변경하기
gs \ -dNOPAUSE \ -dBATCH \ -sOutputFile="output.pdf" \ -dProcessColorModel=/DeviceGray \ -dColorConversionStrategy=/Gray \ -sDEVICE=pdfwrite \ "input.pdf" \
- 입력파일 : input.pdf
- 출력파일 : output.pdf (-sOutputFile="output.pdf")
5. PDF 파일을 여러개의 JPEG 파일로 변환하기
gs -dBATCH -dNOPAUSE -sDEVICE=jpeg -sOutputFile=output-%03d.jpg -r300x300 -f input.pdf
- 입력파일 : input.pdf (-f input.pdf)
- 출력파일 : input-001.jpg ~ input-00X.jpg (-sOutputFile=output-%03d.jpg)
6. 관련 명령어
6.1. gdal로 tiff를 pdf로 변환
gdal_translate -of pdf input.tif output.pdf
6.2. ImageMagick 으로 (여러개의) tiff를 pdf로 변환
convert -limit memory 0 -limit map 0 *.tif -compress jpeg -quality 100 output.pdf