如何使用java将图像插入到openoffice编写器文档中?

我正在尝试从模板创建一个openoffice编写器文档。 我可以用这段代码替换报告的文本部分

private static void searchAndReplace(final String search, final String replace, final XTextDocument mxDoc) { XReplaceable xReplaceable = (XReplaceable) UnoRuntime.queryInterface( XReplaceable.class, mxDoc); XReplaceDescriptor xRepDesc = xReplaceable.createReplaceDescriptor(); xRepDesc.setSearchString(search); xRepDesc.setReplaceString(replace); xReplaceable.replaceAll(xRepDesc); } 

我从这里找到了一些示例代码,用于将图像链接或嵌入到xTextDocument中。 但是,我无法插入到xTextDocument中。 有没有其他方法可以用Java做到这一点? Openoffice版本是3.1.0。

有答案吗?

我在这里找到了这个: https : //svn.apache.org/repos/asf/openoffice/ooo-site/trunk/content/api/Examples/Snippets/Writer/Writer.EmbedAGraphicIntoATextdocument.snip

 private void embedGraphic(GraphicInfo grProps, XMultiServiceFactory xMSF, XTextCursor xCursor) { XNameContainer xBitmapContainer = null; XText xText = xCursor.getText(); XTextContent xImage = null; String internalURL = null; try { xBitmapContainer = (XNameContainer) UnoRuntime.queryInterface( XNameContainer.class, xMSF.createInstance( "com.sun.star.drawing.BitmapTable")); xImage = (XTextContent) UnoRuntime.queryInterface( XTextContent.class, xMSF.createInstance( "com.sun.star.text.TextGraphicObject")); XPropertySet xProps = (XPropertySet) UnoRuntime.queryInterface( XPropertySet.class, xImage); // helper-stuff to let OOo create an internal name of the graphic // that can be used later (internal name consists of various checksums) xBitmapContainer.insertByName("someID", grProps.unoURL); internalURL = AnyConverter.toString(xBitmapContainer .getByName("someID")); xProps.setPropertyValue("AnchorType", com.sun.star.text.TextContentAnchorType.AS_CHARACTER); xProps.setPropertyValue("GraphicURL", internalURL); xProps.setPropertyValue("Width", (int) grProps.widthOfGraphic); xProps.setPropertyValue("Height", (int) grProps.heightOfGraphic); // inser the graphic at the cursor position xText.insertTextContent(xCursor, xImage, false); // remove the helper-entry xBitmapContainer.removeByName("someID"); } catch (Exception e) { System.out.println("Failed to insert Graphic"); } }