Простой пример создания pdf документа:
$ convert *.jpg book.pdfВ GrapicsMagick эта команда может выглядеть так:
$ gm convert *.jpg book.pdfВместо *.jpg можно использовать другой формат или список файлов. Список файлов удобнее использовать для того, чтобы задать порядок следования страниц в файле.
Например:
$ convert file1.jpg file2.png file3.gif book.pdf$ convert $( ls | egrep '(png|gif|pnm|pbm|pgm|jpg|jpeg)$' | sort -n) book.pdfВ этом примере sort -n используется для изменения порядка следования страниц.
Файл который получается может оказаться слишком большим. Чтобы уменьшить его можно воспользоваться алгоритмами сжатия которые поддерживают pdf документы.
Список алгоритмов сжатия приведён ниже в таблице:
| Compression | image '/Filter [ ... ]' setting |
|---|---|
| -compress none | '/ASCII85Decode' |
| -compress zip | '/FlateDecode' |
| -compress jpeg | '/DCTDecode' |
| -compress lzw | '/LZWDecode' |
| -alpha off -monochrome -compress fax | '/CCITTFaxDecode' |
| +compress -compress rle | '/RunLengthDecode' |
$ convert -compress jpeg -quality 60 *.jpg book.pdfТакже можно использовать опцию -monochrome для создания чёрно-белых документов, что уменьшит размер выходного файла. Алгоритм сжатия fax можно использовать только с чёрно-белыми изображениями. Также чтобы уменьшить размер файла можно изменить разрешение c помощью опции -resize.
$ convert image.jpg image.ppm$ anytopnm image.jpg > image.ppm$ for name in $(ls | egrep 'png|jpg|gif') ; do convert $name $(echo $name | sed -r 's/(.*)\.[^\.]+/\1/').ppm ; done$ ppmtopgm file1.ppm > file1.pgmТеперь pgm изображения можно преобразовать в pbm с помощью pgmtopbm.
Например:
$ pgmtopbm -threshold -value 0.6 file1.pgm > file1.pbmЧем выше -value тем чернее будет изображение.
После этого все файлы ppm, pgm, pbm переименовываем в pnm, так как там будет проще сними работать.
Далее превращаем каждое изображение в формат djvu. Для этого используем с44.
$ c44 -slice 82 file.pnm file.djvu Или всё сразу:
$ for name in $(ls | grep 'pnm') ; do c44 $name -slice 82 $(echo $name | sed -r 's/(.*)\.[^\.]+/\1/').djvu ; doneТеперь осталось только объединить все djvu файлы в один.
$ djvm book.djvu page1.djvu page2.djvu page3.djvu pageN.djvuВсё теперь требуемая книга в формате djvu готова.


