Как мне преобразовать документ DjVu в PDF в Linux, используя только инструменты командной строки?
У меня есть несколько документов в DjVu, которые я хотел бы конвертировать в PDF. Есть ли способ сделать это с помощью инструментов OSS командной строки?
8 ответов
djvu2pdf должен соответствовать всем требованиям, это небольшой скрипт, использующий набор инструментов djvulibre. Если нет, существуют другие методы, которые требуют нескольких инструментов командной строки.
ddjvu программа, (которая является частью стандарта djvulibreпакет), сделаем так:
$ ddjvu -format=pdf -quality=85 -verbose a.djvu a.pdf
Предупреждение: при этом создаются большие файлы (но файлы PDF, созданные сценарием Кристофа Зигхарта, имеют одинаковый размер).
Я также написал следующее маленькое bash сценарий несколько лет назад. Это делает то же самое автоматически. (Сохранить это как djvu2pdf.sh).
#!/bin/bash
# convert DjVu -> PDF
# usage: djvu2pdf.sh <file.djvu>
i="$1"
echo "------------ converting $i to PDF ----------------";
o="`basename $i .djvu`"
o="$o".pdf
echo "[ writing output to $o ] "
cmd="ddjvu -format=pdf -quality=85 -verbose $i $o "
$cmd
djvu2pdf Сценарий Кристоф Зигарт делает по сути то же самое
$ djvups input.djvu | ps2pdf - output.pdf
В моем случае выходной файл был в 10 раз меньше, чем с ddjvu. И то и другое djvups а также ps2pdf присутствует в хранилище Ubuntu.
$ sudo apt-get install djvulibre-bin ghostscript
Я нашел этот метод в man ddjvuтак что всегда читай мануалы;)
Альтернативный способ создания файла PDF состоит в том, чтобы сначала использовать djvups(1) и преобразовать полученный файл PostScript в PDF. Какой метод дает лучшие результаты, зависит от содержимого файла DJVU и от возможностей конвертера PS в PDF.
Как насчет простого использования DJView и экспорта в PDF?
- Перейти к Synaptic Package Manager (Система - Администрирование - Synaptic Package Manager)
- Установить DJview4
- Запустите DJview (Приложения - Графика - DJView4)
- Откройте документ.djvu
- Меню - Экспортировать как: PDF
Посмотрите на http://art.ubuntuforums.org/showthread.php?t=1232038
Если вы не заботитесь о цветах и изображениях, вы можете получить намного меньшие файлы, если вы отбросите цвета и будете использовать вместо них:
ddjvu -format=pdf -mode=blackinput.djvu output.pdf
Тексты, коды и формулы выглядят отлично, но большинство картинок пропало
Я немного изменил скрипт @Maxim...
#!/bin/bash
# convert DjVu -> PDF
# usage: djvu2pdf.sh [-q quality | -b] <infile.djvu> [outfile.pdf]
mode='color'
quality=80
aparse() {
while [ $# != 0 ] ; do
case "$1" in
-q|--quality)
quality=${2}
shift
;;
-b|--black)
mode='black'
;;
esac
shift
done
}
aparse "$@"
i="$1"
o=${2:-$(basename $i .djvu).pdf}
if [ -f "$o" ]; then
echo "file $o exists, override [Y/n]?"
read ans
case "$ans" in
n|N) exit 1;;
esac
fi
echo "[ converting $i to $o ] "
cmd="ddjvu -format=pdf -quality=$quality -mode=$mode -verbose $i $o "
echo "[ executing $cmd ] "
$cmd
Для пользователей MacOS вы можете установить djvu2pdf следующим образом:
$brew install djvu2pdf
Как его использовать (работает для любой системы, подобной Xnix):
$djvu2pdf nameBook.djvu nameBookToCreate.pdf
Для подхода, сохраняющего текстовый слой 1 , можно использовать djvu2pdfописано в этом ответе . Общий подход описан здесь или здесь .
Для macOS требуется небольшая настройка.
Поведение BSD отличается от чтения GNU readlink. Это можно исправить, установив GNU coreutuils и изменивreadlink -fкgreadlink -f.
1. По описанию оглавление тоже сохранится, но я это не проверял.