
N페이지로 구성된 PDF가 있습니다. 이 PDF를 N jpeg 이미지로 변환하고 싶습니다(Php, Java 또는 기타 프로그래밍 언어 없이 명령줄 사용).
GHOSTSCRIPT를 사용하여 이 작업을 수행하려고 하는데 GS가 나에게 제공하는 출력은 내가 찾고 있는 출력과 결코 같지 않습니다.
예:
gs \
-sDEVICE=jpeg \
-dNOCACHE \
-dDEVICEHEIGHTPOINTS=72 -dDEVICEWIDTHPOINTS=72 \
-r300 \
-g800x600 \
-dFIXEDMEDIA \
-dPDFFitPage \
-sOutputFile=output/%d.jpg \
mypdf.pdf
800x600 해상도로 N개의 JPEG 이미지를 생성하는데 PDF 페이지가 잘려서 맞지 않는 것 같습니다.
N-Pages PDF(명령줄에서)에서 N jpeg 이미지를 어떻게 얻을 수 있습니까?
답변1
사용된 명령줄 alesdario는 다음을 수행합니다.
- 800x600픽셀(픽셀)의 출력 크기를 사용하도록 Ghostscript에 지시하십시오.
- Ghostscript에 300dpi(인치당 도트 수)의 해상도를 사용하도록 지시하십시오.
- 72개 장치 포인트의 출력 크기를 사용하도록 Ghostscript에 지시하십시오.
세 가지 모두 동시에 일할 수는 없습니다. 두 가지가 함께 하면 세 번째와 모순되기 때문입니다.
300dpi에서 800x600 캔버스의 실제 크기는 2.33in x 2in(인치)가 됩니다. 이는 원래 PDF 페이지 크기(아마도)보다 훨씬 작습니다.
에게'간단히 N 페이지 PDF에서 N JPEG 이미지를 가져옵니다(명령줄에서)'다음 명령을 사용하십시오.
gs \
-sDEVICE=jpeg \
-o output/%d.jpg \
mypdf.pdf
이것은 가장 간단한 호출이며 아무것도 자르지 않고 다음에 대해 Ghostscript의 기본 설정을 사용합니다.
- 이미지 해상도: JPEG 출력의 경우 72dpi입니다.
- 출력 이미지의 크기: 이는 해당 PDF 페이지 크기를 따릅니다(그러나 Ghostscript는 PDF가 720dpi를 사용한다고 가정합니다).
N페이지 PDF에서 N개의 JPEG 이미지를 얻으려면사전 정의된 해상도와 사전 정의된 이미지 크기로, 일부 계산을 직접 수행하고 이에 따라 -r
및 -g
값을 설정해야 합니다. 예를 들어 JPEG에 200dpi를 원할 수 있습니다(ISO A4 [595x842pt]인 PDF 페이지 크기에서).-r200 -g1652x2338
자르기를 방지하려면 명령줄에 추가해야 함을 의미합니다.... 이렇게 하면 Ghostscript가다시 샘플링하다거기에 포함된 모든 페이지와 개체가 새로운 해상도로 변경됩니다.
답변2
노력하다이미지매직. 당신이 원하는 명령은 다음과 같습니다.
$ convert -density 400 my.pdf my.jpeg