使用EbookLib时如何将HTML文件设为章节内容?
问题描述
- 使用EbookLib库制作EPUB时,希望直接通过HTML文件设置章节内容,但目前仅能通过传入纯HTML字符串实现,示例代码如下:
c1 = epub.EpubHtml(title='Chapter one', file_name='ch1.xhtml', lang='en') c1.set_content(u'<html><body><h1>Introduction</h1><p>Introduction paragraph.</p></body></html>') - 尝试
c1.set_content(file_name='ch1.xhtml')的方式无效,该方法仅接受纯HTML内容,询问是否可以直接传入HTML文件设置章节内容?
解决方法
EbookLib的set_content方法确实只支持传入HTML字符串,无法直接接收文件路径,但你可以手动读取HTML文件内容后再传递给该方法,具体代码示例如下:
# 读取本地HTML文件内容 with open('ch1.xhtml', 'r', encoding='utf-8') as html_file: chapter_content = html_file.read() # 创建章节对象并设置内容 c1 = epub.EpubHtml(title='Chapter one', file_name='ch1.xhtml', lang='en') c1.set_content(chapter_content)
注意事项
- 读取文件时请使用正确的编码(如
utf-8),避免出现乱码; - 若HTML文件包含特殊字符或转义序列,直接读取传递即可,无需额外处理(除非文件本身存在编码问题)。
内容的提问来源于stack exchange,提问作者moonlaney
相关产品推荐
相关产品推荐

