Java 解析epub格式电子书,helloWorld程序,附带源程序和相关jar包
2015-06-24 17:19
651 查看
秀才坤坤出品
一、epub格式电子书
相关材料和源码均在链接中可以下载:http://pan.baidu.com/s/1bnm8YXT
包括
1、JAVA项目工程test_epub,里面包括了jar包和一本epub电子书myBook.epub
2、epub相关jar包
3、电子书myBook.epub
epub格式这里就不仔细描述了,这里强调一点,epub格式是压缩格式,只需将后缀改为.zip或.rar,解压即可看到里面的文件内容。
二、JAVA解析.epub格式电子书,具体实现代码如下。写了一个简单helloWorld程序,加入了相应的jar包。
程序说明:
1、读取epub/myBook.epub文件。
2、修改metaData中的title
3、输出新的.epub文件到工程目录下。文件名mynewbook.epub
通过解压mynewbook.epub文件,可以看到toc.ncx文件中的<docTitle>和content.opf中的<dc:title>标签内容都进行了修改。
如有不明白和写的不对的地方,敬请评论。
一、epub格式电子书
相关材料和源码均在链接中可以下载:http://pan.baidu.com/s/1bnm8YXT
包括
1、JAVA项目工程test_epub,里面包括了jar包和一本epub电子书myBook.epub
2、epub相关jar包
3、电子书myBook.epub
epub格式这里就不仔细描述了,这里强调一点,epub格式是压缩格式,只需将后缀改为.zip或.rar,解压即可看到里面的文件内容。
二、JAVA解析.epub格式电子书,具体实现代码如下。写了一个简单helloWorld程序,加入了相应的jar包。
程序说明:
1、读取epub/myBook.epub文件。
2、修改metaData中的title
3、输出新的.epub文件到工程目录下。文件名mynewbook.epub
通过解压mynewbook.epub文件,可以看到toc.ncx文件中的<docTitle>和content.opf中的<dc:title>标签内容都进行了修改。
package com.hk; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.util.ArrayList; import java.util.List; import nl.siegmann.epublib.domain.Book; import nl.siegmann.epublib.epub.EpubReader; import nl.siegmann.epublib.epub.EpubWriter; public class Test { public static void main(String[] args) { System.out.println("hello world"); EpubReader epubReader = new EpubReader(); //处理io流路径 String currentPath = Thread.currentThread().getClass().getResource("/").toString(); String epubPath = currentPath + "epub/myBook.epub"; epubPath = epubPath.substring(6, epubPath.length()); epubPath = epubPath.replace("/", "//"); System.out.println(epubPath); //读epub文件 Book book = null; try { InputStream inputStr = new FileInputStream(epubPath); book = epubReader.readEpub(inputStr); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } //设置epub文件内title. //本处修改了toc.ncx文件中的<docTitle>和content.opf中的<dc:title>标签内容. List<String> titlesList = new ArrayList<String>(); titlesList.add("test book"); book.getMetadata().setTitles(titlesList); //write epub EpubWriter epubWriter = new EpubWriter(); try { OutputStream ouput = new FileOutputStream("mynewbook.epub"); epubWriter.write(book, ouput); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
如有不明白和写的不对的地方,敬请评论。
相关文章推荐
- 尚学堂Spring视频教程(三):Spring Core中的其他特性
- Spring整合JMS(三)——MessageConverter介绍
- Spring整合JMS(二)——三种消息监听器
- Java接口定义和实现
- Java中HashMap遍历的两种方式
- LinkedHashMap 根据PUT顺序排序Map
- (转)spring hibernate properties详解
- Java生成图片验证码(有点仿QQ验证码的意思)
- Spring整合JMS(一)——基于ActiveMQ实现
- os x 下jni小实验
- Spring InitializingBean/init-method和DisposableBean/destroy-method
- Java中的RTTI与反射
- java web中表单提交的方式
- java处理json的工具类(list,map和json的之间的转换)
- Spring aop基于注解
- LeetCode_48---Rotate Image
- java学习—— Timer执行定时任务
- Drools6 Eclipse环境搭建及HelloWord
- 【Spring学习笔记-MVC-8】SpringMVC之类型转换Converter
- Eclipse安装SVN插件总结