最近在使用一个网站: 一句话生成电子书http://www.ai2book.com.cn, 大概思考了一下它的实现技术,其实也不难,总结成文。当然真正做起来还是有很多细节需要精雕细琢才能有不错的用户体验的。

在这里插入图片描述

要通过单条命令/一句话快速生成主流格式(EPUB/PDF/MOBI)的电子书,无需复杂配置,同时适配无代码操作、命令行快捷执行、自定义编程三种使用场景,下面分不同方案给出开箱即用的实现方法,核心都是「极简输入+一键输出」。

一、最优解:命令行组合工具(Pandoc+Calibre)

这是行业标准方案,真正实现一句话生成,跨平台兼容Windows/Mac/Linux,支持从TXT/Markdown/HTML等常见源文件生成全格式电子书,转换质量高、自带目录排版。

前置准备

先安装两个核心工具(复制对应系统命令一键安装):

  1. Pandoc:格式转换核心引擎
    • Mac:brew install pandoc
    • Windows:winget install JohnMacFarlane.Pandoc
    • Linux:sudo apt install pandoc
  2. Calibre:补全EPUB/MOBI格式支持,自带ebook-convert命令
    • 官网下载:https://calibre-ebook.com/download
    • 安装后将Calibre安装目录加入系统环境变量(Windows默认路径:C:\Program Files\Calibre2
一句话生成命令(分场景直接用)

源文件推荐用Markdown格式(支持标题、加粗、列表、目录,排版最规范),新建book.md写入内容(示例开头):

# 极简电子书教程
## 第一章 快速上手
一句话生成电子书的核心是工具组合,无需手动排版。
## 第二章 格式适配
EPUB适配手机阅读器,PDF适合打印,MOBI兼容Kindle。
  1. 生成EPUB格式(手机/掌阅/微信读书适配)
    pandoc book.md -o book.epub --metadata title="我的电子书" --metadata author="豆包" --toc
    
  2. 生成PDF格式(打印/电脑阅读)
    pandoc book.md -o book.pdf --metadata title="我的电子书" --metadata author="豆包" --toc -V fontsize=12pt -V papertype=a4
    
  3. 生成Kindle兼容的MOBI格式
    ebook-convert book.md book.mobi --title "我的电子书" --author "豆包" --toc
    
  4. 从纯文本TXT直接生成
    pandoc book.txt -o book.epub --metadata title="纯文本电子书" --toc
    
命令参数说明
  • --metadata:定义电子书标题、作者等基础信息
  • --toc:自动生成目录(核心排版功能)
  • -V:自定义PDF字体、纸张尺寸等样式

二、无代码方案:在线工具(无需安装,浏览器操作)

适合不想配置命令行的新手,粘贴内容/上传文件→一键下载电子书,本质也是「一句话式操作」,主流工具如下:

  1. Calibre Online:https://ebook.online-convert.com/
    • 操作:上传TXT/Markdown文件→选择输出格式(EPUB/PDF/MOBI)→点击「转换」→下载
  2. Markdown to EPUB:https://md2epub.com/
    • 操作:直接粘贴Markdown内容→填写标题作者→一键生成EPUB
  3. Convertio:https://convertio.co/
    • 操作:上传源文件→选择目标电子书格式→转换下载,支持批量处理

三、自定义方案:Python一键脚本(高自由度)

如果需要定制封面、插入图片、动态生成内容,可将生成逻辑封装为Python脚本,一句话执行脚本即可输出电子书,基于ebooklib库生成标准EPUB格式。

前置准备

安装依赖库:

pip install ebooklib
极简封装脚本(create_ebook.py
from ebooklib import epub
import sys

def build_epub(title, author, content_path, output_name):
    # 创建电子书对象
    book = epub.EpubBook()
    # 设置基础元信息
    book.set_identifier("id123456")
    book.set_title(title)
    book.set_language("zh")
    book.add_author(author)

    # 读取内容文件并创建章节
    with open(content_path, "r", encoding="utf-8") as f:
        content = f.read()
    # 拆分Markdown标题生成多章节(简易逻辑)
    chapters = content.split("# ")
    for idx, chap in enumerate(chapters[1:], 1):
        if not chap.strip():
            continue
        # 拆分章节标题和内容
        chap_title, chap_content = chap.split("\n", 1)
        chapter = epub.EpubHtml(title=chap_title, file_name=f"chap_{idx}.xhtml", lang="zh")
        chapter.content = f"<h1>{chap_title}</h1><p>{chap_content.replace('\n', '</p><p>')}</p>"
        book.add_item(chapter)
        book.toc.append(chapter)

    # 添加导航、 spine(阅读顺序)
    book.add_item(epub.EpubNcx())
    book.add_item(epub.EpubNav())
    book.spine = ["nav"] + [item for item in book.items if isinstance(item, epub.EpubHtml)]

    # 生成EPUB文件
    epub.write_epub(output_name, book, {})

if __name__ == "__main__":
    # 命令行传入参数:标题 作者 内容文件 输出文件名
    build_epub(sys.argv[1], sys.argv[2], sys.argv[3], sys.argv[4])
一句话执行生成
python create_ebook.py "自定义电子书" "作者名" book.md my_custom_book.epub

总结

  1. 追求效率+通用格式:优先用「Pandoc+Calibre」命令行方案,复制单条命令即可生成,适配所有设备;
  2. 零配置需求:选择在线工具,浏览器内完成全流程,无需安装任何软件;
  3. 需要自定义排版/动态内容:用Python封装脚本,一句话执行,可扩展封面、图片、复杂目录逻辑;
  4. 源文件优先选Markdown格式,排版兼容性和美观度远高于纯TXT。
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐