Skip to content

shanleiguang/vRain

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

![image](/pubilc/images/cover.png)

      +--------------------------------------------+
      | vRain - 兀雨古籍刻本风格直排电子书制作工具
      |                    作者:兀雨书屋【小红书】
      +--------------------------------------------+

*vRain是一款为中文古籍阅读爱好者开发的简单而纯粹的古籍刻本风格直排电子书制作工具。
*作者非专业程序员但喜欢自己动手尝试,不是古籍研究者但酷爱阅读古籍,经史子集、诗词歌赋、稗官野史、笔记志怪,无论良莠,不求甚解,偶有所得,欣然忘形。
*设计思路:文本编辑准备和自动排版生成分离,使用者将主要精力用在文本编辑准备,通过对配置参数的调试,一个指令下去,几十万字的书就能按照预期效果快速生成。
*实现技术:参考中文古籍雕版刻本制作流程,首先生成书叶背景图,根据行列数形成一个位置数组,然后把文本自右向左、自上而下逐字打印上到对应数组位置,打满一页,新建一页,直到所有文字处理完。一个背景图对应一个配置文件,一本书对应一个配置文件,配置参数调试达到理想效果后,可供其他书籍制作时复用。
*基本功能:
  书叶背景图的个性书房名、尺寸、列数、框线粗细及颜色均可配置,支持单双、顺对、黑白鱼尾自定义。
  支持批注小字双排显示。
  正文及批注文字字体、大小、颜色、位置均可配置。
  设置一主二辅字体,主字体不支持时自动采用辅字体补字。
  某字符主字体不支持时,可尝试开启简繁转换以改善支持情况,但可能产生与语境不符问题。
  标点符号过滤规则可配置。
  标点符号替换规则可配置。
  标点符号可归一化为句号,仅用于句读。
  常用标点符号可配置为不占字符位置。
  书名号、单双引号直排旋转九十度。
  书名号可调整为侧线。
  正文及批注文字、标点符号的上、下、左、右位置均可微调以达到最佳呈现效果。
*本程序采用Perl语言开发,需安装Image::Magick、PDF::Builder等模块。
*本程序能够实现中英文标点符号、数字替换并可编辑增加规则,但仍建议优先编辑原始文本为中文数字和标点符号。
*建议保持文本编码和字体标准的一致性,如简体文本采用简体字体,台标繁体文本采用台标繁体字体。
*特殊字符:'@'代表空格,'%'代表强制换页符,'【】'内代表双排的批注文字。

一:目录结构

vRain/
  |__ vrain.pl - 主程序,用于将“books/书籍编号/text”目录下指定序列范围的txt文档合并转换为PDF格式直排电子书
  |__ canvas/
  |    |____ canvas.pl - 古籍刻本风格背景图生成程序
  |    |____ 01_Black.cfg - 背景图配置文件
  |    |____ 01.Black.jpg - 01_Black.cfg配置文件生成的背景图
  |    |____ ...
  |__ books/
  |    |____ 01/ - 书籍编号
  |    |     |____ book.cfg - 该书籍的配置文件
  |    |     |____ text/ - 该书籍包含的txt文本,按照阿拉伯数字编号
  |    |             |____ 001.txt
  |    |             |____ 002.txt
  |    |             |____ ...
  |    |____ 02/
  |    |____ ...
  |__ fonts/ - 字体目录

二:QuickStart

%perl vrain.pl -h                                                                                                                                            ✔ 
  ./vrain 兀雨古籍刻本直排电子书制作工具
	-h	帮助信息
	-v	显示更多信息
	-z	测试模式,仅输出指定页数,用于调试参数
	-b	书籍ID
	-f	书籍TEXT文本的起始序号
	-t	书籍TEXT文本的结束序号
		作者:兀雨书屋【小红书】

%perl vrain.pl -b 01 -f 1 -t 1
------------------------------------------------------------
	vRain v1.0,兀雨古籍刻本电子书制作工具
		作者:兀雨书屋【小红书】
------------------------------------------------------------
read 'books/01/book.cfg'...
	标题:封神演義
	作者:明許仲琳著
	背景:01_Blue
	每列字数:24
	是否无标点:0
	标点归一化:0
read 'canvas/01_Blue.cfg'...
	尺寸:2480 x 1860
	列数:24
load 'books/01/text/*.txt' ... 10 text files done
read 'books/01/text/1.txt ...
creat new page [1] ...
creat new page [2] ...
creat new page [3] ...
creat new page [4] ...
creat new page [5] ...
creat new page [6] ...
save to 'books/01/《封神演義》文本1至1.pdf' ... done

三:制作步骤

1、canvas/目录下预制三个背景图,分辨率为2480*1860(即10.3英寸300ppi阅读器对应像素),框线颜色分别为黑、蓝、红。复制并编辑存在的.cfg文件,可制作新的背景图,如调整留白空间、修改每叶列数、设置自己的书房名称等,建议按照序号排序便于管理,参考指令:

%perl canvas.pl -c 02_Black.cfg

2、books/目录下预制01/、02/两本书样例,排版配置文件位于对应目录下book.cfg。

(1)新建03/目录,将样例01中的book.cfg拷贝到03/目录下,编辑更新。
(2)新建03/text目录,将该书相关txt文件编号后放到该目录下。
(3)执行测试指令:

%perl vrain.pl -z 3 -b 03 -f 1 -t 1

该指令读取03号书籍text目录下排序第1的文件,仅输出前三页到测试PDF文件,根据测试文件效果调整book.cfg的参数。
(4)book.cfg参数调测完成后,开始批量制作书籍
例如03/为100回白话小说,text目录下按回保存文件,分为上、中、下三册:

上册	%perl vrain.pl -b 03 -f 1 -t 33
中册	%perl vrain.pl -b 03 -f 34 -t 66
下册	%perl vrain.pl -b 03 -f 67 -t 100

例如03/为16卷诗集,text目录下按卷保存:

卷一	    %perl vrain.pl -b 03 -f 1 -t 1
卷一至三 %perl vrain.pl -b 03 -f 1 -t 3