# Comicon
Comicon is a lightweight comic converter library between CBZ, PDF, EPUB, and MOBI that preserves metadata. Once Comicon has converted a comic, it is **guaranteed** that the reverse conversion will restore the original comic with all of its original metadata.
## Usage
For a command line interface, please see [Mandown](https://github.com/potatoeggy/mandown).
```python
import comicon
comicon.convert("comic.cbz", "comic.epub")
```
## Installation
Amazon's **Kindlegen** is required if you want to convert to MOBI. See [here](https://github.com/ciromattia/kcc/issues/371) for more information.
Comicon is available from PyPI:
```
pip install comicon
```
## Supported conversions
| Format | Convert from? | Convert to? |
| ------ | ------------------ | ------------------ |
| CBZ | :heavy_check_mark: | :heavy_check_mark: |
| EPUB | :heavy_check_mark: | :heavy_check_mark: |
| PDF | :heavy_check_mark: | :heavy_check_mark: |
| MOBI | :x: | :heavy_check_mark: |
### Format discrepancies
- Only EPUB supports a table of contents. CBZ and PDF will encode the table of contents so that it is restored upon converting to EPUB.
- PDF does not support importing genre data due to a lack of library support. This may be worked around in the future.
## Notes
Under the hood, Comicon converts each format into the **Comicon Intermediate Representation (CIR)** — more or less a strictly structured folder, which allows for many guarantees to be made for each input and output plugin. See `comicon.cirtools` for more information.
For new input and output formats to be added, they should be added in `comicon.inputs` or `comicon.outputs` respectively as a new module and in the `__init__.py` file(s).
Raw data
{
"_id": null,
"home_page": "https://github.com/potatoeggy/comicon",
"name": "comicon",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": "converter, comic, cbz, epub, pdf, mobi",
"author": "potatoeggy",
"author_email": "eggyrules@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/52/15/29024d915b252f8fc2e7bde884316063236014da127c93a9f5e7d9fa6df9/comicon-1.4.0.tar.gz",
"platform": null,
"description": "# Comicon\n\nComicon is a lightweight comic converter library between CBZ, PDF, EPUB, and MOBI that preserves metadata. Once Comicon has converted a comic, it is **guaranteed** that the reverse conversion will restore the original comic with all of its original metadata.\n\n## Usage\n\nFor a command line interface, please see [Mandown](https://github.com/potatoeggy/mandown).\n\n```python\nimport comicon\n\ncomicon.convert(\"comic.cbz\", \"comic.epub\")\n```\n\n## Installation\n\nAmazon's **Kindlegen** is required if you want to convert to MOBI. See [here](https://github.com/ciromattia/kcc/issues/371) for more information.\n\nComicon is available from PyPI:\n\n```\npip install comicon\n```\n\n## Supported conversions\n\n| Format | Convert from? | Convert to? |\n| ------ | ------------------ | ------------------ |\n| CBZ | :heavy_check_mark: | :heavy_check_mark: |\n| EPUB | :heavy_check_mark: | :heavy_check_mark: |\n| PDF | :heavy_check_mark: | :heavy_check_mark: |\n| MOBI | :x: | :heavy_check_mark: |\n\n### Format discrepancies\n\n- Only EPUB supports a table of contents. CBZ and PDF will encode the table of contents so that it is restored upon converting to EPUB.\n- PDF does not support importing genre data due to a lack of library support. This may be worked around in the future.\n\n## Notes\n\nUnder the hood, Comicon converts each format into the **Comicon Intermediate Representation (CIR)** \u2014 more or less a strictly structured folder, which allows for many guarantees to be made for each input and output plugin. See `comicon.cirtools` for more information.\n\nFor new input and output formats to be added, they should be added in `comicon.inputs` or `comicon.outputs` respectively as a new module and in the `__init__.py` file(s).\n",
"bugtrack_url": null,
"license": "AGPL-3.0-only",
"summary": "A simple comic conversion library between CBZ/EPUB/MOBI/PDF",
"version": "1.4.0",
"project_urls": {
"Documentation": "https://github.com/potatoeggy/comicon",
"Homepage": "https://github.com/potatoeggy/comicon",
"Repository": "https://github.com/potatoeggy/comicon"
},
"split_keywords": [
"converter",
" comic",
" cbz",
" epub",
" pdf",
" mobi"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "300cc6b7a0719b4e26ec1fa1cad05a01b23b87a8d9a98f870d0a817a53992679",
"md5": "1086b0ebc8d381b4f9ed85db81b4db43",
"sha256": "a7499dd38474d4c12218b376fe23b61d5b1d40f7536677cd0dc11500a25e942c"
},
"downloads": -1,
"filename": "comicon-1.4.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "1086b0ebc8d381b4f9ed85db81b4db43",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 31339,
"upload_time": "2025-01-12T04:06:51",
"upload_time_iso_8601": "2025-01-12T04:06:51.316367Z",
"url": "https://files.pythonhosted.org/packages/30/0c/c6b7a0719b4e26ec1fa1cad05a01b23b87a8d9a98f870d0a817a53992679/comicon-1.4.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "521529024d915b252f8fc2e7bde884316063236014da127c93a9f5e7d9fa6df9",
"md5": "11ae5c57b037052e4b4e58236971ff21",
"sha256": "9d0699ec1a0233e86740b8128fc89e4c698cc5f42bb15a8755de2ca97e2aafe5"
},
"downloads": -1,
"filename": "comicon-1.4.0.tar.gz",
"has_sig": false,
"md5_digest": "11ae5c57b037052e4b4e58236971ff21",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 25939,
"upload_time": "2025-01-12T04:06:53",
"upload_time_iso_8601": "2025-01-12T04:06:53.586026Z",
"url": "https://files.pythonhosted.org/packages/52/15/29024d915b252f8fc2e7bde884316063236014da127c93a9f5e7d9fa6df9/comicon-1.4.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-01-12 04:06:53",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "potatoeggy",
"github_project": "comicon",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "comicon"
}