-
通过wlw发布在我的博客funba.cn
希望csdn能重新支持wlw
Epublib是一个用于处理epub文件的java类库,可以对epub文件进行读写处理;而且提供了一个阅读器,可以直接运行(java -jar 方式),并可以打开epub类型的文件进行阅读。
http://www.siegmann.nl/epublib/getting-started
按http://www.siegmann.nl/epublib/example-programs/epub-sample-simple1运行示例时,发现几个问题,在此说明下(目前最新的是3.1)
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查看如下代码,
<dependency>
<groupId>net.sf.kxml</groupId>
<artifactId>kxml2</artifactId>
<version>2.3.0</version>
</dependency>下载目录是你的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文件即可