1*b1cdbd2cSJim Jagielski /************************************************************** 2*b1cdbd2cSJim Jagielski * 3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one 4*b1cdbd2cSJim Jagielski * or more contributor license agreements. See the NOTICE file 5*b1cdbd2cSJim Jagielski * distributed with this work for additional information 6*b1cdbd2cSJim Jagielski * regarding copyright ownership. The ASF licenses this file 7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the 8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance 9*b1cdbd2cSJim Jagielski * with the License. You may obtain a copy of the License at 10*b1cdbd2cSJim Jagielski * 11*b1cdbd2cSJim Jagielski * http://www.apache.org/licenses/LICENSE-2.0 12*b1cdbd2cSJim Jagielski * 13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing, 14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an 15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*b1cdbd2cSJim Jagielski * KIND, either express or implied. See the License for the 17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations 18*b1cdbd2cSJim Jagielski * under the License. 19*b1cdbd2cSJim Jagielski * 20*b1cdbd2cSJim Jagielski *************************************************************/ 21*b1cdbd2cSJim Jagielski 22*b1cdbd2cSJim Jagielski 23*b1cdbd2cSJim Jagielski 24*b1cdbd2cSJim Jagielski //*************************************************************************** 25*b1cdbd2cSJim Jagielski // comment: Step 1: bootstrap UNO and get the remote component context 26*b1cdbd2cSJim Jagielski // Step 2: open an empty text document 27*b1cdbd2cSJim Jagielski // Step 3: enter some text 28*b1cdbd2cSJim Jagielski // Step 4: insert a text table 29*b1cdbd2cSJim Jagielski // Step 5: insert colored text 30*b1cdbd2cSJim Jagielski // Step 6: insert a text frame 31*b1cdbd2cSJim Jagielski //*************************************************************************** 32*b1cdbd2cSJim Jagielski 33*b1cdbd2cSJim Jagielski import com.sun.star.uno.UnoRuntime; 34*b1cdbd2cSJim Jagielski 35*b1cdbd2cSJim Jagielski public class SWriter { 36*b1cdbd2cSJim Jagielski main(String args[])37*b1cdbd2cSJim Jagielski public static void main(String args[]) { 38*b1cdbd2cSJim Jagielski 39*b1cdbd2cSJim Jagielski 40*b1cdbd2cSJim Jagielski //oooooooooooooooooooooooooooStep 1oooooooooooooooooooooooooooooooooooooooo 41*b1cdbd2cSJim Jagielski // bootstrap UNO and get the remote component context. The context can 42*b1cdbd2cSJim Jagielski // be used to get the service manager 43*b1cdbd2cSJim Jagielski //************************************************************************* 44*b1cdbd2cSJim Jagielski com.sun.star.uno.XComponentContext xContext = null; 45*b1cdbd2cSJim Jagielski 46*b1cdbd2cSJim Jagielski try { 47*b1cdbd2cSJim Jagielski // get the remote office component context 48*b1cdbd2cSJim Jagielski xContext = com.sun.star.comp.helper.Bootstrap.bootstrap(); 49*b1cdbd2cSJim Jagielski if( xContext != null ) 50*b1cdbd2cSJim Jagielski System.out.println("Connected to a running office ..."); 51*b1cdbd2cSJim Jagielski } 52*b1cdbd2cSJim Jagielski catch( Exception e) { 53*b1cdbd2cSJim Jagielski e.printStackTrace(System.err); 54*b1cdbd2cSJim Jagielski System.exit(1); 55*b1cdbd2cSJim Jagielski } 56*b1cdbd2cSJim Jagielski 57*b1cdbd2cSJim Jagielski //oooooooooooooooooooooooooooStep 2oooooooooooooooooooooooooooooooooooooooo 58*b1cdbd2cSJim Jagielski // open an empty document. In this case it's a writer document. 59*b1cdbd2cSJim Jagielski // For this purpose an instance of com.sun.star.frame.Desktop 60*b1cdbd2cSJim Jagielski // is created. It's interface XDesktop provides the XComponentLoader, 61*b1cdbd2cSJim Jagielski // which is used to open the document via loadComponentFromURL 62*b1cdbd2cSJim Jagielski //************************************************************************* 63*b1cdbd2cSJim Jagielski 64*b1cdbd2cSJim Jagielski //Open Writer document 65*b1cdbd2cSJim Jagielski 66*b1cdbd2cSJim Jagielski System.out.println("Opening an empty Writer document"); 67*b1cdbd2cSJim Jagielski com.sun.star.text.XTextDocument myDoc = openWriter(xContext); 68*b1cdbd2cSJim Jagielski 69*b1cdbd2cSJim Jagielski //************************************************************************* 70*b1cdbd2cSJim Jagielski 71*b1cdbd2cSJim Jagielski 72*b1cdbd2cSJim Jagielski //oooooooooooooooooooooooooooStep 3oooooooooooooooooooooooooooooooooooooooo 73*b1cdbd2cSJim Jagielski // insert some text. 74*b1cdbd2cSJim Jagielski // For this purpose get the Text-Object of the document an create the 75*b1cdbd2cSJim Jagielski // cursor. Now it is possible to insert a text at the cursor-position 76*b1cdbd2cSJim Jagielski // via insertString 77*b1cdbd2cSJim Jagielski //************************************************************************* 78*b1cdbd2cSJim Jagielski 79*b1cdbd2cSJim Jagielski 80*b1cdbd2cSJim Jagielski //getting the text object 81*b1cdbd2cSJim Jagielski com.sun.star.text.XText xText = myDoc.getText(); 82*b1cdbd2cSJim Jagielski 83*b1cdbd2cSJim Jagielski //create a cursor object 84*b1cdbd2cSJim Jagielski com.sun.star.text.XTextCursor xTCursor = xText.createTextCursor(); 85*b1cdbd2cSJim Jagielski 86*b1cdbd2cSJim Jagielski //inserting some Text 87*b1cdbd2cSJim Jagielski xText.insertString( xTCursor, "The first line in the newly created text document.\n", false ); 88*b1cdbd2cSJim Jagielski 89*b1cdbd2cSJim Jagielski //inserting a second line 90*b1cdbd2cSJim Jagielski xText.insertString( xTCursor, "Now we're in the second line\n", false ); 91*b1cdbd2cSJim Jagielski 92*b1cdbd2cSJim Jagielski //************************************************************************* 93*b1cdbd2cSJim Jagielski 94*b1cdbd2cSJim Jagielski 95*b1cdbd2cSJim Jagielski //oooooooooooooooooooooooooooStep 4oooooooooooooooooooooooooooooooooooooooo 96*b1cdbd2cSJim Jagielski // insert a text table. 97*b1cdbd2cSJim Jagielski // For this purpose get MultiServiceFactory of the document, create an 98*b1cdbd2cSJim Jagielski // instance of com.sun.star.text.TextTable and initialize it. Now it can 99*b1cdbd2cSJim Jagielski // be inserted at the cursor position via insertTextContent. 100*b1cdbd2cSJim Jagielski // After that some properties are changed and some data is inserted. 101*b1cdbd2cSJim Jagielski //************************************************************************* 102*b1cdbd2cSJim Jagielski 103*b1cdbd2cSJim Jagielski //inserting a text table 104*b1cdbd2cSJim Jagielski System.out.println("Inserting a text table"); 105*b1cdbd2cSJim Jagielski 106*b1cdbd2cSJim Jagielski //getting MSF of the document 107*b1cdbd2cSJim Jagielski com.sun.star.lang.XMultiServiceFactory xDocMSF = 108*b1cdbd2cSJim Jagielski (com.sun.star.lang.XMultiServiceFactory) UnoRuntime.queryInterface( 109*b1cdbd2cSJim Jagielski com.sun.star.lang.XMultiServiceFactory.class, myDoc); 110*b1cdbd2cSJim Jagielski 111*b1cdbd2cSJim Jagielski //create instance of a text table 112*b1cdbd2cSJim Jagielski com.sun.star.text.XTextTable xTT = null; 113*b1cdbd2cSJim Jagielski 114*b1cdbd2cSJim Jagielski try { 115*b1cdbd2cSJim Jagielski Object oInt = xDocMSF.createInstance("com.sun.star.text.TextTable"); 116*b1cdbd2cSJim Jagielski xTT = (com.sun.star.text.XTextTable) 117*b1cdbd2cSJim Jagielski UnoRuntime.queryInterface(com.sun.star.text.XTextTable.class,oInt); 118*b1cdbd2cSJim Jagielski } catch (Exception e) { 119*b1cdbd2cSJim Jagielski System.err.println("Couldn't create instance "+ e); 120*b1cdbd2cSJim Jagielski e.printStackTrace(System.err); 121*b1cdbd2cSJim Jagielski } 122*b1cdbd2cSJim Jagielski 123*b1cdbd2cSJim Jagielski //initialize the text table with 4 columns an 4 rows 124*b1cdbd2cSJim Jagielski xTT.initialize(4,4); 125*b1cdbd2cSJim Jagielski 126*b1cdbd2cSJim Jagielski com.sun.star.beans.XPropertySet xTTRowPS = null; 127*b1cdbd2cSJim Jagielski 128*b1cdbd2cSJim Jagielski //insert the table 129*b1cdbd2cSJim Jagielski try { 130*b1cdbd2cSJim Jagielski xText.insertTextContent(xTCursor, xTT, false); 131*b1cdbd2cSJim Jagielski // get first Row 132*b1cdbd2cSJim Jagielski com.sun.star.container.XIndexAccess xTTRows = xTT.getRows(); 133*b1cdbd2cSJim Jagielski xTTRowPS = (com.sun.star.beans.XPropertySet)UnoRuntime.queryInterface( 134*b1cdbd2cSJim Jagielski com.sun.star.beans.XPropertySet.class, xTTRows.getByIndex(0)); 135*b1cdbd2cSJim Jagielski 136*b1cdbd2cSJim Jagielski } catch (Exception e) { 137*b1cdbd2cSJim Jagielski System.err.println("Couldn't insert the table " + e); 138*b1cdbd2cSJim Jagielski e.printStackTrace(System.err); 139*b1cdbd2cSJim Jagielski } 140*b1cdbd2cSJim Jagielski 141*b1cdbd2cSJim Jagielski 142*b1cdbd2cSJim Jagielski // get the property set of the text table 143*b1cdbd2cSJim Jagielski 144*b1cdbd2cSJim Jagielski com.sun.star.beans.XPropertySet xTTPS = (com.sun.star.beans.XPropertySet) 145*b1cdbd2cSJim Jagielski UnoRuntime.queryInterface(com.sun.star.beans.XPropertySet.class, xTT); 146*b1cdbd2cSJim Jagielski 147*b1cdbd2cSJim Jagielski // Change the BackColor 148*b1cdbd2cSJim Jagielski try { 149*b1cdbd2cSJim Jagielski xTTPS.setPropertyValue("BackTransparent", new Boolean(false)); 150*b1cdbd2cSJim Jagielski xTTPS.setPropertyValue("BackColor",new Integer(13421823)); 151*b1cdbd2cSJim Jagielski xTTRowPS.setPropertyValue("BackTransparent", new Boolean(false)); 152*b1cdbd2cSJim Jagielski xTTRowPS.setPropertyValue("BackColor",new Integer(6710932)); 153*b1cdbd2cSJim Jagielski 154*b1cdbd2cSJim Jagielski } catch (Exception e) { 155*b1cdbd2cSJim Jagielski System.err.println("Couldn't change the color " + e); 156*b1cdbd2cSJim Jagielski e.printStackTrace(System.err); 157*b1cdbd2cSJim Jagielski } 158*b1cdbd2cSJim Jagielski 159*b1cdbd2cSJim Jagielski // write Text in the Table headers 160*b1cdbd2cSJim Jagielski System.out.println("Write text in the table headers"); 161*b1cdbd2cSJim Jagielski 162*b1cdbd2cSJim Jagielski insertIntoCell("A1","FirstColumn", xTT); 163*b1cdbd2cSJim Jagielski insertIntoCell("B1","SecondColumn", xTT) ; 164*b1cdbd2cSJim Jagielski insertIntoCell("C1","ThirdColumn", xTT) ; 165*b1cdbd2cSJim Jagielski insertIntoCell("D1","SUM", xTT) ; 166*b1cdbd2cSJim Jagielski 167*b1cdbd2cSJim Jagielski 168*b1cdbd2cSJim Jagielski //Insert Something in the text table 169*b1cdbd2cSJim Jagielski System.out.println("Insert something in the text table"); 170*b1cdbd2cSJim Jagielski 171*b1cdbd2cSJim Jagielski (xTT.getCellByName("A2")).setValue(22.5); 172*b1cdbd2cSJim Jagielski (xTT.getCellByName("B2")).setValue(5615.3); 173*b1cdbd2cSJim Jagielski (xTT.getCellByName("C2")).setValue(-2315.7); 174*b1cdbd2cSJim Jagielski (xTT.getCellByName("D2")).setFormula("sum <A2:C2>"); 175*b1cdbd2cSJim Jagielski 176*b1cdbd2cSJim Jagielski (xTT.getCellByName("A3")).setValue(21.5); 177*b1cdbd2cSJim Jagielski (xTT.getCellByName("B3")).setValue(615.3); 178*b1cdbd2cSJim Jagielski (xTT.getCellByName("C3")).setValue(-315.7); 179*b1cdbd2cSJim Jagielski (xTT.getCellByName("D3")).setFormula("sum <A3:C3>"); 180*b1cdbd2cSJim Jagielski 181*b1cdbd2cSJim Jagielski (xTT.getCellByName("A4")).setValue(121.5); 182*b1cdbd2cSJim Jagielski (xTT.getCellByName("B4")).setValue(-615.3); 183*b1cdbd2cSJim Jagielski (xTT.getCellByName("C4")).setValue(415.7); 184*b1cdbd2cSJim Jagielski (xTT.getCellByName("D4")).setFormula("sum <A4:C4>"); 185*b1cdbd2cSJim Jagielski 186*b1cdbd2cSJim Jagielski 187*b1cdbd2cSJim Jagielski //oooooooooooooooooooooooooooStep 5oooooooooooooooooooooooooooooooooooooooo 188*b1cdbd2cSJim Jagielski // insert a colored text. 189*b1cdbd2cSJim Jagielski // Get the propertySet of the cursor, change the CharColor and add a 190*b1cdbd2cSJim Jagielski // shadow. Then insert the Text via InsertString at the cursor position. 191*b1cdbd2cSJim Jagielski //************************************************************************* 192*b1cdbd2cSJim Jagielski 193*b1cdbd2cSJim Jagielski // get the property set of the cursor 194*b1cdbd2cSJim Jagielski com.sun.star.beans.XPropertySet xTCPS = (com.sun.star.beans.XPropertySet) 195*b1cdbd2cSJim Jagielski UnoRuntime.queryInterface(com.sun.star.beans.XPropertySet.class, 196*b1cdbd2cSJim Jagielski xTCursor); 197*b1cdbd2cSJim Jagielski 198*b1cdbd2cSJim Jagielski Object oldValue = null; 199*b1cdbd2cSJim Jagielski 200*b1cdbd2cSJim Jagielski // Change the CharColor and add a Shadow 201*b1cdbd2cSJim Jagielski try { 202*b1cdbd2cSJim Jagielski xTCPS.setPropertyValue("CharColor",new Integer(255)); 203*b1cdbd2cSJim Jagielski xTCPS.setPropertyValue("CharShadowed", new Boolean(true)); 204*b1cdbd2cSJim Jagielski } catch (Exception e) { 205*b1cdbd2cSJim Jagielski System.err.println("Couldn't change the color " + e); 206*b1cdbd2cSJim Jagielski e.printStackTrace(System.err); 207*b1cdbd2cSJim Jagielski } 208*b1cdbd2cSJim Jagielski 209*b1cdbd2cSJim Jagielski //create a paragraph break 210*b1cdbd2cSJim Jagielski try { 211*b1cdbd2cSJim Jagielski xText.insertControlCharacter(xTCursor, 212*b1cdbd2cSJim Jagielski com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK, false); 213*b1cdbd2cSJim Jagielski 214*b1cdbd2cSJim Jagielski } catch (Exception e) { 215*b1cdbd2cSJim Jagielski System.err.println("Couldn't insert break "+ e); 216*b1cdbd2cSJim Jagielski e.printStackTrace(System.err); 217*b1cdbd2cSJim Jagielski } 218*b1cdbd2cSJim Jagielski 219*b1cdbd2cSJim Jagielski //inserting colored Text 220*b1cdbd2cSJim Jagielski System.out.println("Inserting colored Text"); 221*b1cdbd2cSJim Jagielski 222*b1cdbd2cSJim Jagielski xText.insertString(xTCursor, " This is a colored Text - blue with shadow\n", 223*b1cdbd2cSJim Jagielski false ); 224*b1cdbd2cSJim Jagielski 225*b1cdbd2cSJim Jagielski //create a paragraph break 226*b1cdbd2cSJim Jagielski try { 227*b1cdbd2cSJim Jagielski xText.insertControlCharacter(xTCursor, 228*b1cdbd2cSJim Jagielski com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK, false); 229*b1cdbd2cSJim Jagielski 230*b1cdbd2cSJim Jagielski } catch (Exception e) { 231*b1cdbd2cSJim Jagielski System.err.println("Couldn't insert break "+ e); 232*b1cdbd2cSJim Jagielski e.printStackTrace(System.err); 233*b1cdbd2cSJim Jagielski } 234*b1cdbd2cSJim Jagielski 235*b1cdbd2cSJim Jagielski //oooooooooooooooooooooooooooStep 6oooooooooooooooooooooooooooooooooooooooo 236*b1cdbd2cSJim Jagielski // insert a text frame. 237*b1cdbd2cSJim Jagielski // create an instance of com.sun.star.text.TextFrame using the MSF of the 238*b1cdbd2cSJim Jagielski // document. Change some properties an insert it. 239*b1cdbd2cSJim Jagielski // Now get the text-Object of the frame an the corresponding cursor. 240*b1cdbd2cSJim Jagielski // Insert some text via insertString. 241*b1cdbd2cSJim Jagielski //************************************************************************* 242*b1cdbd2cSJim Jagielski 243*b1cdbd2cSJim Jagielski // Create a TextFrame 244*b1cdbd2cSJim Jagielski com.sun.star.text.XTextFrame xTF = null; 245*b1cdbd2cSJim Jagielski com.sun.star.drawing.XShape xTFS = null; 246*b1cdbd2cSJim Jagielski 247*b1cdbd2cSJim Jagielski try { 248*b1cdbd2cSJim Jagielski Object oInt = xDocMSF.createInstance("com.sun.star.text.TextFrame"); 249*b1cdbd2cSJim Jagielski xTF = (com.sun.star.text.XTextFrame) UnoRuntime.queryInterface( 250*b1cdbd2cSJim Jagielski com.sun.star.text.XTextFrame.class,oInt); 251*b1cdbd2cSJim Jagielski xTFS = (com.sun.star.drawing.XShape) UnoRuntime.queryInterface( 252*b1cdbd2cSJim Jagielski com.sun.star.drawing.XShape.class,oInt); 253*b1cdbd2cSJim Jagielski 254*b1cdbd2cSJim Jagielski com.sun.star.awt.Size aSize = new com.sun.star.awt.Size(); 255*b1cdbd2cSJim Jagielski aSize.Height = 400; 256*b1cdbd2cSJim Jagielski aSize.Width = 15000; 257*b1cdbd2cSJim Jagielski 258*b1cdbd2cSJim Jagielski xTFS.setSize(aSize); 259*b1cdbd2cSJim Jagielski } catch (Exception e) { 260*b1cdbd2cSJim Jagielski System.err.println("Couldn't create instance "+ e); 261*b1cdbd2cSJim Jagielski e.printStackTrace(System.err); 262*b1cdbd2cSJim Jagielski } 263*b1cdbd2cSJim Jagielski 264*b1cdbd2cSJim Jagielski // get the property set of the text frame 265*b1cdbd2cSJim Jagielski com.sun.star.beans.XPropertySet xTFPS = (com.sun.star.beans.XPropertySet) 266*b1cdbd2cSJim Jagielski UnoRuntime.queryInterface(com.sun.star.beans.XPropertySet.class, xTF); 267*b1cdbd2cSJim Jagielski 268*b1cdbd2cSJim Jagielski // Change the AnchorType 269*b1cdbd2cSJim Jagielski try { 270*b1cdbd2cSJim Jagielski xTFPS.setPropertyValue("AnchorType", 271*b1cdbd2cSJim Jagielski com.sun.star.text.TextContentAnchorType.AS_CHARACTER); 272*b1cdbd2cSJim Jagielski } catch (Exception e) { 273*b1cdbd2cSJim Jagielski System.err.println("Couldn't change the color " + e); 274*b1cdbd2cSJim Jagielski e.printStackTrace(System.err); 275*b1cdbd2cSJim Jagielski } 276*b1cdbd2cSJim Jagielski 277*b1cdbd2cSJim Jagielski //insert the frame 278*b1cdbd2cSJim Jagielski System.out.println("Insert the text frame"); 279*b1cdbd2cSJim Jagielski 280*b1cdbd2cSJim Jagielski try { 281*b1cdbd2cSJim Jagielski xText.insertTextContent(xTCursor, xTF, false); 282*b1cdbd2cSJim Jagielski } catch (Exception e) { 283*b1cdbd2cSJim Jagielski System.err.println("Couldn't insert the frame " + e); 284*b1cdbd2cSJim Jagielski e.printStackTrace(System.err); 285*b1cdbd2cSJim Jagielski } 286*b1cdbd2cSJim Jagielski 287*b1cdbd2cSJim Jagielski //getting the text object of Frame 288*b1cdbd2cSJim Jagielski com.sun.star.text.XText xTextF = xTF.getText(); 289*b1cdbd2cSJim Jagielski 290*b1cdbd2cSJim Jagielski //create a cursor object 291*b1cdbd2cSJim Jagielski com.sun.star.text.XTextCursor xTCF = xTextF.createTextCursor(); 292*b1cdbd2cSJim Jagielski 293*b1cdbd2cSJim Jagielski //inserting some Text 294*b1cdbd2cSJim Jagielski xTextF.insertString(xTCF, 295*b1cdbd2cSJim Jagielski "The first line in the newly created text frame.", false); 296*b1cdbd2cSJim Jagielski 297*b1cdbd2cSJim Jagielski 298*b1cdbd2cSJim Jagielski xTextF.insertString(xTCF, 299*b1cdbd2cSJim Jagielski "\nWith this second line the height of the frame raises.", false); 300*b1cdbd2cSJim Jagielski 301*b1cdbd2cSJim Jagielski //insert a paragraph break 302*b1cdbd2cSJim Jagielski try { 303*b1cdbd2cSJim Jagielski xText.insertControlCharacter(xTCursor, 304*b1cdbd2cSJim Jagielski com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK, false ); 305*b1cdbd2cSJim Jagielski 306*b1cdbd2cSJim Jagielski } catch (Exception e) { 307*b1cdbd2cSJim Jagielski System.err.println("Couldn't insert break "+ e); 308*b1cdbd2cSJim Jagielski e.printStackTrace(System.err); 309*b1cdbd2cSJim Jagielski } 310*b1cdbd2cSJim Jagielski 311*b1cdbd2cSJim Jagielski // Change the CharColor and add a Shadow 312*b1cdbd2cSJim Jagielski try { 313*b1cdbd2cSJim Jagielski xTCPS.setPropertyValue("CharColor",new Integer(65536)); 314*b1cdbd2cSJim Jagielski xTCPS.setPropertyValue("CharShadowed", new Boolean(false)); 315*b1cdbd2cSJim Jagielski } catch (Exception e) { 316*b1cdbd2cSJim Jagielski System.err.println("Couldn't change the color " + e); 317*b1cdbd2cSJim Jagielski e.printStackTrace(System.err); 318*b1cdbd2cSJim Jagielski } 319*b1cdbd2cSJim Jagielski 320*b1cdbd2cSJim Jagielski xText.insertString(xTCursor, " That's all for now !!", false ); 321*b1cdbd2cSJim Jagielski 322*b1cdbd2cSJim Jagielski System.out.println("done"); 323*b1cdbd2cSJim Jagielski 324*b1cdbd2cSJim Jagielski System.exit(0); 325*b1cdbd2cSJim Jagielski } 326*b1cdbd2cSJim Jagielski 327*b1cdbd2cSJim Jagielski openWriter( com.sun.star.uno.XComponentContext xContext)328*b1cdbd2cSJim Jagielski public static com.sun.star.text.XTextDocument openWriter( 329*b1cdbd2cSJim Jagielski com.sun.star.uno.XComponentContext xContext) 330*b1cdbd2cSJim Jagielski { 331*b1cdbd2cSJim Jagielski //define variables 332*b1cdbd2cSJim Jagielski com.sun.star.frame.XComponentLoader xCLoader; 333*b1cdbd2cSJim Jagielski com.sun.star.text.XTextDocument xDoc = null; 334*b1cdbd2cSJim Jagielski com.sun.star.lang.XComponent xComp = null; 335*b1cdbd2cSJim Jagielski 336*b1cdbd2cSJim Jagielski try { 337*b1cdbd2cSJim Jagielski // get the remote office service manager 338*b1cdbd2cSJim Jagielski com.sun.star.lang.XMultiComponentFactory xMCF = 339*b1cdbd2cSJim Jagielski xContext.getServiceManager(); 340*b1cdbd2cSJim Jagielski 341*b1cdbd2cSJim Jagielski Object oDesktop = xMCF.createInstanceWithContext( 342*b1cdbd2cSJim Jagielski "com.sun.star.frame.Desktop", xContext); 343*b1cdbd2cSJim Jagielski 344*b1cdbd2cSJim Jagielski xCLoader = (com.sun.star.frame.XComponentLoader) 345*b1cdbd2cSJim Jagielski UnoRuntime.queryInterface(com.sun.star.frame.XComponentLoader.class, 346*b1cdbd2cSJim Jagielski oDesktop); 347*b1cdbd2cSJim Jagielski com.sun.star.beans.PropertyValue [] szEmptyArgs = 348*b1cdbd2cSJim Jagielski new com.sun.star.beans.PropertyValue [0]; 349*b1cdbd2cSJim Jagielski String strDoc = "private:factory/swriter"; 350*b1cdbd2cSJim Jagielski xComp = xCLoader.loadComponentFromURL(strDoc, "_blank", 0, szEmptyArgs); 351*b1cdbd2cSJim Jagielski xDoc = (com.sun.star.text.XTextDocument) 352*b1cdbd2cSJim Jagielski UnoRuntime.queryInterface(com.sun.star.text.XTextDocument.class, 353*b1cdbd2cSJim Jagielski xComp); 354*b1cdbd2cSJim Jagielski 355*b1cdbd2cSJim Jagielski } catch(Exception e){ 356*b1cdbd2cSJim Jagielski System.err.println(" Exception " + e); 357*b1cdbd2cSJim Jagielski e.printStackTrace(System.err); 358*b1cdbd2cSJim Jagielski } 359*b1cdbd2cSJim Jagielski return xDoc; 360*b1cdbd2cSJim Jagielski } 361*b1cdbd2cSJim Jagielski insertIntoCell(String CellName, String theText, com.sun.star.text.XTextTable xTTbl)362*b1cdbd2cSJim Jagielski public static void insertIntoCell(String CellName, String theText, 363*b1cdbd2cSJim Jagielski com.sun.star.text.XTextTable xTTbl) { 364*b1cdbd2cSJim Jagielski 365*b1cdbd2cSJim Jagielski com.sun.star.text.XText xTableText = (com.sun.star.text.XText) 366*b1cdbd2cSJim Jagielski UnoRuntime.queryInterface(com.sun.star.text.XText.class, 367*b1cdbd2cSJim Jagielski xTTbl.getCellByName(CellName)); 368*b1cdbd2cSJim Jagielski 369*b1cdbd2cSJim Jagielski //create a cursor object 370*b1cdbd2cSJim Jagielski com.sun.star.text.XTextCursor xTC = xTableText.createTextCursor(); 371*b1cdbd2cSJim Jagielski 372*b1cdbd2cSJim Jagielski com.sun.star.beans.XPropertySet xTPS = (com.sun.star.beans.XPropertySet) 373*b1cdbd2cSJim Jagielski UnoRuntime.queryInterface(com.sun.star.beans.XPropertySet.class, xTC); 374*b1cdbd2cSJim Jagielski 375*b1cdbd2cSJim Jagielski try { 376*b1cdbd2cSJim Jagielski xTPS.setPropertyValue("CharColor",new Integer(16777215)); 377*b1cdbd2cSJim Jagielski } catch (Exception e) { 378*b1cdbd2cSJim Jagielski System.err.println(" Exception " + e); 379*b1cdbd2cSJim Jagielski e.printStackTrace(System.err); 380*b1cdbd2cSJim Jagielski } 381*b1cdbd2cSJim Jagielski 382*b1cdbd2cSJim Jagielski //inserting some Text 383*b1cdbd2cSJim Jagielski xTableText.setString( theText ); 384*b1cdbd2cSJim Jagielski 385*b1cdbd2cSJim Jagielski } 386*b1cdbd2cSJim Jagielski } 387