`
huoyanyanyi10
  • 浏览: 53239 次
  • 性别: Icon_minigender_1
  • 来自: 赤峰
社区版块
存档分类
最新评论

java解析epub电子书

    博客分类:
  • java
阅读更多
Epublib主页:http://www.siegmann.nl/epublib

下载地址:https://github.com/psiegman/epublib/downloads

在线API:http://www.siegmann.nl/static/epublib/apidocs/

需要的jar包
epublib-core-latest.jar
kxml2-2.1.8.jar
slf4j-jdk14-1.0-rc5.jar
第一个jar包可以上https://github.com/psiegman/epublib/downloads下载
其它两个可以去http://www.jar114.com/下载

每一个epub格式的电子书其实就是一个zip压缩包,解压之后可以得到里面的内容
/**
* 解压含有多个文件的ZIP包
*
* @param zipFileName
* @param extPlace
*/
private static void extZipFileList(String zipFileName, String extPlace) {
try {

ZipInputStream in = new ZipInputStream(new FileInputStream(
zipFileName));

ZipEntry entry = null;

while ((entry = in.getNextEntry()) != null) {

String entryName = entry.getName();

if (entry.isDirectory()) {
File file = new File(extPlace + entryName);
file.mkdirs();
System.out.println("创建文件夹: " + entryName);
} else {

FileOutputStream os = new FileOutputStream(extPlace
+ entryName);

// Transfer bytes from the ZIP file to the output file
byte[] buf = new byte[1024];

int len;
while ((len = in.read(buf)) > 0) {
os.write(buf, 0, len);
}
os.close();
in.closeEntry();

}
}

} catch (IOException e) {
e.printStackTrace();
}
System.out.println("解压文件成功 ");
}

public static void main(String[] args) throws IOException {
Zip zip = new Zip();
// zip.zip("c:\\111.xls ");
zip.extZipFileList("e:\\2009.epub ", "e:\\ ");
}
下面是在java中解析epub电子书 可以将epub电子书中的书名、封面、目录、内容(html格式)读取出来

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

try {
EpubReader epubReader = new EpubReader();
EpubWriter epubWriter = new EpubWriter();
Book book = epubReader.readEpub(new FileInputStream("D:\\epub\\yttl.epub"));
//书名
String title = book.getTitle();
//作者
List<Author> authorList = book.getMetadata().getAuthors();
for(int i=0;i<authorList.size();i++){
Author author = authorList.get(i);
}
//封面
Resource resource = book.getCoverImage();
byte[] p = resource.getData();
//将图片输出
   String newFilename="e:\\"+i+".jpg";
   FileImageOutputStream imgout=new FileImageOutputStream(new File(newFilename));
   imgout.write(p,0,p.length);
  imgout.close();

//电子书的内容
List<Resource> list = book.getContents();
for(int i=0;i<list.size();i++){
Resource  res = list.get(i);
byte[] resdata = res.getData();
String str = new String(resdata,"utf-8");
System.out.println(str);
}

Resource page=book.getCoverPage();
String str = new String(page.getData(),"UTF-8");
System.out.println(str);

//目录
Collection<String>  hrefs = bookResources.getAllHrefs();
Iterator it=hrefs.iterator();
while(it.hasNext()){
   System.out.println(it.next());
   [
}

book.getMetadata().setTitles(new ArrayList()<String>() {{
add("an awesome book");}});

//输出epub电子书
BookProcessor bookProcessor = epubWriter.getBookProcessor();
book=bookProcessor.processBook(book);
epubWriter.write(book, new FileOutputStream("D:\\epub\\new5yttl.epub"));
} catch (FileNotFoundException e) {
TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
TODO Auto-generated catch block
e.printStackTrace();
}
doPost( request, response);
}


分享到:
评论
4 楼 luco2008 2012-10-29  
什么时候能支持ePub3.0啊?
3 楼 漫画tong 2012-08-23  
那个jar包要放到哪个文件夹里呢
2 楼 哥等一Jiu人 2012-03-22  
应该是book.getResources()..getAllHrefs();  将图片输出的  i  是那里来的
1 楼 哥等一Jiu人 2012-03-21  
也在为epub解析犯愁呢    bookResources       从那来的啊! 

相关推荐

    EPUB 解析 (java)

    Java解析模块会将这些内容解压、提取,并可能进行进一步的处理,如图像的重命名和移动,以适应不同的设备和阅读环境。 在FBreader的优化版本中,可能包括了性能提升、内存管理优化、错误修复或新特性添加。例如,...

    Java的EPUB类库 Epublib

    2. **读取EPUB书籍**:EpubReader类提供了方法来解析EPUB文件,提取书籍的元数据和内容。它可以访问书籍的目录、章节、图片等,并允许程序对这些内容进行操作或展示。 3. **修改EPUB书籍**:EpubBook类是Epublib的...

    epub java实现(附带源程序、jar包和epub电子书)

    本项目"epub java实现(附带源程序、jar包和epub电子书)"显然是一个关于如何在Java环境中创建、读取和操作EPUB电子书的实例。 首先,我们需要理解EPUB文件的结构。EPUB文件主要由三部分组成:OPF(OPS Package ...

    灵活手写epub电子书生成代码

    《灵活手写epub电子书生成代码》 EPUB是一种开放标准的电子书格式,它允许作者和开发者创建可重排、可导航的电子书,适用于多种设备阅读。本项目的核心是通过编程的方式,手动对资源进行处理和打包,生成符合EPUB...

    Java的EPUB类库 Epublib源码

    2. **内容模型**:EPUB电子书的内容是基于XML的,如HTML、CSS和图像等。Epublib支持将这些内容组织成章节(Spine)和导航结构(Navigation),使得电子书有清晰的逻辑结构。 3. **容器管理**:EPUB文件本质上是一个...

    Java将epub数学公式(mathml)转化为图片

    在提供的`demo-epub`压缩包中,可能包含了示例代码,演示了如何将EPUB电子书中提取出的MathML转换为图像。EPUB是一种开放标准的电子书格式,支持MathML,但某些阅读器可能不支持直接显示MathML,因此转换成图片是...

    Java的EPUB类库 Epublib.7z

    这个压缩包“Epublib.7z”包含了所有必要的资源和源代码,使得Java开发者能够方便地在他们的应用程序中集成EPUB电子书功能。 Epublib的核心功能包括: 1. **EPUB文件解析**:Epublib提供了API来解析EPUB文件的元...

    epub 所需的三个jar包

    本篇文章将详细讲解EPUB格式、Java解析EPUB所需的库以及如何使用这些库。 首先,EPUB格式基于XML,包含了HTML、CSS、图像和其他资源。它使用OPF(Open Packaging Format)来组织内容,OPF文件是一个XML文件,它定义...

    epub阅读,工作期间休闲必备(java程序员)

    1. **文件解析**:能够解析epub文件的容器XML,找出内容文件、元数据、CSS样式表等关键信息。 2. **内容展示**:通过解析HTML和CSS,将文本内容按照原始排版显示在界面上,同时支持图片和链接的正常展示。 3. **导航...

    epub阅读器及XHTML解析

    EPUB阅读器是一种用于打开和阅读EPUB格式电子书的应用...总之,EPUB阅读器的开发涉及XML解析技术、ZIP处理、GUI编程等多个方面,通过理解并应用这些知识,我们可以创建出一款高效且用户体验良好的EPUB电子书阅读器。

    java源码:Java的EPUB类库 Epublib.zip

    Epublib是一个用Java编写的开源库,专为创建、修改和读取EPUB格式的电子书而设计。EPUB是一种广泛使用的开放标准,适用于数字出版物,它...通过深入学习和应用这个库,开发者可以提升其在EPUB电子书领域的专业技能。

    java手机电子书程序

    Java手机电子书程序是一种在移动设备上运行的应用,...总之,创建一个Java手机电子书程序涉及众多技术点,包括文件操作、文本解析、UI设计、性能优化等,都需要开发者具备扎实的Java基础和对移动设备特性的深入理解。

    基于java的的EPUB类库 Epublib.zip

    1. **EPUB文件创建**:Epublib提供了一套API,可以用来构建EPUB电子书的结构,包括添加元数据、章节、图片和其他资源。开发者可以通过创建`EpubBook`对象,然后向其中添加`EpubHtmlContent`(HTML章节)、`EpubNcx`...

    基于Java的源码-EPUB类库 Epublib.zip

    综上所述,Epublib是一个强大的工具,可以帮助Java开发者处理EPUB电子书的创建、读取和修改。通过深入学习和使用Epublib的源代码,不仅可以掌握EPUB格式的工作原理,还可以为数字出版应用开发打下坚实的基础。

    手机java电子书阅读器

    总结,手机Java电子书阅读器的开发涉及Java语言、J2ME平台、用户界面设计、文件解析、数据管理等多个方面。通过不断学习和实践,开发者可以创建出功能丰富、用户体验良好的电子书阅读应用,满足移动阅读需求。

    基于Java的的EPUB类库 Epublib.zip

    1. **解析器**:Epublib包含了用于解析EPUB文件的组件,能够解压并解析OPF和NCX文件,提取出元数据、章节信息等内容。 2. **编写器**:该类库还提供了创建新的EPUB文件或修改现有文件的功能。开发者可以通过编写器...

    基于Java的实例源码-的EPUB类库 Epublib.zip

    总的来说,Epublib是一个功能齐全、易于使用的Java库,为开发者提供了处理EPUB电子书的强大工具。通过深入理解和实践这个库,不仅可以增强对EPUB格式的理解,也能提升Java编程技能,特别是对于数字出版和电子书应用...

    使用Java创建电子书阅读器 - 一个实战教程

    - **文件解析**:需要处理不同格式的电子书文件(如EPUB、PDF、MOBI等),可能需要使用第三方库,如Apache POI或Calibre。 - **数据存储**:使用数据库(如SQLite)存储电子书元数据和用户自定义信息,例如书签和...

    手机JAVA电子书制作程序

    《手机JAVA电子书制作程序》是一款专为手机平台设计的,使用Java编程语言开发的工具,旨在帮助JAVA爱好者和学习者便捷地创建自己的电子书。本文将深入探讨该程序的功能、设计原理以及如何利用它来制作手机电子书,...

    用XDOCBuilder制作精美的EPUB

    《用XDOCBuilder制作精美的EPUB》这篇文章主要讲解了如何使用XDOCBuilder这款工具来创建高质量的EPUB电子书。EPUB是一种开放标准的电子书格式,它允许书籍内容有丰富的排版和互动性,适合多种设备阅读。XDOCBuilder...

Global site tag (gtag.js) - Google Analytics