Как мне преобразовать документ 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?

  1. Перейти к Synaptic Package Manager (Система - Администрирование - Synaptic Package Manager)
  2. Установить DJview4
  3. Запустите DJview (Приложения - Графика - DJView4)
  4. Откройте документ.djvu
  5. Меню - Экспортировать как: 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. По описанию оглавление тоже сохранится, но я это не проверял.

Другие вопросы по тегам