相关文章
虽然 Z-Library 上已经有很多 EPUB 格式的电子书了,可是也有不少书只有 PDF 扫描版本,缺点不少:体积偏大、标注不方便、无夜间模式、文本查询和搜索不方便等。如果能把这些 PDF 图书转换成 EPUB 格式该有多好啊!可惜目前并没有简单有效的方法。
我想转换的几本图书
主题是清朝历史。作者都是辽宁师范大学的喻大华。虽然说这个喻老师本质上还是属于体制内既得利益者,书里也说了一些共产党的好话,但这几本书的内容还是比较吸引我的。
小时候看古装剧时发现人们的衣食住行和我们非常不同,于是就有这么个疑问:古代是怎么过渡到现代的?节点自然就是最后一个朝代——清朝。可惜历史书上一讲到清朝就断代,康熙乾隆是一副古代盛世的模样,然后马上就是鸦片战争——穿着奇装异服的英军端着大炮打过来了。然后突然长相很像现代人的孙中山就出来了。感觉太跳跃了,没有一个过渡时期。
喻老师的这几本图书从乾隆中期的嘉庆出生开始(《还珠格格》大家都熟悉吧?就是这个时期),一直写到文化大革命时期溥仪去世,除了同治年间(1862 – 1874)少数几件大事(例如杨乃武与小白菜案、太平天国灭亡事件)略去之外,基本覆盖了中国古代过渡到现代这 200 年历史。这个 GAP 补上了。
这几本书如下:
- 嘉庆皇帝(2009年出版,ISBN = 9787020076758)
- 第二版:守成天子 – 喻大华评说嘉庆帝 (2016年,ISBN = 9787500863717)
- 道光皇帝(2009年,ISBN = 9787535436429)
- 第二版:内忧外患 – 喻大华评说道光帝 (2017年,ISBN = 9787500865735)
- 咸丰皇帝(2010年,ISBN = 9787802196605)
- 第二版:薄命天子- 喻大华评说咸丰帝 (2018年,ISBN = 9787500868545)
- 囚徒天子光绪皇帝(2011年,ISBN = 9787100086431)
- 第二版:傀儡天子- 喻大华评说光绪帝(2018年,ISBN = 9787500868880)
- 末代皇帝溥仪(2011年,ISBN = 9787802197671)
- 第二版:末代皇帝 – 喻大华评说宣统帝 (2020年,ISBN = 9787500873600)
起初是在《百家讲坛》视频上看到喻老师的的讲解。后来发现的图书,内容比《百家讲坛》视频更丰富。我第一次看是在2015年左右,因此这几本书看的都是第一版,第二版没看。
截至本文撰写时,Z-Library 上有《道光皇帝》第一版的 EPUB 版本。其他四本图书则只有扫描 PDF 版(《溥仪》是第一版,另外三本均为第二版)。个人感觉第二版明显没有第一版好,因为第一版里面有很多精彩的照片,第二版全部换成了手工绘图,两章才有 1 幅绘图,没啥意思。
步骤
OCR
这一步其实最难,目前并没有找到很好的中文 OCR 工具。我使用 macOS 系统自带的 OCR,虽然大部分文字能复制出来,但是很多形近字会出错。例如:
- 进人(应该是“进入”)
- 天折(应该是“夭折”)
- 毕竞(应该是“毕竟”)
尝试过一些自动化工具,感觉效果不理想。看看今年秋季新发布的带 AI 的 macOS 是否会有改善。
编写 markdown 文件
git clone https://github.com/phodal/ebook-boilerplate.git
cd chapters
然后在 chapters 目录里面建立 .md 文件,每章一个文件,文件名随意。文件里面粘贴 OCR 的内容。后面编译时会自动识别 .md 文件中的一级标题和二级标题,并以此建立 EPUB 的目录。
上面提到 OCR 会出现形近字的错误。而且相同的错误词语会出现多次。所以可以利用 sed 命令做一次性替换。例如把所有的“天折”修改成“夭折”
find . -path "*/chapters/*.md" -exec sed -i '' 's/天折/夭折/g' {} +
设置 CSS
git clone 下来的根目录里有 style.css 文件,在这里可以设置自己喜欢的 CSS 样式。
/* 去掉列表前面的1、2、3、4等编号。这个很重要,否则自动生成的目录上带着1、2、3、4等,不好看 */
ol {
list-style-type: none;
}
/* 下面这些可有可无 */
/* 给标题下面增加虚线的分割线 */
h1, h2 {
border-bottom: 1px dashed #4f5051;
}
/* 普通段落的样式。中文一般都会开头空两格 */
p {
line-height: 150%;
text-indent: 2em;
font-family: sans-serif;
}
/* 引用的样式,对应 markdown 里面的 > 后面的内容 */
blockquote {
border-left: 0.3rem solid #1abc9c;
margin-left: 0;
margin-right: 0;
font-size: 80%;
}
blockquote p {
font-family: 'STKaiti', 'Kaiti', serif;
}
效果图如下:
设置封面
封面图片直接用 PDF 的封面图片即可,文件名改成 cover.jpg,放入 img 目录下面即可。
编译
首先如果是 macOS 系统,要修改一下 init.sh 文件,改成这样:
sed -i '' "s/Phodal Huang/$author/g" "build/author.html" "build/metadata.xml" "build/title.txt" "Makefile"
sed -i '' "s/电子书模板/$bookname/g" "build/author.html" "build/metadata.xml" "build/title.txt" "Makefile"
即在 -i
后面要加上空字符 ''
。因为 macOS 里面的 sed
和 Linux 不一样。
然后再修改一下 Makefile 文件,因为作者提供的 Makefile 没有给 EPUB 添加 CSS。我们自己加进去。
epub: markdown
pandoc -s $(filename).md -t epub -o $(filename).epub -c style.css \
--epub-metadata $(include_dir)/metadata.xml \
--epub-cover-image img/cover.jpg \
--title-prefix $(title) \
--toc
然后安装好 pandoc,就可以通过 make epub 运行了。运行结束之后,在当前目前下面会生成 ebook.epub
文件,就可以加载在 Apple Books 里面看了。
上传到 Z-Library
把 ebook.epub
文件拖过去,然后填入 ISBN 号,系统会自动补充元数据。提交之后会被审核几个小时,审核通过之后即可公开。
目前已上传完成(注意前面的主域名 zh.singlelogin.re 可能会失效,需要去 Z-Library 官方推特上找新的域名)的图书如下,会慢慢更新:
- 守成天子 – 喻大华评说嘉庆帝 (2016年,ISBN = 9787500863717,URL:https://zh.singlelogin.re/book/28906994/7d9dce)
- 薄命天子- 喻大华评说咸丰帝 (2018年,ISBN = 9787500868545,URL:https://zh.singlelogin.re/book/29378118/eb2046/)
- 傀儡天子- 喻大华评说光绪帝(2018年,ISBN = 9787500868880,URL:https://zh.singlelogin.re/book/29378122/bd6dd9/)
- 末代皇帝溥仪(2011年,ISBN = 9787802197671,URL:https://zh.singlelogin.re/book/29378124/440d39/)
不同设备之间阅读进度无法同步的问题
Apple Books 的优点除了省电之外,就是不同设备之间可以同步阅读进度和书签、注记等。可是我做的这几个 EPUB 却出现了如下的 bug:
- 书签、注记不能同步。
- 阅读进度显示有大 bug:iOS 上显示的是 macOS 上的阅读进度,无论 iOS 上本身阅读到百分之多少,首页的进度始终不更新。 macOS 上的阅读进度倒是正常的。
这原因主要在于:我们一般操作都是在 macOS 上双击打开 EPUB 文件,让 Apple Books 加载 EPUB 图书,然后该图书就同步到了 iOS 上。这时就会产生 bug。一个解决方案如下:
- 删除出现 bug 的图书(选择在所有设备里都删除)。
- 在 macOS 上,把 EPUB 文件上传到 iCloud 任意一个文件夹。
- 在 iOS 上,从 iCloud 中下载这个 EPUB 文件,打开。
- 在 iOS 上开始阅读,此时 macOS 上也会出现这个图书,可以下载。过几秒钟后,进度会显示一致。
- (不太确定)在 iOS 上不要设置该图书“阅读完毕”,否则进度同步功能又会出现故障。
这个解决方案原先来自如下的 Reddit 贴文,只不过他用的是 Google Drive,我直接换成了 iCloud。
看书比刷抖音有意思的多。
MacOS里面的sed多少有点烦啊,以前在Linux写的脚本发现用不了
现在有 ChatGPT 了,无论是什么系统它都能给你正确的解决方案。
Mac自带的OCR?我在我的Mac上没找到
意思就是用 macOS 自带的“预览”打开扫描的图片或者 PDF,就可以直接把里面的文字复制下来。这个功能叫做 LiveText,需要 macOS Monterey 系统以上,如果是 Apple Silicon 芯片的 mac,效率会更高一些。
😆 原来是用“预览”打开
可以考慮用chatgpt來糾錯。
試過了,效果不佳
也可以用【白描】+【sigil】,适合小说散文哲学文学之类基本是纯文本的书,复杂点的带公式、图片、表格的话,用啥方法都费事,得手动修
1、PDF整理质量可以就直接用,不太行的话用CEP处理一下,把页眉页脚页码啥的全部裁掉,只保留正文部分。
2、用【白描】进行OCR,个人感觉准确率还挺高的,简体繁体都不错,只要书不是很糊,很少有错字,偶尔一两个也不会影响阅读。
3、OCR完还可以人工校对一下,【白描】自己是一边图片一边文字,两边都可以滚动,快速过一遍,修理一下空行,可以直接合并所有页面并导出txt格式。
3、把txt扔进sigil就行了。
4、CSS想加了再改一遍,不加也不太影响,把章节名弄一下就够。
【白描】OCR 不错,sigil 太笨重了好像
感觉也还好,比Calibre强,我没有编程基础,所以觉得这种软件比敲代码好学
古代是怎么过渡到现代的? 😆
现在能静下心来看书越来越难了,手机像鸦片一样把我的所有空闲事件抽的干干净净
手机续航不行了。看书最省电而且省流量