2012-03-31 3 views
0

私はApache TikaをAndroidに移植しました。私は基本的な質問があります。 EPubParserで作業している間、私はEPubブックの画像のURIを取得できました。 BodyContentHandlerとLinkContentHandlerを使った画像リンクを使ってEPubブックのTextを取得しました。Apache Tika EPubの適切な場所に抽出されたイメージを置く方法Androidで使用されるParser

私の問題は、これらの画像を元の場所と同じ場所に表示する方法です。誰も私にこの点に関するポインタを与えることができますか?

これは私のコードです...

InputStream myInputFileStream = getResources().openRawResource(R.raw.flashback); 

    BodyContentHandler bodyHandler = new BodyContentHandler(); 

    LinkContentHandler linkHandler = new LinkContentHandler(); 

    TeeContentHandler handler = new TeeContentHandler(bodyHandler, linkHandler); 

    EpubParser ePubParser = new EpubParser(); 

    Metadata metadata = new Metadata(); 
    try{ 

     ePubParser.parse(myInputFileStream, handler, metadata, new ParseContext()); 

    } 

    catch(SAXException e){ 

    } 
    catch(TikaException e){ 

    } 

    catch(IOException e){ 

    } 

    String plainText = bodyHandler.toString(); 

    List<Link> linkLists = linkHandler.getLinks(); 
+0

なぜXHTMLを返すContentHandlerを使用せず、imgタグの表示先を探しているのですか? – Gagravarr

+0

私は以下のコードを使用しています。しかし、それは動作していないようです。それは空白の出力を与えています。何を指示してるんですか? BodyContentHandler bodyHandler = new BodyContentHandler(500000); \t \t Metadata metadata = new Metadata(); \t \t XHTMLContentHandler testHandler = new XHTMLContentHandler(bodyHandler, metadata);

+0

hi Gagravarr、答えてくれてありがとう。それをどうやるか教えてください。 –

答えて

1

あなたの最善の策は、あなたがそれをやっている方法を変更することが考えられます。テキストとリンクを独立して取得する代わりに、それらをすべて同時に取得します。これを行うには、のようなもので、テキストではなくXHTMLとしてティカからテキストの内容を取得する:あなたはXHTMLを持っていたら

StringWriter sw = new StringWriter(); 
    SAXTransformerFactory factory = (SAXTransformerFactory) 
      SAXTransformerFactory.newInstance(); 
    TransformerHandler handler = factory.newTransformerHandler(); 
    handler.getTransformer().setOutputProperty(OutputKeys.METHOD, "xml"); 
    handler.getTransformer().setOutputProperty(OutputKeys.INDENT, "no"); 
    handler.setResult(new StreamResult(sw)); 

    parser.parse(input, handler, metadata, new ParseContext()); 

    String xhtml = sw.toString(); 

、リンクや画像のために一読。それらを見つけると、周囲のテキストと関連して物がどこに行くのかを正確に知ることができます。

+0

Gagravarrにあなたの提案をありがとうございます...私はあなたが提案したのと同じ方法でやりました... –

関連する問題