Java 将内容添加到ODFToolkit中OpenOffice odp演示文稿的框架中

Java 将内容添加到ODFToolkit中OpenOffice odp演示文稿的框架中,java,openoffice.org,libreoffice,odf,odftoolkit,Java,Openoffice.org,Libreoffice,Odf,Odftoolkit,我想使用Open Office/Libre Office演示文稿作为模板,并在幻灯片中插入文本和图像。我正在尝试使用odftoolkit。如果我有一张带方框的幻灯片,它们在XML中表示为 如何访问它们以在其中放置图像?我应该使用这些类吗 org.odftoolkit.simple.PresentationDocument org.odftoolkit.simple.presentation.Slide 当我打开幻灯片时,我看到的相关方法有: .getOdfElement .getFrame

我想使用Open Office/Libre Office演示文稿作为模板,并在幻灯片中插入文本和图像。我正在尝试使用odftoolkit。如果我有一张带方框的幻灯片,它们在XML中表示为

如何访问它们以在其中放置图像?我应该使用这些类吗

  • org.odftoolkit.simple.PresentationDocument
  • org.odftoolkit.simple.presentation.Slide
当我打开幻灯片时,我看到的相关方法有:

  • .getOdfElement
  • .getFrameContainerElement
但我看不到如何在幻灯片中选择帧。当我打开XML时,我在
下有5个框架


正如Eugene评论的那样,我必须找到目标帧并做更多的工作。没有将图像添加到帧的方法,只能添加到幻灯片。我研究了这些方法,并取得了如下成功:

DrawPageElement drawPageElement = slide.getOdfElement();
DrawFrameElement drawFrame = OdfElement.findFirstChildNode(DrawFrameElement.class, drawPageElement);
DrawImageElement image = drawFrame.newDrawImageElement();
OdfPackage mOdfPackage = odp.getPackage();
String imageRef = "/some/path/to/chart.png";

String packagePath = odp.getDocumentPath() + OdfPackage.OdfFile.IMAGE_DIRECTORY.getPath() + "/" + someMethodToCreateRandomString();

mOdfPackage.insert(new URI(imageRef), packagePath, OdfFileEntry.getMediaTypeString(imageRef));
packagePath = packagePath.replaceFirst(odp.getDocumentPath(), "");
URI uri = new URI(AnyURI.encodePath(packagePath).toString());
image.setXlinkHrefAttribute(AnyURI.decodePath(uri.toString()));
image.setXlinkActuateAttribute("onLoad");
image.setXlinkShowAttribute("embed");
image.setXlinkTypeAttribute("simple");

我希望有更接近GUI的东西,因为我想我错过了一些样式和更好的框架查找方法。但无论如何,这并不坏。

至少您可以获得幻灯片的frame容器元素,尝试迭代其所有子元素,并手动检查它们的类和属性以找到目标帧。