首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在OpenOffice odp表示的框架中添加ODFToolkit中的内容

在OpenOffice odp表示的框架中添加ODFToolkit中的内容
EN

Stack Overflow用户
提问于 2014-02-28 18:03:50
回答 1查看 644关注 0票数 6

我希望使用Office / Libre Office演示文稿作为模板,并将文本和图像插入幻灯片中。我正在尝试使用odftoolkit。如果我有带框的幻灯片,则它们在XML中表示为<draw:frame>

我如何访问这些文件以在其中放置图像?我应该用这些课吗?

  • org.odftoolkit.simple.PresentationDocument
  • org.odftoolkit.simple.presentation.Slide

当我打开幻灯片时,我看到的相关方法如下:

  • .getOdfElement
  • .getFrameContainerElement

但是我看不出如何在幻灯片中选择框架。当我打开XML时,<draw:page>下面有5帧。

类似于:presentation:style-name="pr2" draw:layer="layout"的have属性

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-05 16:08:01

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

代码语言:javascript
复制
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的东西,因为我想我错过了一些样式和找到框架的更好方法。但不管怎样,这并不坏。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22102579

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档