преобразование PDF в JPG - PullRequest
       6

преобразование PDF в JPG

0 голосов
/ 27 декабря 2010

Обычно я создаю миниатюру jpg из файлов PDF следующим образом:

exec('convert -contrast ./xyz.pdf[0] ./xyz.jpg');

Альтернативно, я также могу использовать эту вариацию для создания миниатюр:

exec("/usr/bin/gs -q -dBATCH -dMaxBitmap=300000000 -dNOPAUSE -dSAFER -sDEVICE=jpeg -dJPEGQ=100 -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -r72 -dFirstPage=1 -dLastPage=1 -sOutputFile=./xyz.jpg ./xyz.pdf -c quit");

Теперь большинство миниатюр создаются без проблем.Но в некоторых случаях миниатюры не создаются вообще.Независимо от того, какой из двух вариантов я использую.PDF-файлы выглядят нормально (по крайней мере, я могу открыть и просмотреть их без проблем).

Есть ли другой способ получить миниатюры (через скрипт), которые могли бы работать?

Большое спасибо

Полученное сообщение об ошибке:

[0] => Error: /limitcheck in --run--
[1] => Operand stack:
[2] =>    --nostringval--   --dict:9/18(L)--   --nostringval--
[3] => Execution stack:
[4] =>    %interp_exit   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--   --nostringval--   false   1   %stopped_push   1905   1   3   %oparray_pop   1904   1   3   %oparray_pop   1888   1   3   %oparray_pop   --nostringval--   --nostringval--   2   1   1   --nostringval--   %for_pos_int_continue   --nostringval--   --nostringval--   --nostringval--   --nostringval--   %array_continue   --nostringval--   false   1   %stopped_push   --nostringval--   %loop_continue   --nostringval--
[5] => Dictionary stack:
[6] =>    --dict:1159/1684(ro)(G)--   --dict:2/20(G)--   --dict:97/200(L)--   --dict:97/200(L)--   --dict:107/127(ro)(G)--   --dict:275/300(ro)(G)--   --dict:22/25(L)--   --dict:4/6(L)--   --dict:22/40(L)--   --dict:1/1(ro)(G)--   --dict:1/1(ro)(G)--
[7] => Current allocation mode is local
[8] => Last OS error: 2

Ответы [ 2 ]

1 голос
/ 28 декабря 2010

Я опубликовал статью в блоге о том, как узнать версию PDF, используемую в файле PDF, по адресу http://www.jpedal.org/PDFblog/2010/09/how-do-i-find-out-the-pdf-version-used/

1 голос
/ 27 декабря 2010

Добавьте флаг -verbose.Это даст вам всевозможную дополнительную информацию.
Я подозреваю, что версия файла PDF вызывает вашу проблему.ImageMagick использует Ghostscript для обработки PDF-файлов.Я не уверен, какая версия PDF Ghostscript в настоящее время поддерживает, но большинство инструментов с открытым исходным кодом не обрабатывают последнюю версию файлов PDF.

Редактировать: подумал, что мне следует добавить это примечание, но не уверен, какой язык сценариев вы используете дляexec из какой операционной системы вы используете, но вам, вероятно, потребуется проанализировать поток ошибок, чтобы получить информацию из команд.Не уверен, что подробный вывод записывается в поток ошибок, но я вполне уверен, что информация об ошибке (неверный формат файла и т. Д.) Записывается в поток ошибок.

...