跳转到主要内容

能够处理EPUB2/EPUB3和Kindle格式的电子书库

项目描述

关于EbookLib

EbookLib是一个用于管理EPUB2/EPUB3和Kindle文件的Python库。它能够以编程方式读取和写入EPUB文件(Kindle支持正在开发中)。

API设计得尽可能简单,同时又能实现复杂的功能。它支持封面、目录、脊、指南、元数据等。

EbookLib被用于Sourcefabric的Booktype <https://github.com/sourcefabric/Booktype/>,以及sprits-it! <https://github.com/the-happy-hippo/sprits-it>fanfiction2ebook <https://github.com/ltouroumov/fanfiction2ebook>viserlalune <https://github.com/vjousse/viserlalune>Telemeta <https://github.com/Parisson/Telemeta>

EbookLib的GNU/Linux包可在Debian <https://packages.debian.org/python-ebooklib>Ubuntu <http://packages.ubuntu.com/python-ebooklib>中找到。

Sphinx文档是从docs/目录中的模板生成的,并可在http://ebooklib.readthedocs.io中获取。

用法

读取

import ebooklib
from ebooklib import epub

book = epub.read_epub('test.epub')

for image in book.get_items_of_type(ebooklib.ITEM_IMAGE):
    print(image)

写入

from ebooklib import epub

book = epub.EpubBook()

# set metadata
book.set_identifier("id123456")
book.set_title("Sample book")
book.set_language("en")

book.add_author("Author Authorowski")
book.add_author(
    "Danko Bananko",
    file_as="Gospodin Danko Bananko",
    role="ill",
    uid="coauthor",
)

# create chapter
c1 = epub.EpubHtml(title="Intro", file_name="chap_01.xhtml", lang="hr")
c1.content = (
    "<h1>Intro heading</h1>"
    "<p>Zaba je skocila u baru.</p>"
    '<p><img alt="[ebook logo]" src="static/ebooklib.gif"/><br/></p>'
)

# create image from the local image
image_content = open("ebooklib.gif", "rb").read()
img = epub.EpubImage(
    uid="image_1",
    file_name="static/ebooklib.gif",
    media_type="image/gif",
    content=image_content,
)

# add chapter
book.add_item(c1)
# add image
book.add_item(img)

# define Table Of Contents
book.toc = (
    epub.Link("chap_01.xhtml", "Introduction", "intro"),
    (epub.Section("Simple book"), (c1,)),
)

# add default NCX and Nav file
book.add_item(epub.EpubNcx())
book.add_item(epub.EpubNav())

# define CSS style
style = "BODY {color: white;}"
nav_css = epub.EpubItem(
    uid="style_nav",
    file_name="style/nav.css",
    media_type="text/css",
    content=style,
)

# add CSS file
book.add_item(nav_css)

# basic spine
book.spine = ["nav", c1]

# write to the file
epub.write_epub("test.epub", book, {})

许可

EbookLib遵循AGPL许可证 <LICENSE.txt>

作者

作者完整列表在AUTHORS.txt <AUTHORS.txt>文件中。

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪一个,请了解更多关于 安装包 的信息。

源分布

EbookLib-0.18.tar.gz (115.5 kB 查看哈希值)

上传时间