有没有图书馆可以阅读ePub格式?我在http://github.com/psiegman/epublib中找到了ePublib .我还在学习如何使用它.
有适用于Android的ePub jar吗?
我在Android上玩http://www.siegmann.nl/epublib.有人可以解释正确的方法
这是10倍.
我正在尝试使用库epublib读取ePub文件的内容,此示例演示了这一点.
对我来说,从输入流加载书籍时会抛出异常
// Load Book from inputStream
Book book = (new EpubReader()).readEpub(epubInputStream);
Run Code Online (Sandbox Code Playgroud)
不确定为什么代码不能正常工作并且抛出了异常?它适用于StackOverflow的其他用户.
完整堆栈跟踪在下面共享:
W/System.err: java.io.EOFException
W/System.err: at libcore.io.Streams.readFully(Streams.java:83)
W/System.err: at java.util.zip.ZipInputStream.getNextEntry(ZipInputStream.java:235)
W/System.err: at nl.siegmann.epublib.epub.EpubReader.readResources(EpubReader.java:184)
W/System.err: at nl.siegmann.epublib.epub.EpubReader.readEpub(EpubReader.java:94)
W/System.err: at nl.siegmann.epublib.epub.EpubReader.readEpub(EpubReader.java:53)
W/System.err: at nl.siegmann.epublib.epub.EpubReader.readEpub(EpubReader.java:37)
W/System.err: at com.blogspot.gsrikar.ePubViewerActivity.readEPubContents(ePubViewerActivity.java:102)
W/System.err: at com.blogspot.gsrikar.ePubViewerActivity.onCreate(ePubViewerActivity.java:88)
W/System.err: at android.app.Activity.performCreate(Activity.java:6904)
W/System.err: at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1136)
W/System.err: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3266)
W/System.err: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3415)
W/System.err: at android.app.ActivityThread.-wrap17(ActivityThread.java)
W/System.err: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1821)
W/System.err: at android.os.Handler.dispatchMessage(Handler.java:102)
W/System.err: at android.os.Looper.loop(Looper.java:148)
W/System.err: at android.app.ActivityThread.main(ActivityThread.java:7325)
W/System.err: at java.lang.reflect.Method.invoke(Native Method)
W/System.err: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
Run Code Online (Sandbox Code Playgroud) 我正在使用epublib在WebView中读取.epub文件.
WebView wv = (WebView) getView().findViewById(R.id.chaptercontent);
try {
String abspath = FILEPATH+file;
File filePath = new File(abspath+".epub");
InputStream epubInputStream = new BufferedInputStream(new FileInputStream(filePath));
book = (new EpubReader()).readEpub(epubInputStream);
int pos = abspath.lastIndexOf('/');
DownloadResource(abspath.substring(0, pos));
try {
for(int i = 1; i< book.getContents().size(); i++) {
InputStream is = book.getSpine().getSpineReferences().get(i).getResource().getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null)
{
sb.append(line + "\n");
Log.d("display line", line);
}
is.close();
wv.loadDataWithBaseURL(abspath.substring(0, pos)+"/", sb.toString(), …Run Code Online (Sandbox Code Playgroud) 我找到了一个使用epublib在android中阅读epub书籍的解决方案.我能够阅读这本书的字幕.但我没有找到一种方法来逐行阅读内容.我该如何实现这一目标?
获取图书标题的示例代码是
private void logTableOfContents(List<TOCReference> tocReferences, int depth) {
if (tocReferences == null) {
return;
}
for (TOCReference tocReference : tocReferences) {
StringBuilder tocString = new StringBuilder();
StringBuilder tocHref=new StringBuilder();
for (int i = 0; i < depth; i++) {
tocString.append("\t");
tocHref.append("\t");
}
tocString.append(tocReference.getTitle());
tocHref.append(tocReference.getCompleteHref());
Log.e("Sub Titles", tocString.toString());
Log.e("Complete href",tocHref.toString());
//logTableOfContents(tocReference.getChildren(), depth + 1);
}
}
Run Code Online (Sandbox Code Playgroud)
从http://www.siegmann.nl/epublib/android获得此代码
我怎样才能得到这本书的故事......
我将HtmlSpanner集成到我的Android应用程序中.我收到以下错误:
无法解决:com.osbcp.cssparser:cssparser:1.5.
我该如何解决这个错误?
感谢帮助