Есть ли способ конвертировать PDF-документ в формат электронной книги, такой как epub, azw или mobi? Я ищу приложение, которое быстро конвертирует. Я только что попробовал calibre. Спустя 10 минут не было достигнуто даже 2% конвертации. Так что, пожалуйста, не используйте calibre. Предпочтительнее CLI.
решение1
решение2
Попробуйте pdftotext
(входит в Ubuntu в пакете poppler-utils
). Это командный конвертер. Он предполагает, что PDF содержит текст и не состоит только из изображений.
Если PDF-файл состоит из изображений (без информации OCR), вам придется использовать решение OCR, которое работает гораздо медленнее.
Я также успешно использовал метод OCR для текста PDF, который был зашифрован (путем нелинейного расположения отдельных символов на странице). Затем вы используете eg pdftoppm
для получения отдельных изображений страниц и OCR для них.
решение3
Однажды мне пришлось сделать это для PDF-файла, и вот результат (с использованием pdftohtml из poppler):
#!/bin/bash
pwddir="`pwd`"
tmpdir="`mktemp -d`"
pdftohtml -enc UTF-8 -noframes -p -nomerge -nodrm -q "$1" "$tmpdir"/index
cd "$tmpdir"
sed -e :a -e '$!N;s/\n/ /;ta' \
-i index.html
sed -e 's@ @ @g' \
-e 's@<hr>@ @g' \
-e 's@<br/>\s*<br/>@</p><p>@g' \
-e 's@<br/>@ @g' \
-i index.html
tidy -utf8 -i -wrap 9999999 -m index.html
sed -e 's@<a name="[^"]*"></a>@@g' \
-i index.html
rm "$pwddir"/"$1".zip
zip "$pwddir"/"$1".zip *
Скормите zip-архив Calibre и конвертируйте в EPUB. Отфильтруйте все свойства CSS (такие как цвета, шрифты).
Каждый файл PDF отличается - нет окончательного решения. Вышеуказанное сработало для одного конкретного случая - вам нужно ослабить pdftohtml/pdftotext, а затем настроить вывод в соответствии с вашими потребностями.
Если это не сработает и вам придется прибегнуть к OCR, мне немного повезло с клинописью. Но попробуйте также tesseract, ocrad, gocr. Однако все они требуют ручного труда для хорошего результата.