This program is based on fb2conv program published by dnkorpushov on the-ebook.org site.
This project has been "stable" for a while - no changes or additional fixes were requested for a long time. Builds for Linux and Windows build environments have been fully defined in the docker files and build process fully automated in scripts. At the same time maintaining Python build environment for several platforms (as well as attemptng to fix various problems with Unicode support in Python for Windows) has been noticeable burden for me - requiring time and resources (which I do not have). As the result I am reducing my attention to this project - there would not be conversion to latest Python or any further program binary distributions for Windows and Linux coming from me. I may be able to provide source level fixes, but this would be it.
Instead I am opening new project - fb2converter, a complete rewrite of this program in go language which requires much less support time (or so I think). At the moment it has everything command line of fb2mobi does and then some and eventually it may even get its own UI, we'll see. Any new features or significant fixes would be provided by new project or would have to come from somebody else.
Original program (being Python 2) did not work well under Windows when non-russian system codepage was selected for non-Unicode programs. In order to improve the situation I had to port it to Python 3. Later author of original converter re-joined the project and ported GUI UI here. He also added binary releases for MAC.
Here is brief list of changes to the original project (in addition to bug fixes):
--xslt
key or <xslt>
config tag)--dropcaps=Smart
key or <dropcaps>Smart</dropcaps>
config tag)--notes-mode=float
key or <notesMode>float</notesMode>
config tag)--screen-width
, --screen-height
or <screenWidth>
, <screenHeight>
)--console-level
key or <consoleLevel>
config tag)--remove-png-transparency
key or <removePngTransparency>
config tag)--apnx=eInk|PC
key or <generateAPNX>
profile tag). Number of uncompessed
text characters per page is (approximately) controlled by charactersPerPage
profile tag and by default is equal to 2300 (Calibre default setting)<flatTOC>
support. New config tag <tocType>
and command line parameter --toc-type
could be used instead with values Flat|Kindle|Normal
.
This introduces special support for eInk Kindle devices with 2-level TOC views. Additional tag <tocKindleLevel>
and parameter --toc-kindle-level
allow for precise
tuning of generated NCX for eInk devices.#padnumber
to generate number in series padded with zeros (use <seriesPositions>
or --series-positions
to specify how many
digits overall will be generated) and #date
to add proper date from <title-info>
if availabe.<chapterLevel>
configuration tag and ---chapter-level
parameter along with new style .titleblock_nobreak
. When parsing sections this style will be generated
if nesting level is greater or equal to specified value. This allows better control of page breaks on sections boundaries.<openBookFromCover>
configuration tag and ---open-book-from-cover
parameter for compatibility with fb2conv. Works for epub
output only.<bookTitleFormat>{(#abbrseries{ #padnumber}) }#title</bookTitleFormat>
. To output curly braces escape them with backslash..linkanchor
- this is style for all href links which are NOT pointing to the note bodies. This allows for flexible formatting of hyperlinks in the text.<coverDefault>
in profile configuration.<scaleImages>
in profile configuration or --scale-images
on command line (Should be positive non-zero float number, cover image is exempt from this). DPI is preserved.--config
parameter and changed the way program looks for configuration file. Now, unless --config is provided files in user HOME directory have precedence over distribution files.<outputPattern>
and the same rules as for book title.More info can be found on russian forum.
Program uses source code (modified) from following projects released under GPL:
In order to build releases we are using Python 3.6.5 with following modules.
If you are not using "frozen" distribution you would need to download Amazon's KindleGen.
Enjoy!