使用Python制作漫画和小说电子书的方法总结

使用Python制作漫画和小说电子书的方法总结

电子书制作分为两类: 文字类书籍 和 漫画类书籍

今天就来介绍一下如何使用Python制作这两种电子书籍.

文字类电子书制作

制作电子书可以使用ebooklib库,制作起来只需要简单的若干步骤就可以生成一本epub电子书, 然后再通过kindlegen工具转换各种格式就可以了。

  • Python库的安装方法 pip install ebooklib

制作电子书的主要步骤如下:

  1. 创建电子书
  2. 设置电子书的作者、书名等信息
  3. 为电子书添加简介
  4. 添加章节内容
  5. 为电子书制作目录
  6. 保存到文件

开始制作电子书

制作电子书代码示例如下:

from ebooklib import epub

book = epub.EpubBook()

book.set_identifier('sample123456')
book.set_title('Sample book')
book.set_language('en')
book.add_author('Aleksandar Erkalovic')

book.add_metadata('DC', 'description', 'This is description for my book')
book.add_metadata(None, 'meta', '', {'name': 'key', 'content': 'value'})

# intro chapter
c1 = epub.EpubHtml(title='Introduction',
                   file_name='intro.xhtml',
                   lang='en')
c1.set_content(u'<html><body><h1>Introduction</h1><p>Introduction paragraph.</p></body></html>')

# about chapter
c2 = epub.EpubHtml(title='About this book',
                   file_name='about.xhtml')
c2.set_content('<h1>About this book</h1><p>This is a book.</p>')

book.add_item(c1)
book.add_item(c2)


style = 'body { font-family: Times, Times New Roman, serif; }'

nav_css = epub.EpubItem(uid="style_nav",
                        file_name="style/nav.css",
                        media_type="text/css",
                        content=style)
book.add_item(nav_css)


# 目录TOC设置

book.toc = (epub.Link('intro.xhtml', 'Introduction', 'intro'),
              (
                epub.Section('Languages'),
                (c1, c2)
              )
            )

# 书脊设置
book.spine = ['nav', c1, c2]

# 最后,需要添加NCX和导航信息
book.add_item(epub.EpubNcx())
book.add_item(epub.EpubNav())

# 电子书输出到文件
epub.write_epub('test.epub', book)

电子书的制作过程就是这样的流程了。

漫画电子书制作

  1. 使用Python库 KindleComicConverter
  2. 格式转会工具kindlegen

具体使用方法

  1. 安装KindleComicConverter 库命令: pip install KindleComicConverter
  2. 安装后得到了一个命令kcc-c2e, 使用这个命令就可以将包含图片的目录制作成漫画电子书文件, 命令示例: kcc-c2e --forcecolor -p KPW -f MOBI -o ./鬼灭之刃第001话.epub./鬼灭之刃第001话/
  3. 安装kindlegen工具, 下载 kindlegen, 解压后将kindlegen存放到 /usr/local/bin 目录下即可。

kcc-c2e命令介绍:

  • --forcecolor : 表示生成漫画书保留色彩信息, 如果不增加就会将图片处理成灰度图片
  • -p KPW : 生成适配KPW设备的电子书, 可以在帮助信息中看到支持的设备列表
  • -f MOBI : 保存文件格式, 支持MOBIEPUBCBZKFX四种。
  • -o outpath : 生成文件名路径,如果是包含文件名,文件名后追要以".epub"结尾。

批量制作漫画书

准备工作完成,接下来开始制作电子书了。

现在根据自己的文件路径信息执行一下命令:

kcc-c2e --forcecolor -p KPW -f MOBI -o ./鬼灭之刃第001话.epub ./鬼灭之刃第001话/

此时,会先生成鬼灭之刃第001话.epub文件,然后再转换成MOBI格式的./鬼灭之刃第001话.mobi文件(转换使用的是kindlegen工具命令)。

下面是一个简单的按照目录批量生成漫画电子书的脚本:

#!/usr/bin/env bash

# kcc-c2e -b 2 -p KPW -o /data/Images/comics/out/鬼灭之刃 -f MOBI 鬼灭之刃
usage(){
cat <<END
使用说明:
        `basename $0` <漫画名称目录>
        用于批量生成多卷Volume文档
参数说明:
        漫画目录名是包含子目录(卷)结构的
#
# 漫画名目录
#   卷1名
#   卷2名
#   ...
#   卷n名
# 生成文件名为:
#   漫画名_卷1名.mobi
#   漫画名_卷2名.mobi
#   ...
#   漫画名_卷n名.mobi
# 保存目录固定: /data/Images/comics/out
END
}

if [ "$#" == "0" -o "$1" = "-h" ] ; then
    usage
    exit 0
fi

fn_path="$1"
main_name=`basename $fn_path`
base_path=`dirname $fn_path`

echo "file_path: $fn_path"
echo "base_path: $base_path"
echo "file_name: $main_name"

outdir="/data/Images/comics/out/$main_name"

if [ "$base_path" = "." -o "$base_path" = "" ] ; then
        base_path="/data/Images/comics"
fi

fn_path="$base_path/$main_name"
if [ ! -r "$fn_path" ] ; then
        echo "$fn_path doesnt exist!"
        exit 1
fi

if [ ! -r "$outdir" ] ; then
        mkdir $outdir
        if [ "$?" != "0" ] ; then
                echo "输出目录创建失败:[$outdir]"
                exit 1
        fi
fi

cd $base_path/$main_name

for chapter_name in `ls`
do
        out_name="$outdir/${main_name}_${chapter_name}.epub"
        mobi_out_name="$outdir/${main_name}_${chapter_name}.mobi"
        if [ ! -r "$mobi_out_name" ] ; then
                kcc-c2e --forcecolor -p KPW -f MOBI -o $out_name $chapter_name
        fi
done

rm -rf /tmp/mobi-*
rm -f /tmp/mbt-*

到这里基本上就已经介绍完制作方法了, 如果生成漫画书时出现一些图片读取错误那就表示图片破损或者读取的不是图片文件, 可以根据错误信息找到对应图片确认是否有错误并修正,然后单独使用kcc-c2e命令生成就可以了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

根叔的修行笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值