Как поместить извлеченное изображение в нужное место для Apache Tika EPub Parser, используемого в Android - PullRequest
0 голосов
/ 31 марта 2012

Я портировал Apache Tika на Android. У меня есть основной вопрос. Работая над EPubParser, я могу получить URI изображений в книге EPub. Я получил текст книги EPub, используя BodyContentHandler, и ссылки на изображения, используя LinkContentHandler.

Теперь моя проблема в том, как я могу показать эти изображения в том же месте, где они были в источнике. Кто-нибудь может дать мне указатель на этот счет?

Это мой код ...

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

1 Ответ

1 голос
/ 04 апреля 2012

Ваша лучшая ставка, вероятно, изменить то, как вы это делаете. Вместо того, чтобы получать текст и ссылки независимо, получайте их все одновременно. Для этого извлеките текстовое содержимое из Tika как 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();

Как только у вас появится XHTML, просмотрите ссылки и изображения. Когда вы их найдете, вы точно будете знать, куда идут вещи относительно окружающего текста.

...