Как мне преобразовать документ 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=black
input.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. По описанию оглавление тоже сохранится, но я это не проверял.