How to insert an image in to an openoffice writer document with java?

杀马特。学长 韩版系。学妹 提交于 2019-12-05 10:36:05
Pat B

I found this here: 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");
    }
}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!