通过wlw发布在我的博客funba.cn
希望csdn能重新支持wlw
Epublib是一个用于处理epub文件的java类库,可以对epub文件进行读写处理;而且提供了一个阅读器,可以直接运行(java -jar 方式),并可以打开epub类型的文件进行阅读。
1、这个例子在epublib-core\src\examples\java\nl\siegmann\epublib\examples下,如果自己在eclipse里新建项目,需要把epublib-core\src\test\resources\book1复制到你代码所在的Source folder下,
当然也可以自己改代码,不过目的是快速测试下epublib的可用性,第一步工作就力求简单了。
2、运行报错,
Exception in thread "main" java.lang.NoClassDefFoundError: org/xmlpull/v1/XmlPullParserFactory
at nl.siegmann.epublib.epub.EpubProcessorSupport.createXmlSerializer(EpubProcessorSupport.java:79)
at nl.siegmann.epublib.epub.EpubProcessorSupport.createXmlSerializer(EpubProcessorSupport.java:73)
at nl.siegmann.epublib.epub.NCXDocument.createNCXResource(NCXDocument.java:182)
at nl.siegmann.epublib.epub.NCXDocument.createNCXResource(NCXDocument.java:178)
at nl.siegmann.epublib.epub.EpubWriter.initTOCResource(EpubWriter.java:67)
at nl.siegmann.epublib.epub.EpubWriter.write(EpubWriter.java:51)
at outfox.cps.epub.Simple1.main(Simple1.java:56)
很明显是NoClassDefFoundError,实际是没有引入依赖包kxml2
实际在mvn package时,已经下载了,可以打开epublib-core\pom.xml查看如下代码,
net.sf.kxml
kxml2
2.3.0
下载目录是你的m2的repository目录
C:\Users\Administrator\.m2\repository\net\sf\kxml\kxml2\2.3.0
将kxml2-2.3.0.jar引入工程,再运行ok
3、生成的epub文件直接打开是乱码,需要用epub阅读器打开,Epublib自带了一个阅读器,
通过epublib-tools\target\epublib-tools-viewer-3.1.jar打开生成的epub文件即可