2009-12-30 3 views
3

Я пытаюсь извлечь ряд страниц из многостраничного PDF-файла в отдельные jpegs с помощью convert (Imagemagick). Добыча отлично работает. Я застрял в том, что, если я хочу извлечь диапазон страниц 10-20, я по-прежнему получаю jpeg-файлы с именами page-0.jpeg для page-9.jpeg, в то время как я хочу, чтобы их называли page-10.jpeg стр-20.jpeg. Есть ли способ указать это в командной строке?Вывод имени файла при извлечении диапазона страниц из pdf в jpeg с помощью Imagemagick

Мне нужно это, так как я хочу извлечь страницы в патроны 10, чтобы избежать слишком большого объема памяти для огромных файлов PDF и не хочу переименовывать файлы.

Я помню, что это работало в более раннем проекте, но не может понять, что мне сейчас не хватает.

ответ

12

Наконец-то это удалось. Оставляя ответ, если кто-то ищет то же самое. Решение работает с Imagemagick 6.5.1.

Итак, мы хотим извлечь страницы с номерами i в j из a.pdf в отдельные jpeg с файлами с именем -10jpeg в a-20.jpeg.

convert a.pdf[i-j] -set filename:page "%[fx:t+i]" a-%[filename:page].jpeg 

В этом случае используются операторы fx. fx: t дает номер экрана текущего изображения в последовательности, и мы можем добавить к нему свое смещение.

+0

не точный ответ, который я искал. Но ваш пост заставил меня искать операторов fx и исследовать imagemagick в целом. +1 :) – varun

+0

Привет, можете ли вы дать точную команду, скажем, когда мы хотим добавить дополнительную страницу 5-20? Я попробовал этот 'convert file.pdf [5-10] -set filename: page"% [fx: t + 5] "a -% [имя_файла: страница] .jpeg', но он извлекает только 6-ю страницу. – user1437328