如何显示或读取docx文件

Sil*_*ler 11 java android ms-word docx

我是新手在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
                }
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

Jas*_*ext 8

看一下AndroidDocxToHtml,我在Android上使用docx4j进行演示.

几个警告.

首先,该项目不包括所有docx4j依赖项,只包括docx到HTML转换所需的依赖项.因此,如果您想要做其他事情,您可能需要其他依赖项.

其次,docx4j需要JAXB - 请参阅此博客文章在Android上使用 JAXB - 并且应用启动时的JAXB上下文init需要一段时间,具体取决于设备.有办法解决这个问题,但要付出额外的努力.

如果您只想提取图像,而不关心它们与文本的关系,您可以只查找图像部分.您可以使用OpenXML4J,并避免使用JAXB.


twa*_*ton 5

在Android中创建图像的最简单方法是使用BitmapFactory工厂方法.

所述BitmapFactory类具有用于创建方法Bitmap从一个字节数组,一个文件或一个InputStream.

获得Bitmap对象后,可以ImageView使用该setImageBitmap方法在布局中将其设置为对象.


hob*_*obb 5

您只需解压缩文件(重命名为.zip并打开它),然后您就可以调查文件夹结构,图像所在的位置等.