Epublib是一个用于处理epub文件的java类库,可以对epub文件进行读写处理;而且提供了一个阅读器,可以直接运行(java -jar 方式),并可以打开epub类型的文件进行阅读;(引用官方网页的一句话:Epublib is a java library for managing epub files. It’s capable of reading and writing epub files programmatically.)

Epub viewer的地址:https://github.com/downloads/psiegman/epublib/epublib-viewer-latest.jar

容易遇到的问题:在epublib的网页上并没有提到epublib所依赖的jar,那么在创建epub文件的时候,就会报如下异常:

Java代码

Exception in thread "main" java.lang.NoClassDefFoundError: org/xmlpull/v1/XmlPullParserFactory

at nl.siegmann.epublib.epub.EpubProcessorSupport.createXmlSerializer(EpubProcessorSupport.java:80)

at nl.siegmann.epublib.epub.EpubProcessorSupport.createXmlSerializer(EpubProcessorSupport.java:74)

at nl.siegmann.epublib.epub.NCXDocument.createNCXResource(NCXDocument.java:181)

at nl.siegmann.epublib.epub.NCXDocument.createNCXResource(NCXDocument.java:177)

at nl.siegmann.epublib.epub.EpubWriter.initTOCResource(EpubWriter.java:67)

at nl.siegmann.epublib.epub.EpubWriter.write(EpubWriter.java:51)

at org.lazyboy.work.document.EPubUtil.createNewFile(EPubUtil.java:124)

at org.lazyboy.work.document.EPubUtil.main(EPubUtil.java:144)

Caused by: java.lang.ClassNotFoundException: org.xmlpull.v1.XmlPullParserFactory

at java.net.URLClassLoader$1.run(URLClassLoader.java:202)

at java.security.AccessController.doPrivileged(Native Method)

at java.net.URLClassLoader.findClass(URLClassLoader.java:190)

at java.lang.ClassLoader.loadClass(ClassLoader.java:307)

at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)

at java.lang.ClassLoader.loadClass(ClassLoader.java:248)

... 8 more

根据提示:org.xmlpull.v1.XmlPullParserFactory类没有找到,那么就去找合适的jar吧·····你会发现有很多jar里包含了这个类,但是如果不巧你添加了jar包之后,虽然没有了这个异常,但是你会遇到另一个空指针的异常,如下所示:

Java代码

Exception in thread "main" java.lang.NullPointerException

at org.xmlpull.mxp1_serializer.MXSerializer.startDocument(MXSerializer.java:379)

at nl.siegmann.epublib.epub.PackageDocumentWriter.write(PackageDocumentWriter.java:38)

at nl.siegmann.epublib.epub.EpubWriter.writePackageDocument(EpubWriter.java:112)

at nl.siegmann.epublib.epub.EpubWriter.write(EpubWriter.java:53)

at org.lazyboy.work.document.EPubUtil.createNewFile(EPubUtil.java:124)

at org.lazyboy.work.document.EPubUtil.main(EPubUtil.java:144)

那就是你加错jar包了,经过多次试验后,发现应该加入一个kxml2的jar包,其maven坐标如下:

Java代码

kxml2

kxml2

2.2.2

本人需要做的操作是:读取一个epub文件,取出需要的chapter,生成一个新的epub文件,或者根据比例对源epub文件进行裁剪;在此过程中遇到了问题,在blog上记录一下

epublib java_java中使用Epublib解析EPub文件相关推荐

  1. android 使用epublib开源框架解析epub文件(章节内容、书籍菜单)

    前期准备 Slf4j-android : http://www.slf4j.org/android/ epublib-core-latest.jar : https://github.com/down ...

  2. python解析xml文件elementtree_在python中使用ElementTree解析xml文件

    ElementTree是python自带的处理xml格式文件的模块,位于libxmletreeElementTree.py.这个模块有两个基本概念:Element和ElementTree. 表示整个树 ...

  3. Python 3.6 中使用pdfminer解析pdf文件

    所使用python环境为最新的3.6版本 一.安装pdfminer模块 安装anaconda后,直接可以通过pip安装 pip install pdfminer3k 如上图所示安装成功. 二.在IDE ...

  4. Flutter中使用flutter_html解析html文件

    1. 安装插件 配置 flutter_html 插件. dependencies:flutter:sdk: flutterflutter_localizations:sdk: flutterdate_ ...

  5. transient java_Java中关键字transient解析

    文章转载自如下出处:作者:酱油君 原出处:非酱油藏经阁 原文链接:非酱油藏经阁​www.nopassby.com 在Java序列化机制中,transient这个关键字非常有用,本篇文章就来带解析一下t ...

  6. Shell中使用sed解析cfg文件

    cfg文件是一种常见配置文件,存储结构可以看做是二级Map,在Shell脚本中可以使用sed来解析得到想要的值 1. 一个cfg示例文件:config.cfg [a] a=aa b=ab [b] a= ...

  7. 在Android应用中使用Pull解析XML文件(传智播客视频笔记)

    Service.java源码: package com.sinaapp.ssun.service; import java.io.InputStream; import java.io.OutputS ...

  8. main函数 java_java中main函数解析

    从写java至今,写的最多的可能就是主函数 public static void main(String[] args) {} 但是以前一直都没有问自己,为什么要这么写,因为在c语言中就没有这样子的要 ...

  9. Epub文件解析库-- Epublib

    介绍 epublib是一个比较强大的Epub 文件解析库,同时也支持Epub文件的生成,本篇文章会对其做一个详细的介绍. 相关资料 项目地址 https://github.com/psiegman/e ...

最新文章

  1. BP网络Python实现代码
  2. CentOS 7.0系统安装配置图解教程
  3. Android之Android:layout_weight详解
  4. node mysql登录注册_图解NodeJS实现登录注册功能
  5. 本地存储localStorage用法详解
  6. linux充电时熄屏时间,充电时玩手机会损害电池吗
  7. java 拷贝大文件_java高效实现大文件拷贝功能
  8. 【微软推荐】结合知识的推荐系统.pdf(附下载链接)
  9. 安装zabbix服务器端
  10. 【软技能】完全写作指南--评论
  11. 请给开源软件一个机会:7-zip / PDFCreator / CDex / VirtualDub 等等
  12. 芥末圈:“知识付费”面具下的币圈割韭菜大本营
  13. 捕捉95%的习惯思维,让用户对你的产品上瘾
  14. 命令点亮硬盘灯_【硬盘无法识别怎么办?】
  15. 新旧iPhone齐发力,苹果成最大赢家,中国手机靠小米挽回颜面
  16. 计算机行业未来就业前景在哪?哪些语言还在吃香?
  17. vue封装上拉菜单组件_Vue的灵活的lil上下文菜单组件
  18. 印刷方式——标识丝印工艺
  19. JavaScript 高级3 :函数进阶
  20. VVC代码学习之自定义数据结构阅读4

热门文章

  1. java排列和组合算法
  2. 牛客14709 奇♂妙拆分 枚举
  3. 电影9 10大经典电影
  4. web应用开发 -- 课堂作业 个人简介
  5. 崩坏3区号+86_崩坏3春节祝福电话怎么接_崩坏3春节祝福电话接听条件介绍-街机中国...
  6. 瑞萨单片机iap串口升级boot程序与app程序合并的工程构建-学习记录
  7. 植物神经紊乱引起的焦虑、烦躁怎么办?
  8. [教你传话,表白,写信]
  9. 一篇个人原厂的非主流火星文
  10. 推荐一款快速上手的可视化分析工具:网易有数