Version 2.18.0 - 29 Nov 2024
Show a progress indicator during conversion performed using the "From KFX" toolbar action.
The configuration option "Split landscape images when converting comics to CBZ or PDF" is now "Split landscape images when converting comics to PDF" and no longer applies to conversion to CBZ format.
Add "kfx_input_add_comic_spread_center = True" plugin tweak that when converting comics from KFX to EPUB will add the property "rendition:page-spread-center" to pages that do not have a left or right page spread. This will only occur for comics that contain page spreads.
Version 2.17.0 - 08 Nov 2024
Handle invalid characters in links to external content. (Fixes "ValueError: Invalid IPv6 URL")
Fix incorrect margins in vertical text paragraphs.
Version 2.16.0 - 06 Oct 2024
Set the PDF viewer preferences direction to R2L if appropriate when converting fixed layout books to PDF format.
Add plugin configuration option "Split landscape images when converting comics to CBZ or PDF" that when checked will cause landscape orientation images in comics to be split into separate left and right side images when converting to CBZ or PDF format. This is intended to break page spreads into individual page images. This option only applies to conversion done using the plugin CLI or From KFX GUI, not conversion using calibre's Convert Books feature.
Prevent failure caused by damaged links between pages when merging PDF files that make up a print replica book in KFX format.
Improve handling of children's books that use PDF images.
Retain filenames from KFX format during conversion to EPUB for HTML files.
Version 2.15.0 - 28 Jun 2024
Produce a PDF outline from the book's table of contents when converting fixed layout books to PDF format.
Version 2.14.0 - 19 Jun 2024
Fix incorrect handling of local_delta_fragments in Scribe notebooks. (Fixes "Book appears to have KFX containers from multiple books. (duplicate fragments)")
Version 2.13.0 - 09 Jun 2024
Handle Scribe notebooks with templates used on individual pages. (Fixes "section xxx has extra data: {nmdl.template_id: yyy}")
Version 2.12.0 - 28 May 2024
Improve handling of ruby content. (Fixes "ruby_content xxxx has extra data: ...")
Ignore extraneous BookManifest.kfx files produced by the new Kindle for Mac app.
Version 2.11.0 - 22 May 2024
Handle books containing an enhanced table of contents with chapter descriptions. This will be converted to Kindle-specific markup in the NCX file when producing an EPUB. This extra data will be discarded by calibre unless the "From KFX" toolbar action is used. (Fixes "ERROR: nav_container representation has extra data: {$146:...")
Fix page-progression-direction not being set to rtl in books with vertical right-to-left text.
Fix file gathering code intended for possible future use with books obtained from the Kindle for iOS or the new Kindle for Mac app.
Improve handling of font names that differ only in case. (Fixes "WARNING: KFX font family name serif fixed to multiple names: serif and Serif")
Support for inline interactive audio and video content in reflowable books.
Version 2.10.0 - 31 Mar 2024
Eliminate unnecessary div elements occasionally produced in HTML output.
Handle styles in ruby text. (Fixes "ruby_content xxx 1 has extra data")
Handle unexpected control characters in URLs. (Fixes "ValueError: All strings must be XML compatible: Unicode or ASCII, no NULL bytes or control characters")
Version 2.9.0 - 02 Mar 2024
Handle font names containing unexpected characters. (Fixes "invalid group reference 1 at position 3")
Handle margins present in some print replica books. (Fixes "resource e123 has extra data: {$46: 0.0}")
Version 2.8.1 - 29 Jan 2024
Fix plugin not working using calibre versions older than 6.0.
Version 2.8.0 - 25 Jan 2024
Fix conversion of Print Replica books when using calibre versions older than 6.0. (Fixes "AttributeError: 'NoneType' object has no attribute 'PdfReader'")
Fix conversion of books with ruby elements containing images. (Fixes "Exception: rb element not a child of ruby element")
Version 2.7.0 - 30 Dec 2023
Add an internal User Interface Action plugin to KFX Input. This provides much of the same functionality as the KFX Input command line interface (CLI) without the need to leave the calibre GUI. It allows conversion of books from KFX to EPUB, PDF, and CBZ formats without using the calibre conversion pipeline. Doing that avoids problems with fixed-layout books that are not well supported by calibre. Enable this feature by going to Preferences, Toolbars & menus, select "The main toolbar" from the dropdown menu, locate and select "From KFX" in the Available Actions list on the left, and click the right pointing arrow to move it over to Current Actions.
Produce PNG instead of JPEG to prevent any loss of image quality when reconstituting high definition images that were split into tiles for KFX format.
The plugin configuration option "Allow import of KFX format books from Kindles" replaces the no longer supported plugin tweak "kfx_input_set_format_virtual".
Include basic metadata in PDF and CBZ files created by conversion from KFX.
Ignore the case of file extensions.
Version 2.6.0 - 28 Nov 2023
Add the ability to convert fixed-layout books to CBZ format using the plugin's command line interface.
Do not produce a .kfx-zip file if only a single KFX file without DRM is found on import.
Ignore any AppleDouble files present in .kfx-zip files under MacOS. (Fixes "Unable to determine KFX container type of __MACOSX/B0000000_EBOK/._B0000000_EBOK.azw (00 05 16 07 00 02 00 00)'")
Version 2.5.0 - 08 Sep 2023
Fix bug introduced in previous plugin release for some print replica books. (Fixes "ERROR: Exception checking book consistency: KeyError('$564')")
Fix handling of print replica books that reuse PDF pages.
Handle a variant of hero image formatting used in some KFX books. (Fixes "ERROR: Unexpected combination of alpha (0.1796875) and opacity (1) for color rgba(255,255,255,0.180)")
Fix incorrect formatting applied to headings for some books.
Allow small variations in brush sizes in strokes contained in Scribe notebooks.
Version 2.4.0 - 01 Sep 2023
Use the KFX section name as the XHTML and SVG file names in the EPUB produced when converting Scribe notebook pages. This will make it possible to associate handwritten annotations with the book content being annotated using information from the .yjr file of the book.
Ignore page cropping data found in some print replica books. (Fixes "ERROR: resource xx has extra data: {$48: 160.0, $49: 137.0, $50: 160.0, $47: 137.0}")
Version 2.3.0 - 07 Aug 2023
Handle new heading level metadata. (Fixes "Unexpected Ion symbols used: $798, $799, $800" and "nav_container xxx has unknown type: $798")
Fix error when processing the cover of fixed layout books converted from KPF format. (Fixes "YJFragmentList item is missing: '$389'")
Version 2.2.0 - 10 Jul 2023
Miscellaneous improvements in the conversion of Scribe notebooks including handling of empty notebooks, unreferenced pages, original firmware "pen" brush type, repeated point locations, and local_delta_fragments.
Version 2.1.0 - 18 Jun 2023
Miscellaneous improvements in the conversion of Scribe notebooks.
Handle Scribe notebooks containing multiple page templates. (Only one will be active.)
Add a white background to Scribe notebook pages. This should allow them to render better in dark mode.
Change the title of EPUBs created from Scribe notebooks from "Unknown" to "Notebook" followed by the internal book ID and current date. The calibre ebook-meta command can be used to change the title or author if something else is desired.
Add an option to the plugin command line interface to create a generic EPUB cover page showing the title of the book if the book does not already have a cover.
Version 2.0.0 - 01 Jun 2023
Allow conversion of Kindle Scribe notebooks. See the plugin documentation for instructions. (This is a work in progress. Please report any incorrect rendering or errors encountered in the KFX Input plugin thread.)
Handle the PDF backed fixed layout variant of KFX format.
Improve handling of margins expressed as a percentage in cases where the width of the element is unknown.
Remove support for calibre versions prior to 5.0. (Older versions of this plugin that run under calibre 2.x through 4.x are available in
this post.)
Version 1.51.0 - 06 Feb 2023
Better handling of malformed KFX books with sections (chapters) that appear more than once in the reading order (spine) of the book. In that case it is necessary to choose the option in the KFX Input tab of conversion options to "Allow conversion to complete even if errors are detected" in order for conversion to be successful.
Allow conversion of Kindle Scribe notebook page templates using the plugin CLI.
Improve creation of semantic element tags.
Version 1.50.0 - 16 Nov 2022
Produce semantic element tags for paragraphs (<p>), headings (<h1>, <h2>, <h3>), and figures (<figure>) when possible.
Allow conversion of fixed-layout KFX children's books using the plugin CLI.
Use high resolution tiled images if available when using the CLI to produce PDFs from comics.
Version 1.49.0 - 30 May 2022
Change the content/position information collected by this plugin to replace footnote references with spaces to better support the
WordDumb plugin.
Fix occasionally missing text in the content/position information collected by this plugin when inline images are present.
Allow combining palette mode tiles into a single image.
Version 1.48.0 - 17 Apr 2022
Allow conversion of of books that use KFX Illustrated Layout such as Amazon Original Stories and Kindle in Motion books. (Fixes "KeyError('$176')" and "book fragment used multiple times: $259")
Allow conversion of table cells that contain only a horizontal rule element. (Fixes "unexpected hr found in table_row")
Support additional KFX capability (yj_fixed_layout-2) and features (yj_arabic_fixed_format-1 and yj_direction_rtl-1).
Retain the original image mode when combining grayscale tiles into a single image.
Version 1.47.0 - 15 Feb 2022
Support new KFX features. (Fixes "Unknown com.amazon.yjconversion feature: yj_mixed_writing_mode-2")
Prevent unused table thumbnail images from being included in the output EPUB when a book contains large tables.
Do not produce an empty CSS rule when a class has no styling.
Version 1.46.0 - 20 Dec 2021
Change the format of the file produced by the "--json-content" CLI option to include the position and resource names of images. See "Generating content/position information" in the plugin documentation for more information.
Support new KFX features. (Fixes "Unknown com.amazon.yjconversion feature: yj_table-11" and "Unexpected Ion symbols used: $736, $741, $742, $821, $822, $823, $824, $825.")
Version 1.45.0 - 08 Nov 2021
Handle SVG wrapped images in comics.
Version 1.44.0 - 04 Oct 2021
Fix optimization that was incorrectly removing nested div elements in some rare cases.
Version 1.43.0 - 20 Sep 2021
Support new KFX features. (Fixes "Unknown com.amazon.yjconversion feature: reflow-style-14" and "Unexpected Ion symbols used: $790, $791, $792, $793, $794, $795, $796.")
Version 1.42.0 - 25 Aug 2021
Support new KFX feature, tiled images greater than 1920 pixels high or wide (yj_hdv-2).
Support new KFX feature, text-shadow in books with vertical text (yj_vertical_text_shadow-1).
Version 1.41.0 - 06 Aug 2021
Support new KFX feature, float and clear in vertical Japanese books (jpvertical-reflow-language-7).
Support KFX feature, writing-mode:vertical-lr.
Simplify CSS by consolidating heritable properties that were split across child elements during conversion to KFX.
Version 1.40.0 - 14 Jun 2021
Support new KFX feature, vertical tables in horizontal books and vice versa (yj_table-10).
Fix forced left alignment of text not being retained during conversion.
Version 1.39.0 - 23 Apr 2021
Support new KFX feature. (Fixes "Unexpected Ion symbols used: $788" and "Unexpected Ion symbols used: $789")
Version 1.38.0 - 14 Apr 2021
Fix occasional incorrect image centering.
Internal kfxlib API change to return asset_id metadata.
Version 1.37.0 - 07 Mar 2021
Include DOCTYPE declaration when producing EPUB 2 output using the plugin command line interface.
Support nested tables and lists in KFX format.
Version 1.36.0 - 18 Nov 2020
Add an option to the plugin command line interface, "--json-content", that will produce a JSON file containing a mapping between the book's textual content and a numbering scheme that refers to it. See "Generating content/position information" in the plugin documentation for more information.
Version 1.35.0 - 23 Oct 2020
Support additional KFX features. (Fixes "Unexpected Ion symbols used: $432", "Unknown com.amazon.yjconversion feature: reflow-style-13", and "Unknown com.amazon.yjconversion feature: yj_mixed_writing_mode-1")
Version 1.34.0 - 12 Sep 2020
By default books that use a fixed layout, such as comics and print replica books, will no longer convert within calibre. The option to ignore errors can be used to force conversion, but will yield poor results. Use the KFX Input CLI for those books instead.
Add option to plugin CLI to extract PDF resources from KFX print replica books and to create a PDF file from KFX comic books.
Fix scaling of pixels and handle rotated pages when print replica to fixed-layout EPUB. (Fixes "Unexpected Ion symbols used: $549" and "Unexpected style definition: -webkit-transform")
Support additional KFX features. (Fixes "Unexpected Ion symbols used: $765, $766")
Internal code restructuring.
Version 1.33.0 - 02 Jul 2020
Handle recent changes to KFX format as produced by Kindle Previewer version 3.41.
Version 1.32.0 - 12 Jun 2020
Support additional KFX features. (Fixes "Unexpected style definition: float: $786")
Fix non-unique HTML ids occasionally generated for books having non-numeric page numbers.
Version 1.31.0 - 06 Mar 2020
Support additional KFX features. (Fixes "Unexpected style definition: page-break-after: $383" and "Unexpected style definition: page-break-before: $383")
Prevent failure if a book contains duplicated fonts. (Fixes "YJFragmentList get has multiple matches for...$418")
Version 1.30.0 - 25 Feb 2020
Support additional KFX features. (Fixes "Unexpected Ion symbols used: $134", "Unexpected style definition: page-break-after: avoid", "Unexpected style definition: page-break-before: avoid")
Version 1.29.0 - 13 Feb 2020
Support additional KFX features. (Fixes "Unexpected Ion symbols used: $73")
Version 1.28.0 - 30 Jan 2020
Support additional KFX features. (Fixes "KeyError(u'$758',)")
Ignore extraneous data in KPF files produced by Kindle Create version 1.35. (Fixes "$269 has extra data: (yj.semantics.page_entity:...")
Version 1.27.0 - 10 Jan 2020
Support additional KFX features. (Fixes "Invalid local symbol created: crop_bleed" and "Unexpected Ion symbols used: $35")
Fix handling of very small property values. (Fixes "Unexpected style definition: margin-top: -3.97364E-8lh")
Version 1.26.0 - 23 Dec 2019
Compatibility fixes for calibre beta versions using Python 3.
Version 1.25.0 - 07 Dec 2019
Support additional KFX features. (Fixes "Unexpected Ion symbols used: $46", "Conflicting margin properties: ...", and "Property margin-xxx has multiple values: ...")
Fix occasional error converting books with a mix of horizontal and vertical writing modes. (Fixes "Incorrect div content for SVG wrapper:...")
Convert line separator characters into line breaks.
Version 1.24.0 - 16 Nov 2019
Support additional KFX features. (Fixes "Unexpected Ion symbols used: $784" and "Unexpected style definition: outline-style: $330")
Version 1.23.0 - 12 Nov 2019
Support new local symbol format produced by Kindle Previewer version 3.35.
Fix occasional error converting books containing widows/orphans properties. (Fixes "TypeError('%%d format: a number is required, not unicode',)")
Version 1.22.0 - 03 Nov 2019
Ignore extraneous data in KPF files produced by Kindle Create version 1.32. (Fixes "Referenced fragment is missing from book" and "$538 has extra data: (yj.print.settings...")
Support additional KFX features. (Fixes "Unexpected Ion symbols used: $64, $762, $763" and "Unexpected ruby element type")
Version 1.21.0 - 18 Oct 2019
Support additional KFX features. (Fixes "Unexpected Ion symbols used: $131, $132, $785...")
Version 1.20.0 - 21 Sep 2019
Support new KFX local symbol format. (Fixes "$538 has extra data: (max_id: ...)")
Version 1.19.0 - 18 Sep 2019
Support additional KFX feature. (Fixes "Unexpected style definition: box-shadow:...")
Version 1.18.0 - 20 Aug 2019
Replace "--epubversion" command line option with "--epub2". The default has been changed to produce EPUB version 3.
Prevent failure to convert books that contain duplicated resources. (Fixes "KeyError(u'YJFragmentList get has multiple matches for resource...")
Prevent failure to convert some books with vertical-align in table cells (Fixes "Conflicting div -kfx-vertical-align and vertical-align in same style")
Support additional KFX features. (Fixes "Unknown com.amazon.yjconversion feature: yj_audio-2")
Internal restructuring.
Version 1.17.1 - 10 Jun 2019
Fix incorrect handling of units leading to conversion failure for some books. (Fixes "TypeError(\"unsupported operand type(s) for *: 'NoneType' and 'Decimal'\",)")
Version 1.17.0 - 03 Jun 2019
Support additional KFX features. (Fixes "Unexpected Ion symbols used: $780, $782. Unexpected style definition: line-break: strict")
In addition to the webkit properties supported by Amazon also emit the equivalent standard properties when possible.
Emit an SVG image wrapper for cover pages. (Only relevant when using the command line interface or when the "Use cover from source file" conversion option is selected.)
Internal changes in preparation for the planned switch in calibre from Python 2 to Python 3.
Version 1.16.0 - 19 Apr 2019
Handle images containing links. (Fixes "story ... content type $271 has extra data: {$179: ...}")
Fix link colors sometimes being applied to the wrong element.
Version 1.15.0 - 16 Apr 2019
Handle transparent color found in some books. (Fixes "Unexpected style definition: color: $349")
Handle new local symbol format used by Kindle Create version 1.24. (Fixes "Invalid local symbol created: ...")
Handle special case of drop cap sometimes produced by Kindle Create. (Fixes "story xxx has dropcap_chars 1 with dropcap_lines 0")
Improve conversion of complex floated content.
Improve conversion of dimensions presented as points in KFX that were originally specified as pixels.
Improve determination of default font and language.
Use KFX "layout hints" to provide semantic information in some class names.
Version 1.14.0 - 08 Mar 2019
Improve handling of font names and fallbacks for the default font of a book. (Fixes poor rendering of some books in calibre under Windows.)
Improve conversion when the book metadata specifies a language code that is less specific than that found in the book content. For example language "en" vs. "en-US".
In the command line interface the EPUBVERSION value must now be either "2" or "3". Values "2.0" and "3.0" are no longer accepted. Choosing 3 attempts to produce an EPUB that conforms to the preliminary EPUB 3.2 specification.
Version 1.13.0 - 02 Feb 2019
Handle unexpected data found in some print replica textbooks. (Fixes "TypeError: %d format: a number is required, not IonStruct")
Ignore unexpected control characters found in some print replica textbooks.
Support KPF files produced by Kindle Create version 1.20. (Fixes "$538 has extra data: ('yj.semantics.page_number_begin': ...")
Support additional KFX features. (reflow-language-2, reflow-language-expansion-1, reflow-style-12, Ion symbols $136 $137)
Version 1.12.1 - 30 Dec 2018
Support additional KFX feature. (Fixes "Unexpected Ion symbols used: $282")
Version 1.12.0 - 20 Dec 2018
Change the default value of the "kfx_input_set_format_virtual" plugin tweak to False so that by default calibre will not import books in KFX format from e-ink Kindle devices. (Books in KFX format can no longer be imported from the latest Kindle firmware, version 5.10.2.)
Fix incorrect font size used for drop caps in some cases.
Allow combinations of text-decoration line values.
Support additional KFX features. (Fixes "ERROR: Unexpected Ion symbols used: $135, $353", "ERROR: unexpected style events in $270", and "ERROR: Unknown com.amazon.yjconversion feature: yj_mathml-1".)
Version 1.11.0 - 08 Dec 2018
Add plugin tweak "kfx_input_set_format_virtual" that when set to
True will prevent import of books in KFX format from e-ink Kindle devices in calibre "Device" view.
Support additional KFX features. (Fixes "ERROR: Unknown com.amazon.yjconversion feature: yj_table-8", "ERROR: Unexpected Ion symbols used: $292, $293, $749, $750, $751, $752", and "ERROR: Unexpected Ion symbols used: $760, $761".)
Ignore extraneous data produced by Kindle Previewer version 3.28.1.
Version 1.10.0 - 11 Nov 2018
Allow books in KFX format to be imported from a Kindle using the device view. Calibre (version 2.80 or higher) will no longer treat KFX as a "virtual format" when this plugin is installed.
Improve handling of properties that combine several others in an equivalent shorthand. (Fixes "ERROR: Setting conflicting property: border-top-style...".)
Support additional KFX features. (Fixes "ERROR: Unknown com.amazon.yjconversion feature: reflow-style-11".)
Version 1.9.0 - 11 Oct 2018
Fix extra text-indent properties from being produced for some books.
Fix incorrect placement of "colspan" in table cells containing only an image. (Fixes "ERROR: Unexpected class_attribute in img: colspan")
Fix uninformative error details provided if a conversion error occurs while attempting to use the calibre viewer on a book in KFX format.
Improve handling of long path names when importing books under Windows.
Support additional KFX features. (Fixes "ERROR: Unknown com.amazon.yjconversion feature: reflow-style-8".)
Version 1.8.0 - 30 Aug 2018
Prevent occasional failures when converting some books from e-ink Kindles that contain problematic JPEG-XR images.
Support additional KFX features produced by Kindle Create version 1.12.
Version 1.7.0 - 13 Aug 2018
Fix incorrect image type sometimes being detected for books that were published containing SVG images.
Prevent conversion failure caused by unexpected content in some KFX books. (Fixes "Unexpected box-align value: justify")
Prevent conversion failure caused by alignment of lists in KFX books. (Fixes "Unexpected box-align found in ol element")
Prevent conversion failure caused by drop caps with zero length, sometimes produced by Kindle Create.
Fix incompatibility with calibre versions before 3.0 introduced in plugin version 1.2.0. (Fixes "AttributeError: 'apsw.Cursor' object has no attribute 'fetchone'" when converting from KPF format.)
Support additional KFX features.
Version 1.6.1 - 20 Jul 2018
Prevent conversion failure when a book contains an unexpected symbol count.
Version 1.6.0 - 20 Jul 2018
When converting to EPUB report in the log if the book contains any PDF resources. This can occur for print replica books.
Allow book content and resources to be unpacked and extracted as a ZIP archive using the command line interface.
Fix bug introduced in version 1.4.0 that causes incorrect styles to be produced for drop caps.
Support additional KFX features.
Version 1.5.0 - 25 Jun 2018
Create KFX-ZIP format during import even if additional files that make up the book cannot be located. This prevents potential confusion when books from Kindle for PC/Mac in KFX format fail to import, previously resulting in AZW format.
Improve error messages associated with unsuccessful import of books in KFX format.
Support books containing unicode characters with code points outside of the basic multilingual plane, such as emoji.
Retain original image file names when converting KPF files produced by Kindle Create.
Prevent conversion failure when unexpected quoting of font names is encountered. Fixes conversion error: "Incorrectly quoted font name: 'arial"
Prevent conversion failure when the OS platform on which the plugin is running cannot be properly determined.
Version 1.4.0 - 21 May 2018
Fix error when converting KPF files produced by Kindle Create version 1.6: CorruptError: malformed database schema (?)
Do not include extra metadata in OPF that could lead to duplicate cover pages when converting comics.
Support additional KFX features.
Version 1.3.0 - 09 Apr 2018
Fix error during conversion of books with referenced fonts that are not present: "'unicode' object has no attribute 'list_symbols'"
Support additional KFX features.
Version 1.2.0 - 02 Apr 2018
Added an option to proceed with conversion even if unknown or incorrect content is detected.
Handle additional features of KPF format produced by Kindle Create.
Fix KFX-ZIP archives not being created for e-book samples.
Fix debug message logging when creating KFX-ZIP archives.
Internal restructuring and performance improvements.
Version 1.1.0 - 31 Jan 2018
Added a built-in File Type Plugin to automatically gather the component files of a book and produce KFX-ZIP format during book import. This eliminates the need for the user to produce KFX-ZIP files manually, simplifying the process of importing KFX books into calibre. (DRM removal must still be accomplished by other means, prior to import.)
Added another built-in File Type Plugin to combine the components of a KFX-ZIP into monolithic KFX format. This process will only succeed if all of the components of the book are present in the KFX-ZIP and do not contain DRM. This makes it easier to determine whether on not the import was successful since a successful import will result in KFX format and an unsuccessful one will result in KFX-ZIP format.
Added a Metadata Reader Plugin to extract KFX book metadata. This allows the title, author, and other metadata to appear in the calibre book entry when importing a KFX book.
Ignore approximate page numbers created by the KFX Output plugin.
Handle changes to KPF format produced by Kindle Create 1.3.30.0 and Kindle Previewer 3.17.1.
Fix KPF format not being accepted for conversion using the GUI interface.
Allow conversion of additional KFX features.
Improve detection of unsupported KFX features.
Version 1.0.1 - 16 Oct 2017
Remove extraneous files that were inadvertently included in the initial release.
Version 1.0.0 - 16 Oct 2017
Initial release.