Как конвертировать PDF в PNGs с помощью ghostscript?
обычно я могу использовать ghostscript для преобразования PDF-файлов в PNGs с помощью команды:
gs
-q
-dNOPAUSE
-dBATCH
-sDEVICE=pnggray
-g2550x3300
-dPDFFitPage
-sOutputFile=output.png
input.pdf
но это не работает для некоторых файлов PDF. Например, команда выше преобразует это в формате PDF этой PNG -- оригинальный PDF-это просто небольшое изображение в левом нижнем углу PNG, вместо того, чтобы заполнять всю страницу.
есть ли более надежный способ конвертировать PDF в PNGs с помощью ghostscript или, возможно, какой-либо другой командной строки инструмент?
Примечание: Если я создаю новый PDF-файл из проблемного с помощью "print - > save as pdf" в Preview на OS X, команда работает нормально.
1 ответов
просто использовать ImageMagick в convert
.
convert foo.pdf foo.png
вы можете иметь более точный контроль над количеством страниц со строками формата, например:
convert foo.pdf "foo-%03d.png"
и, конечно, есть множество других опций ImageMagick, но основная команда выше-это все, что вам нужно большую часть времени.
Edit: о вашем " плохом.pdf":
короткий ответ-добавить опцию -dUseCropBox
к вашей команде gs или -define pdf:use-cropbox=true
преобразовать команда.
gs \
-q \
-dNOPAUSE \
-dBATCH \
-sDEVICE=pnggray \
-g2550x3300 \
-dPDFFitPage \
-dUseCropBox \
-sOutputFile=output.png \
input.pdf
или
convert \
-density 300 \
-define pdf:use-cropbox=true \
foo.pdf \
foo.png
если вы просматриваете PDF в текстовом редакторе, вы можете увидеть, что указаны CropBox и MediaBox, и что CropBox намного меньше.