1*ef39d40dSAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 3*ef39d40dSAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4*ef39d40dSAndrew Rist * or more contributor license agreements. See the NOTICE file 5*ef39d40dSAndrew Rist * distributed with this work for additional information 6*ef39d40dSAndrew Rist * regarding copyright ownership. The ASF licenses this file 7*ef39d40dSAndrew Rist * to you under the Apache License, Version 2.0 (the 8*ef39d40dSAndrew Rist * "License"); you may not use this file except in compliance 9*ef39d40dSAndrew Rist * with the License. You may obtain a copy of the License at 10*ef39d40dSAndrew Rist * 11*ef39d40dSAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12*ef39d40dSAndrew Rist * 13*ef39d40dSAndrew Rist * Unless required by applicable law or agreed to in writing, 14*ef39d40dSAndrew Rist * software distributed under the License is distributed on an 15*ef39d40dSAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*ef39d40dSAndrew Rist * KIND, either express or implied. See the License for the 17*ef39d40dSAndrew Rist * specific language governing permissions and limitations 18*ef39d40dSAndrew Rist * under the License. 19*ef39d40dSAndrew Rist * 20*ef39d40dSAndrew Rist *************************************************************/ 21*ef39d40dSAndrew Rist 22*ef39d40dSAndrew Rist 23cdf0e10cSrcweir package util; 24cdf0e10cSrcweir 25cdf0e10cSrcweir import com.sun.star.beans.PropertyValue; 26cdf0e10cSrcweir import com.sun.star.beans.XPropertySet; 27cdf0e10cSrcweir import com.sun.star.container.XNamed; 28cdf0e10cSrcweir import com.sun.star.drawing.XDrawPage; 29cdf0e10cSrcweir import com.sun.star.drawing.XDrawPageSupplier; 30cdf0e10cSrcweir import com.sun.star.lang.XComponent; 31cdf0e10cSrcweir import com.sun.star.lang.XMultiServiceFactory; 32cdf0e10cSrcweir import com.sun.star.text.XText; 33cdf0e10cSrcweir import com.sun.star.text.XTextContent; 34cdf0e10cSrcweir import com.sun.star.text.XTextCursor; 35cdf0e10cSrcweir import com.sun.star.text.XTextDocument; 36cdf0e10cSrcweir import com.sun.star.uno.UnoRuntime; 37cdf0e10cSrcweir 38cdf0e10cSrcweir // access the implementations via names 39cdf0e10cSrcweir import com.sun.star.uno.XInterface; 40cdf0e10cSrcweir 41cdf0e10cSrcweir import util.DesktopTools; 42cdf0e10cSrcweir 43cdf0e10cSrcweir 44cdf0e10cSrcweir public class WriterTools { createTextDoc(XMultiServiceFactory xMSF)45cdf0e10cSrcweir public static XTextDocument createTextDoc(XMultiServiceFactory xMSF) { 46cdf0e10cSrcweir PropertyValue[] Args = new PropertyValue[0]; 47cdf0e10cSrcweir XComponent comp = DesktopTools.openNewDoc(xMSF, "swriter", Args); 48cdf0e10cSrcweir XTextDocument WriterDoc = (XTextDocument) UnoRuntime.queryInterface( 49cdf0e10cSrcweir XTextDocument.class, comp); 50cdf0e10cSrcweir 51cdf0e10cSrcweir return WriterDoc; 52cdf0e10cSrcweir } // finish createTextDoc 53cdf0e10cSrcweir loadTextDoc(XMultiServiceFactory xMSF, String url)54cdf0e10cSrcweir public static XTextDocument loadTextDoc(XMultiServiceFactory xMSF, 55cdf0e10cSrcweir String url) { 56cdf0e10cSrcweir PropertyValue[] Args = new PropertyValue[0]; 57cdf0e10cSrcweir XTextDocument WriterDoc = loadTextDoc(xMSF, url, Args); 58cdf0e10cSrcweir 59cdf0e10cSrcweir return WriterDoc; 60cdf0e10cSrcweir } // finish createTextDoc 61cdf0e10cSrcweir loadTextDoc(XMultiServiceFactory xMSF, String url, PropertyValue[] Args)62cdf0e10cSrcweir public static XTextDocument loadTextDoc(XMultiServiceFactory xMSF, 63cdf0e10cSrcweir String url, PropertyValue[] Args) { 64cdf0e10cSrcweir XComponent comp = DesktopTools.loadDoc(xMSF, url, Args); 65cdf0e10cSrcweir XTextDocument WriterDoc = (XTextDocument) UnoRuntime.queryInterface( 66cdf0e10cSrcweir XTextDocument.class, comp); 67cdf0e10cSrcweir 68cdf0e10cSrcweir return WriterDoc; 69cdf0e10cSrcweir } // finish createTextDoc 70cdf0e10cSrcweir getDrawPage(XTextDocument aDoc)71cdf0e10cSrcweir public static XDrawPage getDrawPage(XTextDocument aDoc) { 72cdf0e10cSrcweir XDrawPage oDP = null; 73cdf0e10cSrcweir 74cdf0e10cSrcweir try { 75cdf0e10cSrcweir XDrawPageSupplier oDPS = (XDrawPageSupplier) UnoRuntime.queryInterface( 76cdf0e10cSrcweir XDrawPageSupplier.class, aDoc); 77cdf0e10cSrcweir oDP = (XDrawPage) oDPS.getDrawPage(); 78cdf0e10cSrcweir } catch (Exception e) { 79cdf0e10cSrcweir throw new IllegalArgumentException("Couldn't get drawpage"); 80cdf0e10cSrcweir } 81cdf0e10cSrcweir 82cdf0e10cSrcweir return oDP; 83cdf0e10cSrcweir } 84cdf0e10cSrcweir insertTextGraphic(XTextDocument aDoc, XMultiServiceFactory xMSF, int hpos, int vpos, int width, int height, String pic, String name)85cdf0e10cSrcweir public static void insertTextGraphic(XTextDocument aDoc, 86cdf0e10cSrcweir XMultiServiceFactory xMSF, int hpos, 87cdf0e10cSrcweir int vpos, int width, int height, 88cdf0e10cSrcweir String pic, String name) { 89cdf0e10cSrcweir try { 90cdf0e10cSrcweir Object oGObject = (XInterface) xMSF.createInstance( 91cdf0e10cSrcweir "com.sun.star.text.GraphicObject"); 92cdf0e10cSrcweir 93cdf0e10cSrcweir XText the_text = aDoc.getText(); 94cdf0e10cSrcweir XTextCursor the_cursor = the_text.createTextCursor(); 95cdf0e10cSrcweir XTextContent the_content = (XTextContent) UnoRuntime.queryInterface( 96cdf0e10cSrcweir XTextContent.class, oGObject); 97cdf0e10cSrcweir the_text.insertTextContent(the_cursor, the_content, true); 98cdf0e10cSrcweir 99cdf0e10cSrcweir XPropertySet oProps = (XPropertySet) UnoRuntime.queryInterface( 100cdf0e10cSrcweir XPropertySet.class, oGObject); 101cdf0e10cSrcweir 102cdf0e10cSrcweir String fullURL = util.utils.getFullTestURL(pic); 103cdf0e10cSrcweir oProps.setPropertyValue("GraphicURL", fullURL); 104cdf0e10cSrcweir oProps.setPropertyValue("HoriOrientPosition", new Integer(hpos)); 105cdf0e10cSrcweir oProps.setPropertyValue("VertOrientPosition", new Integer(vpos)); 106cdf0e10cSrcweir oProps.setPropertyValue("Width", new Integer(width)); 107cdf0e10cSrcweir oProps.setPropertyValue("Height", new Integer(height)); 108cdf0e10cSrcweir 109cdf0e10cSrcweir XNamed the_name = (XNamed) UnoRuntime.queryInterface(XNamed.class, 110cdf0e10cSrcweir oGObject); 111cdf0e10cSrcweir the_name.setName(name); 112cdf0e10cSrcweir } catch (Exception ex) { 113cdf0e10cSrcweir System.out.println("Exception while insertin TextGraphic"); 114cdf0e10cSrcweir ex.printStackTrace(); 115cdf0e10cSrcweir } 116cdf0e10cSrcweir } 117cdf0e10cSrcweir }