# Конвертация книг с использованием fb2mobi

После статьи Олега Сердюкова "[Мягкие переносы в книгах на Kindle Paperwhite](http://ctrld.me/blog/2014/11/12/soft-hyphen-kindle-paperwhite/)" стал использовать конвертацию книг с использованием рекомендованной им программы fb2conv. Просто и удобно, при этом книги стало гораздо удобнее читать.

Но с обновлением OSX до 10.11 столкнулся с проблемой, fb2conv перестал работать. Олег решил проблему путем [использования Docker](http://ctrld.me/blog/2015/10/19/convert-fb2-in-docker/ "Конвертирование книг FB2 с использованием fb2conv в Docker"). Я же посчитал это излишним и стал смотреть [официальный форум](http://www.the-ebook.org/forum/viewtopic.php?t=28447) в поисках решения проблемы. И как оказалось, не напрасно.

Утилита fb2conv больше не поддерживается и не развивается. Но ее подхватили разработчики и выпустили консольную версию, без GUI-интерфейса, работающую с использованием Python3. Найти ее можно на Github: [rupor-github/fb2mobi](https://github.com/rupor-github/fb2mobi).

Предварительно требуется установить XCode:

```shell
$ xcode-select --install
```

Затем ставим третью версию питона и пару модулей:

```shell
$ brew install python3
$ pip3 install cssutils lxml
```

Для конвертации в формат для устройств Kindle нужно так же поставить официальную утилиту [kindlegen](http://www.amazon.com/gp/feature.html?ie=UTF8&docId=1000234621). Ее достаточно скачать, распаковать и бинарник разместить в $PATH директории.

Теперь остается только загрузить в локальную директорию саму утилиту и приступать к работе:

```shell
$ git clone https://github.com/rupor-github/fb2mobi.git
$ cd fb2mobi
$ chmod +x fb2mobi.py
$ ./fb2mobi.py filename.fb2.zip
```

Обратите внимание на то, что утилита настроена по умолчанию на конвертацию в формат azw3. И если вы хотите получать на выходе mobi, достаточно изменить один параметр в файле fb2mobi.config:

```xml
<outputFormat>mobi</outputFormat>
```

По моим ощущениям, утилита стала работать немного быстрее.

**UPDATE 23/04/16** Долгое время не обновлял репозиторий, и как оказалось, с недавних пор стала появляться новая ошибка:

```text
Traceback (most recent call last):
  File "./fb2mobi.py", line 17, in <module>
    from modules.fb2html import Fb2XHTML
  File "/Users/juev/Projects/fb2mobi/modules/fb2html.py", line 18, in <module>
    from PIL import Image
ImportError: No module named 'PIL'
```

Решается проблема просто:

```shell
$ pip3 install pillow
```

После чего утилита снова начинает работать.

