How do I convert a DjVu document to PDF in Linux using only command line tools?
I’ve got some documents in DjVu which I’ll like convert to PDF. Is there a way to do this using command line OSS tools?
7 Answers 7
djvu2pdf should fit the bill, it’s a small script that makes use of the djvulibre toolset. If not, there are other methods that require multiple command-line tools.
Mac users can also run brew install djvu2pdf to install the program and djvu2pdf file.djvu to convert. Homebrew takes care of downloading all its dependencies
djvu2pdf works although it produces a slightly bigger file than ddjvu with compression enabled. Other issue is that it doesn’t copy the table of contents of the source document.
The ddjvu program (which is part of the standard djvulibre package) will do this:
$ ddjvu -format=pdf -quality=85 -verbose a.djvu a.pdf
Warning: this produces large files (but PDF files made by Christoph Sieghart’s script are of the same size).
I also wrote the following small shell script some years ago. It does the same automatically. (Save this as djvu2pdf.sh .)
#!/bin/sh # convert DjVu -> PDF # usage: djvu2pdf.sh i="$1" echo "------------ converting $i to PDF ----------------"; o="$(basename "$i" .djvu).pdf" echo "[ writing output to $o ] " ddjvu -format=pdf -quality=85 -verbose "$i" "$o"
The djvu2pdf script by Christoph Sieghart does essentially the same.
Как конвертировать DjVu в PDF в Linux
DjVu (произносится как «дежа вю» – «уже виденное») – это цифровой формат документов с передовой технологией сжатия и высокой производительностью. DjVu – это также WEB ориентированный формат и программная платформа для распространения документов и изображений. Контент DjVu загружается и отображаются мгновенно, потребляя мало ресурсов.
Для конвертации DjVu в PDF воспользуйтесь программой DjView. DjView является бесплатной программой для просмотра и печати файлов в формате DjVu. Это быстрая, удобная, компактная утилита для работы с объемными документами или изображениями высокого разрешения. Программа снабжена множеством функций. Простой интуитивно понятный интерфейс, высокая скорость отображения страниц, плавный скроллинг (форма представления информации, при которой содержимое двигается в вертикальном или горизонтальном направлении) контента, хорошее качество воспроизведения.
Поддерживается BSD, Windows, Mac, Linux ОС.
Установить программу в Ubuntu Вы сможете с помощью менеджера пакетов Synaptic.
Для конвертации DJVu в PDF воспользуйтесь Меню → Экспорт → Параметры PDF.
Конвертации DjVu в PDF прошла успешно.
Преобразование DJVU в PDF
Я хочу преобразовать документ DJVU в документ PDF, отделив и сохранив текстовый слой и изображения, а также сохранив структуру из DJVU. Как я могу сделать это в Ubuntu?
(Затем я буду использовать Caliber для конвертации в ePub/Mobi, поэтому, если бы для всего этого процесса был плагин Caliber, это было бы идеально для меня!)
Примечание 1: печать из Evince, экспорт из DJview или что-либо, использующее пакет ddjvu, не являются адекватными решениями, поскольку они отбрасывают текстовый слой, сохраняя только изображения.
Примечание 2: Использование DJVULibre, кажется, только извлекает текстовый слой, а изображения не извлекаются. Аналогично, копирование текста «вручную» приводит к потере как структуры документа, так и изображений.
6 ответов
Способ 1
Просто используйте DJView и экспортируйте как PDF
- Goto Synaptic Package Manager
- Установить DJview4
- Запустите DJview (Приложения — Графика — DJView4)
- Откройте документ.djvu
- : Меню — Экспортировать как: PDF
Способ 2
Откройте файл djvu в evince
Выберите печать —-> печать в файл
измените.ps на.pdf и нажмите кнопку печати
Способ 3
- Goto Synaptic Package Manager
- устанавливать djvulibre-bin libdjvulibre21 okular-extra-backends evince libevdocument3 libevview3
sudo apt-get install libtiff-tools
ddjvu -format=tiff file_name.djvu file_name.tiff tiff2pdf -j -o file_name.pdf file_name.tiff
Способ 4
Существует также онлайн конвертер DjVu в PDF конвертер
Вот один из способов, который потребует некоторых не очень распространенных инструментов:
Мы можем использовать djvu2hocr команда (от ocrodjvu пакет), чтобы извлечь скрытый текстовый слой из файла DjVu (он не выполняет оптическое распознавание или тому подобное, он просто извлекает текстовый слой с геометрией), то есть:
djvu2hocr -p 10 sample.djvu | sed ‘s/ocrx/ocr/g’ > pg10.html
sed вмешательство исправляет имена классов в выходном hOCR (который является простым HTML-файлом)
Теперь мы извлекаем страницу DjVu в формат TIFF с помощью:
ddjvu -format=tiff -page=10 sample.djvu pg10.tif
так что мы заканчиваем этим файлом в нашей рабочей папке:
sample.djvu pg10.html pg10.tif
Это где pdfbeads вступает в игру, и мы просто выполняем:
затем эта изящная программа позаботится обо всем, что находится внутри этой папки (файлы HTML и TIFF с одинаковым базовым именем), и создаст выходной файл PDF с некоторыми побочными продуктами:
sample.djvu pg10.html pg10.tif pg10.jbig2 pg10.pdf pg10.sym
который идентичен входному файлу DjVu и имеет текстовый слой внутри:
Сводка комментариев:
В длинных комментариях ниже обсуждается представление небольших изображений со страницы документа DjVu в виде отдельных объектов, что нелегко сделать возможным, поскольку страница документа DjVu сама по себе представляет собой одно изображение с необязательным текстовым слоем, без «информации» о небольших изображениях в качестве отдельных объектов. Если документ DjVu имеет цветные изображения, то они обычно помещаются на фоновый слой; в этом случае пользователь может воспользоваться такими инструментами, как ddjvu (извлечь только фоновый слой) и imagemagick (автообрезка) для вывода только изображений вместо всего холста, но это не может быть автоматизировано для создания вывода PDF
Другой более разумный, но более медленный подход — использование обычных инструментов OCR GUI. gscan2pdf (> 1.0) предлагается в качестве возможного кандидата на ПК с Linux
convert djvu to pdf
Is there more efficient and better (in terms of output quality, data/metadata loss) way to handle that ?
As I’ve wrote there : What’s a pity that, currently there is not djvu2pdf tool in Arch repo and old ver in Arch User repo
1 Answer 1
I tried printing the djvu file to PDF (using Evince, so it’s probably a mix of djvulibre, gtk+ and cairo), but I got a way smaller result by converting the djvu pages to pdf using ImageMagick’s convert .
- extract each page as a separate djvu document (I’m not sure if convert is able to deal multipage djvu and multipage pdf that easily), see djvmcvt -i (an «indirect» document is a document where each page is stored in a separate djvu file)
- convert the page using convert — we’re not losing anything here, remember that djvu is not vectorial, so even if you’re generating an Adobe PDF, you’re using it for a raster image
- join the pages in a single PDF (you can just feed them to ghostscript — for example, generating an A4 PDF named out.pdf with all pages from *.pdf in the current directory would be gs -q -sPAPERSIZE=a4 -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sOutputFile=out.pdf *.pdf )
This said, keep in mind that
- This does just a straight conversion of a raster image — I guess the only thing you can tweak is the image quality, if it gets stored in the pdf using lossy compression (if convert is unable to do that, ghostscript has some options to tweak the output of pdfwrite , along the lines of -dPDFSETTINGS= , I’m not sure but these may include the possibility of enforcing lossy compression and defining the quality level)
- This does not use djvu-specific knowledge, I guess the fact djvu encodes foreground and background separately can be used to generate the PDF in a clever way that somehow uses that to save some space
- PDF is for vectorial stuff, djvu is way better suited for rasterized documents than PDF.