Intereting Posts

Как отобразить все страницы и все главы, используя nl.siegmann.epublib

Это то, что я пытался выполнить, если кто-то может помочь, это было бы очень признательно. Таким образом, в этом коде будет отображаться только титульная страница. Я прочитал http://www.siegmann.nl/static/epublib/apidocs/, что вы можете использовать getSpine() чтобы получить все, но он отображал только одну вещь в моем случае, которая является титульной страницей.

 webView = (WebView)findViewById(R.id.webView); webView.getSettings().setJavaScriptEnabled(true); AssetManager am = getAssets(); try { InputStream epubInputStream = am.open(bookName); book = (new EpubReader()).readEpub(epubInputStream); } catch (IOException e) { Log.e("epublib", e.getMessage()); } Spine spine = book.getSpine(); for (SpineReference bookSection : spine.getSpineReferences()) { Resource res = bookSection.getResource(); try { InputStream is = res.getInputStream(); StringBuffer string = new StringBuffer(); BufferedReader reader = new BufferedReader(new InputStreamReader(is)); try { while ((line = reader.readLine()) != null) { linez = string.append(line + "\n").toString(); } } catch (IOException e) {e.printStackTrace();} //do something with stream } catch (IOException e) { e.printStackTrace(); } } webView.loadData(linez, "text/html", "utf-8"); 

Так что я понял, используя позвоночник на http://www.siegmann.nl/static/epublib/apidocs/, так это то, что он по-прежнему работает по разделам. Поэтому я попытался выяснить, сколько секций есть, указав числа подсчета. Затем поместили эти числа в Resource res = spine.getResource(i); , Если вы будете использовать Resource res = spine.getResource(2); Он отображает позвоночник 2, который должен быть главой 2, если кто-то не испортит формат epub.

 Spine spine = book.getSpine(); List<SpineReference> spineList = spine.getSpineReferences() ; int count = spineList.size(); tv.setText(Integer.toString(count)); StringBuilder string = new StringBuilder(); for (int i = 0; count > i; i++) { Resource res = spine.getResource(i); try { InputStream is = res.getInputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(is)); try { while ((line = reader.readLine()) != null) { linez = string.append(line + "\n").toString(); } } catch (IOException e) {e.printStackTrace();} //do something with stream } catch (IOException e) { e.printStackTrace(); } } webView.loadData(linez, "text/html", "utf-8");