用于创建epub3文件的简单极简库

mkepub的Python项目详细描述


Build StatusCoverage Statuslicense

mkepub

mkepub是创建.epub文件的极简库。

pros:

  • 简单易用,极简的api。
  • 自动生成目录。
  • 支持任何深度的嵌套TOC。
  • 支持嵌入图像。
  • 正在进行中的图书存储在磁盘上,而不是内存中,启用 创建大型(5000多页,20多个mib)epub文件。
  • 遵守EPUB3规范。
  • 支持大多数epub元数据,包括语言、主题、 说明和权利。

cons:

  • 不支持自定义页文件名或目录结构。
  • 不支持读取或编辑epub文件。
  • 不支持字体嵌入或最不常用的epub 特征。
  • 无内容验证-使用损坏或不受支持的HTML代码作为页面 内容将导致mkepub成功创建一个.epub文件 不符合EPUB3规范。
  • 可能还有其他问题。

基本用法

importmkepubbook=mkepub.Book(title='An Example')book.add_page(title='First Page',content='Lorem Ipsum etcetera.')book.save('example.epub')

高级使用

importmkepubbook=mkepub.Book(title='Advanced Example',author='The Author')# multiple authors can be specified as a list:# mkepub.Book(title='Advanced Example', authors=['The First Author', 'The Second Author'])withopen('cover.jpg','rb')asfile:book.set_cover(file.read())withopen('style.css')asfile:book.set_stylesheet(file.read())first=book.add_page('Chapter 1','And so the book begins.')child=book.add_page('Chapter 1.1','Nested TOC is supported.',parent=first)book.add_page('Chapter 1.1.1','Infinite nesting levels',parent=child)book.add_page('Chapter 1.2','In any order you wish.',parent=first)book.add_page('Chapter 2','Use <b>html</b> to make your text <span class="pink">prettier</span>')book.add_page('Chapter 3: Images','<img src="images/chapter3.png" alt="You can use images as well">')# as long as you add them to the book:withopen('chapter3.png','rb')asfile:book.add_image('chapter3.png',file.read())book.save('advanced.epub')

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
JavaEclipse巨大的CPU峰值   java如何修复错误“上次成功发送到服务器的数据包是0毫秒前的。驱动程序尚未从服务器接收到任何数据包”   Java算法的C等价加密   java jackson序列化程序在禁用注释时引发NullPointerException   java制作了一种使用星星创建X为正方形的图像的方法   java软键盘切断了EditText/TextInputText控件的底部   java如何在jboss eap 7.3上启用cors?   摆动Java排列不规则形状   java逻辑Maven版本编号   在JShell中,如何评估整个java代码?   servlets对Java war文件进行签名并包含清单是有效的。MF在<warroot>/METAINF中   java在JTable中添加背景图像   java未收到来自服务器的响应   java解析Weblogic依赖项在编译时工作正常,但在运行时失败   带有两个Android应用程序模块的java Gradle项目   java有没有一种方法可以编写一个执行预定义手势和动作的应用程序?   java为什么finish()使所有活动都不能返回到以前的活动?   选项卡窗格的Java Swing makeTextPanel()方法