5

epublib を使用して Android で epub 本を読むための解決策を見つけました。本の字幕を読むことができます。しかし、コンテンツを 1 行ずつ読む方法が見つかりませんでした。どうすればこれを達成できますか?

本のタイトルを取得するサンプル コードは次のとおりです。

  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);
    }
}

このコードはhttp://www.siegmann.nl/epublib/androidから取得しました

本のストーリーはどうやって手に入れることができますか...

4

2 に答える 2

7

それがepubファイルをナビゲートする方法であるかどうかはわかりません。私が知る限り (今まで - 私はまだ学んでいます)、すべての本の内容を理解するためのより良い方法は、背骨のセクションに基づいています。それでも、この 2 つのこと (TOC と実際の背骨) を epublib インターフェイスに接続する方法がわかりません。ドキュメントによると、 「背表紙のセクションは、本を読む順序で並べられた本のセクションです。これは、本のセクションへのインデックスである目次のセクションとは対照的です。」

それは何かです-あなたが好きなら-これはスニペットです:

Spine spine = new Spine(book.getTableOfContents());
for (SpineReference bookSection : spine.getSpineReferences()) {
            Resource res = bookSection.getResource();
                try {
                    InputStream is = res.getInputStream();
                    //do something with stream
                } catch (IOException e) {
于 2011-07-12T13:48:45.850 に答える
3

まあ-ナビゲートについて正確にはわかりませんが、それを行う方法も疑問に思っています。今のところ-私はこのようなものを持っています(それは行ごとに読み取られます):

private void logTableOfContents(List<TOCReference> tocReferences, int depth) {
    if (tocReferences == null) {
        return;
    }
    for (TOCReference tocReference : tocReferences) {
        StringBuilder tocString = new StringBuilder();
        for (int i = 0; i < depth; i++) {
            tocString.append("\t");
        }
        try{
           InputStream is = tocReference.getResource().getInputStream();
           BufferedReader r = new BufferedReader(new InputStreamReader(is));
           String line;
           while ((line = r.readLine()) != null) {
               String line = Html.fromHtml(line).toString();
           }
        }
        catch(IOException e){

        }




        //logTableOfContents(tocReference.getChildren(), depth + 1);
    }
}
于 2011-07-11T13:18:47.563 に答える