Как конвертировать 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 намного меньше.