ImageMagick/Ghostscript перезаписывает первую страницу файла PDF

Сегодня у меня странное поведение после обновления до Ghostscript 9.15 и ImageMagick 6.9.0-4. Я пытаюсь преобразовать некоторые многостраничные файлы PDF в несколько файлов JPEG.

Проблема в том, что первая страница файла PDF (файл 0 JPG) перезаписывается программным обеспечением последней страницей файла PDF. Например, запуск команды:

 convert -verbose -define jpeg0 -thumbnail x400 -flatten \
   -background white /uploads/54b534908aa9b.pdf  \
   /small0115/54b534908aa9b_%d.jpg

Получил бы все страницы, кроме первой, которая заменена последней.

Вывод для параметра -verbose для этого 52-страничного PDF-файла выглядит следующим образом:

/uploads/54b534908aa9b.pdf[0] PDF 694x1224 694x1224+0+0 16-bit sRGB 944KB 0.000u 0:00.000
.......
/uploads/54b534908aa9b.pdf[50] PDF 694x1224 694x1224+0+0 16-bit sRGB 944KB 0.000u 0:00.000
/uploads/54b534908aa9b.pdf[51] PDF 694x1224 694x1224+0+0 16-bit sRGB 944KB 0.000u 0:00.000
/uploads/54b534908aa9b.pdf=>/small0115/54b534908aa9b_0.jpg PDF

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

Обходной путь этой проблемы — заново сгенерировать первую страницу файла, но тогда это всего лишь обходной путь, а не жизнеспособное решение для программиста :)


person petru    schedule 02.02.2015    source источник
comment
Вероятно, вам следует сообщить об этом как об ошибке здесь: Ошибки ImageMagick ( дискуссионный форум).   -  person Kurt Pfeifle    schedule 02.02.2015


Ответы (1)


Попробуйте эту команду:

convert                        \
  -verbose                     \
   /uploads/54b534908aa9b.pdf  \
  -thumbnail x400              \
   /small0115/54b534908aa9b.jpg

Полученные файлы будут автоматически пронумерованы как 54b534908aa9b-0.jpg, 54b534908aa9b-1.jpg, 54b534908aa9b-2.jpg... 54b534908aa9b-51.jpg.


Примечания:

  1. Я не понимаю, чего должен добиться ваш параметр -define jpeg0. Это опечатка?

  2. Кроме того, -flatten не имеет никакого эффекта (Ghostscript, используемый ImageMagick для преобразования PDF в растровый файл, который затем может обрабатывать IM, в любом случае не может обрабатывать слои PDF.)

  3. Кроме того, -background white не будет иметь никакого эффекта: если страницы PDF имеют цветной «фон», результирующий JPEG будет иметь такой же цвет фона. Если страницы PDF имеют прозрачный фон (чаще всего для PDF-файлов), то формат файла JPEG не может его обработать, и фон будет белым...

person Kurt Pfeifle    schedule 02.02.2015
comment
@petru: Итак, вы видели мой ответ? Это помогло? - person Kurt Pfeifle; 07.02.2015