现在的位置: 首页 > 综合 > 正文

使用Epublib处理epub文件

2018年05月11日 ⁄ 综合 ⁄ 共 1515字 ⁄ 字号 评论关闭
  • 通过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下,

    dmjg

    当然也可以自己改代码,不过目的是快速测试下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

    image

    将kxml2-2.3.0.jar引入工程,再运行ok

    image

    3、生成的epub文件直接打开是乱码,需要用epub阅读器打开,Epublib自带了一个阅读器,

    通过epublib-tools\target\epublib-tools-viewer-3.1.jar打开生成的epub文件即可

    image

抱歉!评论已关闭.