Текст с lib.ru в pdf

saveliev_a

Привет.
Есть такая вещь как Киндл. На нем можно читать как txt, так и pdf, но для pdf можно регулировать контрастность и уменьшить поля, поэтому большинство книг на нем читаю в pdf. Вот и возникла задача автоматизировать перевод текста в pdf. Как это лучше всего сделать с того, что текст с lib.ru, то есть одна строка — один абзац, а pdf должен удовлетворять условиям:
1) размер страницы — A6,
2) поля сверху — 1 см, остальные — 0 см,
3) текст выровнен с обеих сторон,
4) красная строка — 0,5 см,
5) небольшой промежуток между параграфами (в ворде — 6 пунктов).
Размеры страницы и полей подогнал так, чтобы было комфортно читать на Киндле 3.

Dasar

Как это лучше всего сделать с того,
что конкретно интересует?
какую именно либу или программу использовать?
или как это лучше закодировать в pdf?

saveliev_a

Хорошее уточнение. Хочу понять, использовать лучше либу или самому конвертировать (мне больше нравится вариант с либой, синдромом NIH'а не страдаю). Если есть уже готовое решение, то просто прекрасно. Если же нет, то напишу. Интерфейс я уже придумал:
1) запускаем без параметров, появляется окно с полем для урла и кнопкой «Получить PDF», при нажатии на которую открывается окно сохранения файла.
2) запускаем, передавая урл в качестве параметра и имя pdf-файла.

AlexV769

Эм, а не проще стащить зеркало lib.ru целиком и оперировать файлами, а не урлами?

saveliev_a

Тащить и обновлять все зеркало ради пары сотен книг? Да и получение файла не является проблемой, суть задачи в другом.

zorin29

Либы есть, самому формат PDF учить, вероятно, не придется.
Вот на хабрахабре нашел тебе статью , и еще нашел прогу, которая делает нечто подобное (но, наверно, тебе не подойдет).
Сам пользовался одной платной библиотекой для конвертации HTML в PDF, но 700$ тебе, вероятно, жаль :) Да и HTML2PDF тебе и не надо, а надо текст.
Отчетливо помню, что недавно (в связи с той работой по генерации PDF) мне начальник прислал статью как раз с хабрахабра, где был обзор отличной либы. Если все еще будет нужно в понедельник, кинь мне приват, я пороюсь в переписке.

oliver11

Я бы самописным скриптом преобразовал HTML в LaTeX, потом скомпилировал результат в PDF. TeX тебе заодно и пробелы соптимизирует, и переносы расставит, по желанию и оглавление сгенерирует.

ppplva

Где-то в интернетах был сайт, который именно так и делал, да еще и теховские логи умел почтой отправлять. Получалось очень неплохо. Никто не напомнит адрес?

Marinavo_0507

а браузеры не умеют такого?
печатать же умеют

tata2410

txt (calibre?) -> fb2; fb2pdf
непосредственно из калибра получаются говнопдф, а через чуть подпиленный фб2пдф получается няшка

YUAL

чисто для справки: существуют такие библиотеки как либрусек (и его копии lib.ololo.cc flibusta.net) котрые хранят и отдают книги сразу в формате с разметкой, таких как fb2 и epub, для которых существую кучу настраиваемых конвертеров в пдф. В том числе и онлайн-конвертеры.

lincovva

Как это лучше всего сделать с того, что текст с lib.ru, то есть одна строка — один абзац,
Нет.
Можно забирать не так
http://lib.ru/BULGAKOW/dogheart.txt
а так:
http://lib.ru/BULGAKOW/dogheart.txt_Ascii.txt

saveliev_a

Спасибо всем отметившимся. Отвечу по порядку.
, спасибо за наводку. Посмотрю wkhtmltopdf, может смогу прикрутить.
, мысль использовать латех неплоха, не исключено, что с нее и начну. Надо будет только с полями в pdf разобраться и посмотреть как pdf из латех будет смотреться на киндле.
, использовать малоизвестный внешний сервис не хочу, потому что даже если прикрутить его к своей проге, он легко может накрыться, а тогда начинай все сначала.
, браузеры умеют печатать, но каждый браузер нужно настраивать отдельно, что не очень удобно. И еще одна причина есть, о ней чуть дальше напишу.
eller, на calibre я когда-то забил после того, как она не смогла нормально простой pdf перегнать, с которым Mobipocket Creator прекрасно справился. Хотя с текстом у нее проблем может и не быть, так что спасибо за идею.
, про внешний сервис уже написал.
, спасибо за мысль брать книгу в fb2.
Еще до написания поста я решил для себя задачу простым, но не очень быстрым способом. А именно сделал нужный шаблон в Word'е (любители опенсорса могут использовать OpenOffice Writer). Конвертация книги занимает минуту: открыть книгу, Ctrl+A, Ctrl+V и на печать в PDFCreator.
Конвертер сам хочу написать, чтобы было еще проще получить результат, а еще потому, что есть мысль сделать онлайн-сервис для себя и друзей, чтобы прямо с киндла можно было зайти и получить клевый pdf.

lincovva

Уменьшить поля в Киндле можно в настройках.
Можно также уменьшить горизонтальные поля, например, HORIZONTAL_MARGIN=10. Чтобы настройки были применены, необходимо перезагрузить устройство через HOME > MENU > "Settings" > MENU > "Restart".
http://izbrannoe.forum2x2.ru/t50-topic

saveliev_a

Уменьшить поля в Киндле можно в настройках.
К сожалению, это не так. Файл reader.pref я нашел очень давно и первым делом попробовал его исправить, однако обнаружил, что значение пункта HORIZONTAL_MARGIN просто сбрасывается на 40 (это значение по умолчанию если оно выходит за пределы. Руками можно внести такие же значения, как и в самом Киндле.
Оставить комментарий
Имя или ник:
Комментарий: