gpt4 book ai didi

java - 如何使用 Odf Toolkit 从 odt 文档中提取图像?

转载 作者:行者123 更新时间:2023-11-30 08:08:50 25 4
gpt4 key购买 nike

首先,我对 Java 和编程还很陌生,如果我的问题或解决问题的尝试很幼稚,我深表歉意。

我正在尝试创建一个程序来显示图像,这些图像存储在 Open Document Text (.odt) 文档中,在 Javax.Swing 界面中。为此,我正在尝试使用 Odf Toolkit 从 odt 中提取图像。我确定一定有办法做到这一点,因为 Odf Toolkit 可以插入图像,所以它肯定也应该能够提取图像吗?

这是我尝试从 odt 中获取图像的方法之一:

 package odftoolkittrial;

import java.util.Iterator;
import org.odftoolkit.simple.TextDocument;
import org.odftoolkit.simple.draw.Image;

/**
*
* @author ------
*/
public class odftrial {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {

String filePath = "/Users/...../imagetest6";

Image allImages;

try {
TextDocument odt = TextDocument.loadDocument(filePath);

Iterator<Image> ii = odt.getImageIterator();

while (ii.hasNext()) {

Image image = ip.next();

allImages = image.getImageContent;
System.out.println(allImages);
}
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
}

这是改编 self 成功用于从 odt 中提取文本的代码。我可以看到两个问题,因为我尝试使用的方法在它们的变量所属的类中不存在,但我花了几天时间试图找到合适的方法或其他提取图像的方法,结果一片空白。

如果有人能提供任何示例代码甚至指示,我将不胜感激。如果我可以获取图像并将它们以 jpeg 或 png 格式保存到光盘,那很好,因为我已经有代码可以拍摄这样的图像,将其显示在 jlabel 上,然后将其从光盘中删除。

提前致以问候和感谢

最佳答案

ODT 文档以 XML 格式存储并打包..我们可以遍历 XML 树并获取图像..这是示例代码..

   public void storeAllImages(){             
TextDocument td = TextDocument.loadDocument(new File("multilingual.odt"));
OdfContentDom conDom=td.getContentDom();
Node n1=conDom.getFirstChild();
OdfPackage pack=td.getPackage();
parseXMl(n1,pack);
}
public void parseXMl(Node n,OdfPackage pack) throws Exception{
NodeList nl = n.getChildNodes();
if(nl==null || nl.getLength()==0){//leaf element
NamedNodeMap map=n.getAttributes();
if("draw:image".equals(n.getNodeName())){
byte b[]=pack.getBytes(n.getAttributes().getNamedItem("xlink:href").getNodeValue());

//image data in bytes
FileOutputStream fos=new FileOutputStream(new File("output/output.jpg"));

IOUtils.write(b, fos);
fos.close();


}
return;
}

for (int i=0; i < nl.getLength(); i++) {
Node an = nl.item(i);
parseXMl(an,pack);
}

}

关于java - 如何使用 Odf Toolkit 从 odt 文档中提取图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32897772/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com