12

Android でファイルをレンダリングするのは初めてで、アプリケーションで docx ファイルをレンダリングまたは表示したいと考えています。

すでに docx ファイルからテキストを抽出していましたが、今度は docx ファイルからも画像を抽出したいと考えています。

純粋な Java で画像を表示する方法をいくつか見つけましたが、Android の良い例はありますか?

画像を取得するためにこのコードを試しましたが、機能しません...

public void extractImages(Document xmlDoc)
{
    NodeList binDataList = xmlDoc.getElementsByTagName("w:drawings");
    String fileName = "";
    Node currentNode;
    for(int i = 0; i < binDataList.getLength(); i++)
    {
        currentNode = binDataList.item(i);
        if(currentNode.getNodeType() == Node.ELEMENT_NODE && ((Element)currentNode).hasAttribute("w:name"))
        {               
            File newImageFile = new File(picDirectory, ((Element)currentNode).getAttribute("w:name").replaceFirst("wordml://", ""));
            if(newImageFile.exists())
            {

            }
            else
            {
                if(writeImage(newImageFile, currentNode))
                {
                    //Print some success message
                }
            }
        }
    }
4

3 に答える 3

9

Androidで docx4jを使用するデモ用に作成した AndroidDocxToHtml をご覧ください

いくつかの注意事項があります。

まず、そのプロジェクトにはすべての docx4j 依存関係が含まれているわけではなく、docx から HTML への変換に必要なものだけが含まれています。したがって、他のことをしたい場合は、他の依存関係が必要になる場合があります。

次に、docx4j には JAXB が必要です ( Android での JAXB に関するこのブログ投稿を参照)。デバイスによっては、アプリ起動時の JAXB コンテキストの初期化に時間がかかります。これを回避する方法はありますが、余計な手間がかかります。

画像を抽出するだけで、画像がテキストとどのように関連しているかは気にしない場合は、画像部分を探すことができます。そのためにOpenXML4Jを使用し、JAXB を避けることができます。

于 2012-06-12T12:40:45.760 に答える
5

Androidで画像を作成する最も簡単な方法は、BitmapFactoryファクトリメソッドを使用することです。

このBitmapFactoryクラスにはBitmap、バイト配列、ファイル、またはInputStreamからを作成するためのメソッドがあります。

オブジェクトを取得したら、メソッドを使用してレイアウトBitmapのに設定することでオブジェクトを表示できます。ImageViewsetImageBitmap

于 2012-06-07T20:46:30.507 に答える
5

You can just unzip the file (rename to .zip and open it) then you can investigate the folder structure, where the images are located etc.

于 2012-06-11T08:54:29.923 に答える