Skip to content

alcherk/fb2mobi

 
 

Repository files navigation

This program is based on fb2conv program published by dnkorpushov on the-ebook.org site.

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):

  • All messages and profile descriptions got translated to English
  • Fixed all problems I was aware of at the moment (see git log)
  • Added ability to apply xslt transformation from external file to fb2 before further processing (--xslt key or <xslt> config tag)
  • Added xslt extension "katz_tr" to speedup and simplify transformation of direct speech in dialogs
  • Added smart dropcaps processing (--dropcaps=Smart key or <dropcaps>Smart</dropcaps> config tag)
  • Added some rudimentary epub processing (like title rewriting based on calibre metadata and hyphenation)
  • Switched hyphenator to hyphen which uses properly maintained dictionaries from LibreOffice, so now many languages are supported and you could add more
  • Added support for "floating" footnotes (--notes-mode=float key or <notesMode>float</notesMode> config tag)
  • Added support for MOBI post-processing and optimization
  • Added cover and thumbnail image optimization
  • Made cover size user configurable (--screen-width, --screen-height or <screenWidth>, <screenHeight>)
  • Added support for latest Kidle firmware (>= 5.7.2)
  • Added simple tool to generate thumbnails on Kindle devices
  • Added synchronous logging to file and console (console logging level is set independently by --console-level key or <consoleLevel> config tag)
  • Added an option to make PNG images non-transparent to prevent "ghostly images" on Kindle (--remove-png-transparency key or <removePngTransparency> config tag)
  • Added support for auto-generation of PageMaps - now it is possible to have APNX files (--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)
  • Removed <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.
  • Expanded book title generation: added #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.
  • Added new <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.
  • Supported <openBookFromCover> configuration tag and ---open-book-from-cover parameter for compatibility with fb2conv.
  • Changed how book title and book author are formatted - added processing of conditional blocks, for example: <bookTitleFormat>{(#abbrseries{ #padnumber}) }#title</bookTitleFormat>. To output curly braces escape them with backslash.
  • Added new css style .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.
  • Added "default" cover for fb2 which do not have it (APG 2018.1) - <coverDefault> in profile configuration.
  • Added cover "stamping" with book title, series and author name(s) - <coverFont> and <coverStamp> in profile configuration or --stamp-cover on command line.

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.3 with following modules.

If you are not using "frozen" distribution you would need to download Amazon's KindleGen.

Enjoy!

About

fb2mobi (new generation) - derived from fb2conv 1.5.4

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 96.4%
  • CSS 2.6%
  • Other 1.0%