我是安卓渲染文件的新手,我想在我的应用程序中渲染或显示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
}
}
}
}
看看 AndroidDocxToHtml,我是为了在 Android 上使用 docx4j 进行演示。
有几个警告。
首先,该项目不包括所有 docx4j 依赖项,仅包含 docx 到 HTML 转换所需的依赖项。 因此,如果要执行其他操作,则可能需要其他依赖项。
其次,docx4j 需要 JAXB - 请参阅这篇关于 Android 上的 JAXB 的博客文章 - 并且应用程序启动时的 JAXB 上下文初始化需要一段时间,具体取决于设备。有一些方法可以解决这个问题,但需要额外的努力。
如果您只想提取图像,并且您不在乎它们与文本的关系,则可以只查找图像部分。 你可以使用OpenXML4J,并避免JAXB。
在 Android 中创建映像的最简单方法是使用 BitmapFactory
工厂方法。
BitmapFactory
类具有从字节数组、文件或输入流创建Bitmap
的方法。
获得Bitmap
对象后,可以使用 setImageBitmap
方法将其设置在布局中的ImageView
上来显示它。
您只需解压缩文件(重命名为.zip并打开它),然后您可以调查文件夹结构,图像所在的位置等。