题记
上回通过Mobipocket Creator把pdf转化为mobi,效果还可以。那个pdf原本的目录结果就很清晰,所以转化后的效果还可以,但由于pdf是无法修改的。一旦pdf的结构复杂了,转化的效果很差。我更喜欢将txt转化为mobi格式。txt原本就可以修改,可以写点小代码把txt稍微处理下。这样转化后的效果就很好。
感谢:http://www.autohotkey.net/~linpinger/index.html?s=Atc_Txt2Mobi 提供的工具!
本文最终生成的电子书下载地址:送你一颗子弹.mobi
前提准备:软件工具AnsiTxt2Mobi.exe 。
第1步:
写点小代码,将之前txt文本中的标题改为类似于 "第1章 xxx"这种格式。比如,我现在处理的这个文本就是简单的一个标题。我写了点代码,如下:
public class TxtProcess {
private String sourceFile = "";
private String destFile = "";
public void initFilePath(String sour, String dest){
this.sourceFile = sour;
this.destFile = dest;
}
public void process(){
int i=0,j=0;
String[] titles = new String[200];
boolean getTitles = false,start = false;
String line = "";
BufferedReader br= null;
FileWriter fw = null;
try{
br = new BufferedReader(new FileReader(new File(sourceFile)));
fw = new FileWriter(destFile);
while(br.ready()){
line = br.readLine();
//先得到标题
if(!getTitles){
if(line.trim().equals("封面")){
start = true;
continue;
}
if(line.trim().equals("后记")){
getTitles = true;
continue;
}
if(start){
titles[i++]=line.trim();
}
}else{
//把正文部分的标题改掉
if(j<i && line.trim().equals(titles[j])){
j++;
fw.write("第"+j+"章 "+line+"\r\n");
}else{
fw.write(line+"\r\n");
}
}
}
fw.close();
br.close();
}catch(Exception ex){
ex.printStackTrace();
}
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
TxtProcess tp = new TxtProcess();
tp.initFilePath("resource\\in.txt", "resource\\out.txt");
tp.process();
}
处理后的结果还是一个文本。
注意,上头的文本只适用于ansi格式的txt。如果拖入上述工具中,发现无法显示出章节,那很有可能是格式问题。可以打开txt,另存为。。。然后将"编码"改为"ASNI",保存即可!
第2步
将上述生成好的txt文件拖入该工具中,点击生成mobi,即可!
效果如下图所示: