epublib java_java中使用Epublib解析EPub文件
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文件相关推荐
- android 使用epublib开源框架解析epub文件(章节内容、书籍菜单)
前期准备 Slf4j-android : http://www.slf4j.org/android/ epublib-core-latest.jar : https://github.com/down ...
- python解析xml文件elementtree_在python中使用ElementTree解析xml文件
ElementTree是python自带的处理xml格式文件的模块,位于libxmletreeElementTree.py.这个模块有两个基本概念:Element和ElementTree. 表示整个树 ...
- Python 3.6 中使用pdfminer解析pdf文件
所使用python环境为最新的3.6版本 一.安装pdfminer模块 安装anaconda后,直接可以通过pip安装 pip install pdfminer3k 如上图所示安装成功. 二.在IDE ...
- Flutter中使用flutter_html解析html文件
1. 安装插件 配置 flutter_html 插件. dependencies:flutter:sdk: flutterflutter_localizations:sdk: flutterdate_ ...
- transient java_Java中关键字transient解析
文章转载自如下出处:作者:酱油君 原出处:非酱油藏经阁 原文链接:非酱油藏经阁www.nopassby.com 在Java序列化机制中,transient这个关键字非常有用,本篇文章就来带解析一下t ...
- Shell中使用sed解析cfg文件
cfg文件是一种常见配置文件,存储结构可以看做是二级Map,在Shell脚本中可以使用sed来解析得到想要的值 1. 一个cfg示例文件:config.cfg [a] a=aa b=ab [b] a= ...
- 在Android应用中使用Pull解析XML文件(传智播客视频笔记)
Service.java源码: package com.sinaapp.ssun.service; import java.io.InputStream; import java.io.OutputS ...
- main函数 java_java中main函数解析
从写java至今,写的最多的可能就是主函数 public static void main(String[] args) {} 但是以前一直都没有问自己,为什么要这么写,因为在c语言中就没有这样子的要 ...
- Epub文件解析库-- Epublib
介绍 epublib是一个比较强大的Epub 文件解析库,同时也支持Epub文件的生成,本篇文章会对其做一个详细的介绍. 相关资料 项目地址 https://github.com/psiegman/e ...
最新文章
- BP网络Python实现代码
- CentOS 7.0系统安装配置图解教程
- Android之Android:layout_weight详解
- node mysql登录注册_图解NodeJS实现登录注册功能
- 本地存储localStorage用法详解
- linux充电时熄屏时间,充电时玩手机会损害电池吗
- java 拷贝大文件_java高效实现大文件拷贝功能
- 【微软推荐】结合知识的推荐系统.pdf(附下载链接)
- 安装zabbix服务器端
- 【软技能】完全写作指南--评论
- 请给开源软件一个机会:7-zip / PDFCreator / CDex / VirtualDub 等等
- 芥末圈:“知识付费”面具下的币圈割韭菜大本营
- 捕捉95%的习惯思维,让用户对你的产品上瘾
- 命令点亮硬盘灯_【硬盘无法识别怎么办?】
- 新旧iPhone齐发力,苹果成最大赢家,中国手机靠小米挽回颜面
- 计算机行业未来就业前景在哪?哪些语言还在吃香?
- vue封装上拉菜单组件_Vue的灵活的lil上下文菜单组件
- 印刷方式——标识丝印工艺
- JavaScript 高级3 :函数进阶
- VVC代码学习之自定义数据结构阅读4