- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要解析 epub 文件的内容,我想看看什么是最有效的方法。 epub 文件可能包含图像、大量文本,有时还包含视频。我应该选择 FileInputStream 还是 FileReader?
最佳答案
由于 epub 使用 ZIP 存档结构,我建议这样处理它。下面找到一个小片段,其中列出了 epub 文件的内容。
Map<String, String> env = new HashMap<>();
env.put("create", "true");
Path path = Paths.get("foobar.epub");
URI uri = URI.create("jar:" + path.toUri());
FileSystem zipFs = FileSystems.newFileSystem(uri, env);
Path root = zipFs.getPath("/");
Files.walkFileTree(root, new SimpleFileVisitor<Path>() {
@Override
public FileVisitResult visitFile(Path file,
BasicFileAttributes attrs) throws IOException {
print(file);
return FileVisitResult.CONTINUE;
}
@Override
public FileVisitResult preVisitDirectory(Path dir,
BasicFileAttributes attrs) throws IOException {
print(dir);
return FileVisitResult.CONTINUE;
}
private void print(Path file) throws IOException {
Date lastModifiedTime = new Date(Files.getLastModifiedTime(file).toMillis());
System.out.printf("%td.%<tm.%<tY %<tH:%<tM:%<tS %9d %s\n",
lastModifiedTime, Files.size(file), file);
}
});
示例输出
01.01.1970 00:59:59 0 /META-INF/
11.02.2015 16:33:44 244 /META-INF/container.xml
11.02.2015 16:33:44 3437 /logo.jpg
...
编辑如果您只想根据文件名提取文件,您可以像 visitFile(...)
方法的代码片段中所示那样进行操作。
public FileVisitResult visitFile(Path file,
BasicFileAttributes attrs) throws IOException {
// if the filename inside the epub end with "*logo.jpg"
if (file.endsWith("logo.jpg")) {
// extract the file in directory /tmp/
Files.copy(file, Paths.get("/tmp/",
file.getFileName().toString()));
}
return FileVisitResult.CONTINUE;
}
根据您想要如何处理 epub 中的文件,您还可以查看 ZipInputStream
。
try (ZipInputStream in = new ZipInputStream(new FileInputStream("foobar.epub"))) {
for (ZipEntry entry = in.getNextEntry(); entry != null;
entry = in.getNextEntry()) {
System.out.printf("%td.%<tm.%<tY %<tH:%<tM:%<tS %9d %s\n",
new Date(entry.getTime()), entry.getSize(), entry.getName());
if (entry.getName().endsWith("logo.jpg")) {
try (FileOutputStream out = new FileOutputStream(entry.getName())) {
// process the file
}
}
}
}
示例输出
11.02.2013 16:33:44 244 META-INF/container.xml
11.02.2013 16:33:44 3437 logo.jpg
关于java - 我可以使用 FileReader 读取包含图像和视频(例如 epub 文件)和文本的文件吗?在性能方面是否建议这样做?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34226668/
我开发了一个基于网络的e pub阅读器,我想添加一个评论功能,例如adobe PDF阅读器评论功能,这样如果我在其他e中打开该e pub,评论应该保存在e pub中酒吧读者我可以看到评论。 最佳答案
我使用 .NET 中的 ZipArchive 编写了一个 ePub 生成器,并查看了规范(在 Wikipedia 中)和一个示例。 这行不通!但我只收到一个一般性错误,所以我无法从这里修复任何东西。
我正在使用最优秀的 PHP 库 ePub从存储在我的数据库中的 HTML 即时创建数字图书。 因为这些是合集的一部分,所以我为每本书都附上了封面图片。代码中一切正常,但根据解释 ePub 的设备/软件
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎与 help center 中定义的范围内的编程无关。 . 关闭 9 年前。 Improve
我有一堆 EPUB 书籍,如果我有 Kindle,我必须将它们转换为 MOBI。我想知道在从 EPUB 到 MOBI 的转换过程中是否一定会丢失任何细节(例如元数据、布局信息),反之亦然,类似于 MP
我正在尝试制作双语电子书。我希望它排版成两列,一种语言在左边,另一种在右边。 这可能与 epub 规范有关吗? 最佳答案 这是很有可能的,有两种不同的方式: 列(由 wikisource epub e
我制作了一个应用程序,其中我实现了 ePub 阅读器,它可以解压缩文件并解析 xml 文件。我在S.O.上采用了这个问题的方法。 Reading ePub format . 在我用客户端的更新文件替换
我正在开发EPUB 阅读器。我想了解一些与市场上其他 EPUB 阅读器相关的信息(例如 Cool reader、FBReader、Amazon Kindle 等等)。 他们使用什么类型的 View 来
是否有任何编程方法可以安全地检查 epub 文件是否受 DRM 保护(加密)? 我发现 META-INF 目录中可能有一个 rights.xml 和一个 encryption.xml。 这些文件中的任
我正在使用 pandoc 作为创建 epub 书籍的一种方式。它通过检测书中的所有 H1 标签自动创建目录。这很有效,只是每个 epub 都有一个指向标题页的 TOC 链接,这是我不需要的。 我如何摆
我正在 iPhone 上开发一个简单的 epub 阅读器,但一直想知道如何加载它。我知道阅读 PDF 等文件有些简单,因为它本身就是一个文件,可以使用 UIWebView 或 CoreGraphics
我正在使用 https://github.com/augustl/js-epub解析 .epub 文件。但我得到错误“XML 解析错误:未找到元素”。我在第 3 步之前没有遇到问题,它在后处理步骤中失
我对如何实现 epub.js 感到困惑。 ( https://github.com/futurepress/epub.js/blob/master/documentation/README.md )
我正在开发 ibook 应用程序之类的 iphone 应用程序。我加载了 UIWebView 中解析 epub 文件后获得的 XML 文件的内容。我更改了字体大小 & UIWebView 内容的字体系
刚开始使用 FuturePress/epub.js。并与 vue.js 一起使用 ‹ ›
我正在尝试将 epub 文件解析为 UIWebView。我解析成功了。但我无法设置字体大小。意味着当点击 epub 文件页面时,字体需要增加。我添加了 UISearchBar,但如果我输入文本,它就无
我正在使用 Pandoc 将 Markdown 文件转换为 ePub。我可以使用 --template 选项自定义自动生成的标题页。 现在我正在尝试对自动生成的目录执行相同的操作。这可能吗? 我可以使
我想使用动态 html 作为源创建类似于 epub/ebook 阅读器(如 Kindle 应用程序或 iBooks)的响应式、移动优化阅读体验。 想象一下需要大量垂直滚动才能阅读的长篇文章或博客文章,
在流行的桌面电子书查看器(如 calibre、FBreader 或 Cool Reader)中,我缺少一项功能,即以与打印版电子书相同的页码显示电子书。有些人(也在这里)声称 epub 没有页面概念(
Apple 对 ePub 3 脚注的支持详见 Liz Castro . 简而言之,如果脚注链接有 epub:tupe="noteref"格式: 1 脚注文本位于 用 epub:type="footno
我是一名优秀的程序员,十分优秀!