У меня странное поведение, начинающееся сегодня после того, как я обновился до 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
Опция печатается следующим образом для этого файла PDF с 52 страницами:
/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
Насколько я вижу, программа автоматически снова записывает первую страницу, но для этого использует последнюю страницу, а не оставляет ее как есть.
Обходной путь к этой проблеме состоит в том, чтобы снова сгенерировать первую страницу файла, но затем это просто обходной путь, а не жизнеспособное решение для программиста 🙂
Попробуйте эту команду:
convert \
-verbose \
/uploads/54b534908aa9b.pdf \
-thumbnail x400 \
/small0115/54b534908aa9b.jpg
Полученные файлы будут автоматически пронумерованы как 54b534908aa9b-0.jpg
, 54b534908aa9b-1.jpg
, 54b534908aa9b-2.jpg
… 54b534908aa9b-51.jpg
,
Примечания:
Я не понимаю какой твой -define jpeg0
параметр должен достичь. Это опечатка?
Также, -flatten
не оказывает никакого влияния (Ghostscript — используется ImageMagick для обработки PDF-файла в растровый файл, который IM может затем обработать — в любом случае не может обрабатывать слои PDF.)
Также -background white
не будет иметь никакого эффекта: если PDF-страницы имеют цветной «фон», результирующий JPEG будет иметь такой же цветной фон. Если PDF-страницы имеют прозрачный фон (наиболее распространенный для PDF-файлов), то формат файла JPEG не может его обработать, и фон будет выглядеть белым …
Других решений пока нет …