Михаил Иванов (m_ivanov) wrote,
Михаил Иванов
m_ivanov

Categories:

Создание электронных книг для Sony PRS-300 и не только

В связи с покупкой читалки Sony PRS-300 озадачился созданием коллекции книг.

PRS-300 поддерживает несколько форматов: lrf, txt, rtf, pdf, epub. Из них имеет смысл говорить только о формате lrf.

Формат lrf - это проприетарный соневский формат, родной для читалки. Формат закрытый, нативного редактора не существует, поэтому создание книг в этом формате сопряжено с определенными трудностями. В комплекте с PRS-300 идет утилита для управления и закачки книг в читалку (а в основном для покупки книг в соневском онлайн-магазине, ага), но она работает только под виндой, а это не наш метод.

Тем не менее, lrf оказался самым удобным форматом для использования на PRS-300.

С прочими форматами наблюдаются примерно такие проблемы:

txt - нет оглавления, нельзя задать метаинформацию (название, автор), нет картинок, строки выровнены по левой стороне, справа получается "лесенка"
rtf - аналогично txt, зачем он вооще встроен в читалку непонятно, разве что выравнивание по ширине работает
pdf - читать нереально, шрифт неразличим, масштабирование беспощадно тормозит
epub - теоретически, в нем есть и оглавление, и метаинформация, и прочее, но еще в нем есть какие-то неочевидные заморочки со шрифтами, я так и не смог сделать книгу в этом формате так, чтобы русские буквы показывались не кракозябрами.

А вот c форматом lrf все отлично - работает оглавление, хранится метаинформация (название, автор, порядок сортировки в списке и прочее), поддерживаются картинки и приятное глазу выравнивание по ширине. Кроме того, с этим форматом читалка работает очень быстро.

Для создания книг в формате lrf я использую программу Calibre. Calibre выполняет две задачи - управление библиотекой и конвертация книг из формата в формат.

Программа есть в портах FreeBSD, правда, у меня чего-то не получилось ее там собрать, так что пришлось поставить ее под Ubuntu из репозитория.

Для создания самих книг перепробовал всякие разные способы, в итоге пришел к выводу, что толковее всего делать так:

1. Скачать книгу с lib.ru, в формате txt. На lib.ru в файлах txt сделана разметка оглавления, названия глав выделены спецсимволами. Это очень важно - если бы не было разметки, то невозможно было бы автоматически сгенерировать оглавление.

2. Сделать, если нужно, косметические правки - во многих книгах попадается мусор, оставшийся от неаккуратного сканирования и распознавания (номера страниц отсканированной книги, повторяющееся несколько раз название, лишние пустые строки и тому подобное).

3. Прогнать текст через пару регулярных выражений, "обтягивающих" выделенные спецсимволами заголовки в теги <h1>, а абзацы - в теги <p> (я это делаю в редакторе jEdit, в котором обычно пишу код, в нем это удобно делается - написал один раз макрос - и пользуешься). После регулярки получится примитивный html. Теги <head>, <body> и прочие в нем не нужны, достаточно только выделить заголовки и абзацы.

4. Получившийся файл импортировать в Calibre. Там же задать для файла метаинформацию. Там же вставить в файл картинку - обложку книги. Обложку можно найти в гугле, ага.

5. Сконвертировать книгу в формат lrf. При настройке режима форматирования указать настройку "Создавать оглавление по тегам h1". По вкусу добавить настройки типа "Показывать название книги на каждой странице" или "Сделать широкие поля".

Теперь, после создания книги, возникает задача отправить ее в читалку.

В принципе, PRS-300 видится компом как обычный съемный диск, можно просто положить файл lrf в каталог books на ней. Но это не по-джедайски. При таком подходе все книги будут отображаться на читалке одним списком, а это не очень-то удобно.

Для удобного размещения книг в PRS-300 существуют "коллекции". Попросту, коллекция - это каталог. Например, можно создать каталог с именем автора и положить в этот каталог книги этого автора. Я, собственно, так и делаю. Соответственно, читалка будет показывать не свалку из всех кних, а аккуратно сгруппированные по авторам коллекции.

Но (сюрприз!), нельзя просто создать нужные каталоги. PRS-300 узнаёт о существовании коллекций не из факта существования каталогов, а из какого-то своего индекса. Если его не переписать правильным образом, то размещение книг по каталогам ничего не изменит - все книги все равно будут выводиться одним списком.

Для переписывания индекса нужна соответствующая программа. Это умеет делать родная программа, но, как я уже сказал, родная программа работает только под виндой. Поэтому вместо нее я использую другую замечательную программу - Manager 505. Несмотря на название, программа работает не только с PRS-505, но и с другими ридерами Sony.

Программа кроссплатформенная, есть версия и под винду. Я собрал ее под Ubuntu, поскольку Calibre у меня тоже под убунтой работает.

Manager 505 представляет собой простейший двухпанельный файловый менеджер. В одной панели открываем каталог, где Calibre держит библиотеку, а в другой панели - каталог books читалки. Менеджер, кстати, умеет сам находить каталог books.

Копируем книги из первой панели во вторую. Если нужны коллекции - просто создаем на читалке каталоги с нужными названиями и копируем книги в них. Затем - главное! - нужно нажать кнопку "Коллекции", будет перезаписан индекс читалки и она узнает о существовании коллекций. Я не сразу уловил смысл этой кнопки и пол-ночи сидел ломал голову, почему ничего не работает:)

Вот, собственно, и все. Остается отмонтировать читалку и можно читать.

А, да. Что касается формата fb2, который, говорят, очень хороший и популярный.

PRS-300 его не поддерживает, нужно конвертировать fb2 в lrf. Процесс совершенно необременительный. Если хочется заодно изменить метаинформацию файла, то можно сделать конвертацию с помощью Calibre. Если же метаинформация не интересует, то конвертер fb2->lrf встроен прямо в Manager 505, сконвертировали - и сразу закачали в читалку.
Tags: ebook, prs-300, электронная книга
Subscribe

  • Sony PRS-300

    Прощай, проклятый любимый Буквоед:)

  • Rust, утки и лягушки

    Читаю "Программирование на языке Rust". Цитата про автовыведение типов: "Этот подход часто называют «утиной…

  • СтопХам и ПДД

    Ребята из СтопХама, гоняющие ненатуралов с тротуаров — молодцы. Однако, теоретическая подготовка у них чутка проседает. Как минимум по двум…

  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 22 comments

  • Sony PRS-300

    Прощай, проклятый любимый Буквоед:)

  • Rust, утки и лягушки

    Читаю "Программирование на языке Rust". Цитата про автовыведение типов: "Этот подход часто называют «утиной…

  • СтопХам и ПДД

    Ребята из СтопХама, гоняющие ненатуралов с тротуаров — молодцы. Однако, теоретическая подготовка у них чутка проседает. Как минимум по двум…