Linux

PDF의 버젼(version) or 사이즈(size) 변경하는 방법

땅개발자 2022. 6. 16. 23:35

GhostScript 로 버젼과 사이즈를 조정하는 방법을 소개합니다.

 

인테넷을 경유해서 PDF을 공휴한다면 용량을 되도록이면 작게하는 것이 좋다.

그리고, 2개의 PDF파일을 Merge해야 할 상황이 발생하면, PDF의 버젼을 동일하게 맞추어야 하는 작업이 발생을 한다.

웹서비스를 이용할수도 있겠지만, PDF의 내용에 따라서는 웹서비스를 이용하지 못하는 경우도 있다.

 

이럴 경우엔, 되도록 사내시스템 이나, 로컬 환경에서 작업을 마무리 해야한다.

이제 부터 소개할 내용은 시스템 상에서 실제로 발생을 했던 내용을 바탕으로 이야기를 전할려고 한다.

 


PDF version 변경

 

운영하고 있는 시스템에서 HTML을 PDF로 변환을 하고 있다.

고객의 요청으로 변환된 PDF와 타시스템이나 어플에서 만들어진 PDF를 병합해야 하는 요청이 들어왔다.

그런데, 타시스템의 PDF는 버젼이 달라져서 병합하는 과정에서 에러가 발생을 했다. 

원인은 짐작대로 버젼이 달라서 발생하는 문제였다.

여기서 외부에 공개할 수 없고, 자동으로 버젼 문제를 해결할 수 있는 방법으로 Ghostscript를 찾게 되었다.

Ubuntu상에서 커맨드를 실행하면 간단하게 해결이 된다.

 

Ghostscript를 인스톨 하는 방법은 아래를 참조하기 바란다.

https://ghostscript.com/doc/9.26/Install.htm

 

How to Install Ghostscript

Table of contents For other information, see the Ghostscript overview and "How to build Ghostscript from source code". Overview of how to install Ghostscript You must have three things to run Ghostscript: The Ghostscript executable file; on some operating

ghostscript.com

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf input.pdf

input.pdf 을 입력해서 output.pdf 를 얻을 수 있다.

-dCompatibilityLevel=1.4

부분이 버젼을 지정하는 부분이다.

타 시스템은 1.5 또는 1.6 버젼의 PDF가 만들어 졌으나, 병합을 위한 파일이 업로드 되었을때, 자동으로 위의 커맨드가 실행되게 만들어 두었다.

위의 내용은 실제로 Docker를 이용해서 호스트의 폴더를 감시해서 업로드된 파일이 있으면 위의 커맨드가 실행되게 만들었다. 다음에는 도커를 만드는 과정과 호스트의 업로드된 파일을 감시하는 내용도 정리를 하겠다.

 


PDF의 사이즈와 해상도 변경

 

사이즈와 해상도는 따로 나누어서 생각을 하기가 어렵다.

해상도가 높아지면 사이즈는 높아진다. 역으로 해상도가 낮아지면 사이즈도 낮아진다.

즉, 사이즈를 낮추기 위해서는 해상도를 조절하면 된다.

GhostScript는 해상도를 낮추는 설정이 존재를 한다.

 

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf input.pdf

-dPDFSETTINGS=/ebook

부분이 해상도를 지정하는 부분이다.

 

PDFSETTINGS의 종류로는 아래와 같다

차이점은 해상도가 차이가 난다.

  • /default
  • /screen
  • /ebook
  • /printer
  • /prepress

웹상에서 PDF를 확인하기 위해서는 ebook를 추천한다.

하지만, PDF파일을 압축후에 병합등과 같이 PDF자체를 다시 수정을 거치고자 한다면,

printer, prepress를 설정하기 바란다.

ebook등은 재사용시 시스템에서 문제가 발생한 경우가 종종 발생을 했다.