1*b1cdbd2cSJim Jagielski<?xml version="1.0"?> 2*b1cdbd2cSJim Jagielski<component> 3*b1cdbd2cSJim Jagielski 4*b1cdbd2cSJim Jagielski<?component error="true" debug="true"?> 5*b1cdbd2cSJim Jagielski 6*b1cdbd2cSJim Jagielski<registration 7*b1cdbd2cSJim Jagielski description="writerdemo script component" 8*b1cdbd2cSJim Jagielski progid="dcomtest.writerdemo.WSC" 9*b1cdbd2cSJim Jagielski version="1.00" 10*b1cdbd2cSJim Jagielski classid="{90c5ca1a-5e38-4c6d-9634-b0c740c569ad}" 11*b1cdbd2cSJim Jagielski remotable="true" 12*b1cdbd2cSJim Jagielski> 13*b1cdbd2cSJim Jagielski</registration> 14*b1cdbd2cSJim Jagielski 15*b1cdbd2cSJim Jagielski<public> 16*b1cdbd2cSJim Jagielski <method name="run"> 17*b1cdbd2cSJim Jagielski </method> 18*b1cdbd2cSJim Jagielski</public> 19*b1cdbd2cSJim Jagielski 20*b1cdbd2cSJim Jagielski<script language="JScript"> 21*b1cdbd2cSJim Jagielski<![CDATA[ 22*b1cdbd2cSJim Jagielski 23*b1cdbd2cSJim Jagielskivar description = new jscripttest; 24*b1cdbd2cSJim Jagielski 25*b1cdbd2cSJim Jagielskifunction jscripttest() 26*b1cdbd2cSJim Jagielski{ 27*b1cdbd2cSJim Jagielski 28*b1cdbd2cSJim Jagielski this.run = run; 29*b1cdbd2cSJim Jagielski} 30*b1cdbd2cSJim Jagielski 31*b1cdbd2cSJim Jagielskifunction run() 32*b1cdbd2cSJim Jagielski{ 33*b1cdbd2cSJim Jagielski//The service manager is always the starting point 34*b1cdbd2cSJim Jagielski//If there is no office running then an office is started up 35*b1cdbd2cSJim Jagielski 36*b1cdbd2cSJim Jagielskivar objServiceManager= new ActiveXObject("com.sun.star.ServiceManager","\\jl-1036"); 37*b1cdbd2cSJim Jagielski 38*b1cdbd2cSJim Jagielski//Create the CoreReflection service that is later used to create structs 39*b1cdbd2cSJim Jagielskivar objCoreReflection= objServiceManager.createInstance("com.sun.star.reflection.CoreReflection"); 40*b1cdbd2cSJim Jagielski 41*b1cdbd2cSJim Jagielski//Create the Desktop 42*b1cdbd2cSJim Jagielskivar objDesktop= objServiceManager.createInstance("com.sun.star.frame.Desktop"); 43*b1cdbd2cSJim Jagielski 44*b1cdbd2cSJim Jagielski//Open a new empty writer document 45*b1cdbd2cSJim Jagielskivar objCoreReflection= objServiceManager.createInstance("com.sun.star.reflection.CoreReflection"); 46*b1cdbd2cSJim Jagielski 47*b1cdbd2cSJim Jagielski//get a type description class for Size 48*b1cdbd2cSJim Jagielski//var propClass = objCoreReflection.forName( "com.sun.star.beans.PropertyValue" ); 49*b1cdbd2cSJim Jagielski 50*b1cdbd2cSJim Jagielski//var propParam= new Array(); 51*b1cdbd2cSJim Jagielski//propClass.createObject(propParam); 52*b1cdbd2cSJim Jagielski//var prop= propParam[0]; 53*b1cdbd2cSJim Jagielski//prop.Name= "Hidden"; 54*b1cdbd2cSJim Jagielski//prop.Value= true; 55*b1cdbd2cSJim Jagielski 56*b1cdbd2cSJim Jagielski//create the actual object 57*b1cdbd2cSJim Jagielskivar args= new Array(); 58*b1cdbd2cSJim Jagielskivar objDocument= objDesktop.loadComponentFromURL("private:factory/swriter", "_blank", 0, args); 59*b1cdbd2cSJim Jagielski 60*b1cdbd2cSJim Jagielski//Create a text object 61*b1cdbd2cSJim Jagielskivar objText= objDocument.getText(); 62*b1cdbd2cSJim Jagielski 63*b1cdbd2cSJim Jagielski//Create a cursor object 64*b1cdbd2cSJim Jagielskivar objCursor= objText.createTextCursor(); 65*b1cdbd2cSJim Jagielski 66*b1cdbd2cSJim Jagielski//Inserting some Text 67*b1cdbd2cSJim JagielskiobjText.insertString( objCursor, "The first line in the newly created text document.\n", false); 68*b1cdbd2cSJim Jagielski 69*b1cdbd2cSJim Jagielski//Inserting a second line 70*b1cdbd2cSJim JagielskiobjText.insertString( objCursor, "Now we're in the second line", false); 71*b1cdbd2cSJim Jagielski 72*b1cdbd2cSJim Jagielski//Create instance of a text table with 4 columns and 4 rows 73*b1cdbd2cSJim Jagielskivar objTable= objDocument.createInstance( "com.sun.star.text.TextTable"); 74*b1cdbd2cSJim JagielskiobjTable.initialize( 4, 4); 75*b1cdbd2cSJim Jagielski 76*b1cdbd2cSJim Jagielski//Insert the table 77*b1cdbd2cSJim JagielskiobjText.insertTextContent( objCursor, objTable, false); 78*b1cdbd2cSJim Jagielski 79*b1cdbd2cSJim Jagielski//Get first row 80*b1cdbd2cSJim Jagielskivar objRows= objTable.getRows(); 81*b1cdbd2cSJim Jagielskivar objRow= objRows.getByIndex( 0); 82*b1cdbd2cSJim Jagielski 83*b1cdbd2cSJim Jagielski//Set the table background color 84*b1cdbd2cSJim JagielskiobjTable.setPropertyValue( "BackTransparent", false); 85*b1cdbd2cSJim JagielskiobjTable.setPropertyValue( "BackColor", 13421823); 86*b1cdbd2cSJim Jagielski 87*b1cdbd2cSJim Jagielski//Set a different background color for the first row 88*b1cdbd2cSJim JagielskiobjRow.setPropertyValue( "BackTransparent", false); 89*b1cdbd2cSJim JagielskiobjRow.setPropertyValue( "BackColor", 6710932); 90*b1cdbd2cSJim Jagielski 91*b1cdbd2cSJim Jagielski//Fill the first table row 92*b1cdbd2cSJim JagielskiinsertIntoCell( "A1","FirstColumn", objTable); 93*b1cdbd2cSJim JagielskiinsertIntoCell( "B1","SecondColumn", objTable); 94*b1cdbd2cSJim JagielskiinsertIntoCell( "C1","ThirdColumn", objTable); 95*b1cdbd2cSJim JagielskiinsertIntoCell( "D1","SUM", objTable); 96*b1cdbd2cSJim Jagielski 97*b1cdbd2cSJim Jagielski 98*b1cdbd2cSJim JagielskiobjTable.getCellByName("A2").setValue( 22.5); 99*b1cdbd2cSJim JagielskiobjTable.getCellByName("B2").setValue( 5615.3); 100*b1cdbd2cSJim JagielskiobjTable.getCellByName("C2").setValue( -2315.7); 101*b1cdbd2cSJim JagielskiobjTable.getCellByName("D2").setFormula("sum <A2:C2>"); 102*b1cdbd2cSJim Jagielski 103*b1cdbd2cSJim JagielskiobjTable.getCellByName("A3").setValue( 21.5); 104*b1cdbd2cSJim JagielskiobjTable.getCellByName("B3").setValue( 615.3); 105*b1cdbd2cSJim JagielskiobjTable.getCellByName("C3").setValue( -315.7); 106*b1cdbd2cSJim JagielskiobjTable.getCellByName("D3").setFormula( "sum <A3:C3>"); 107*b1cdbd2cSJim Jagielski 108*b1cdbd2cSJim JagielskiobjTable.getCellByName("A4").setValue( 121.5); 109*b1cdbd2cSJim JagielskiobjTable.getCellByName("B4").setValue( -615.3); 110*b1cdbd2cSJim JagielskiobjTable.getCellByName("C4").setValue( 415.7); 111*b1cdbd2cSJim JagielskiobjTable.getCellByName("D4").setFormula( "sum <A4:C4>"); 112*b1cdbd2cSJim Jagielski 113*b1cdbd2cSJim Jagielski//Change the CharColor and add a Shadow 114*b1cdbd2cSJim JagielskiobjCursor.setPropertyValue( "CharColor", 255); 115*b1cdbd2cSJim JagielskiobjCursor.setPropertyValue( "CharShadowed", true); 116*b1cdbd2cSJim Jagielski 117*b1cdbd2cSJim Jagielski//Create a paragraph break 118*b1cdbd2cSJim Jagielski//The second argument is a com::sun::star::text::ControlCharacter::PARAGRAPH_BREAK constant 119*b1cdbd2cSJim JagielskiobjText.insertControlCharacter( objCursor, 0 , false); 120*b1cdbd2cSJim Jagielski 121*b1cdbd2cSJim Jagielski//Inserting colored Text. 122*b1cdbd2cSJim JagielskiobjText.insertString( objCursor, " This is a colored Text - blue with shadow\n", false); 123*b1cdbd2cSJim Jagielski 124*b1cdbd2cSJim Jagielski//Create a paragraph break ( ControlCharacter::PARAGRAPH_BREAK). 125*b1cdbd2cSJim JagielskiobjText.insertControlCharacter( objCursor, 0, false ); 126*b1cdbd2cSJim Jagielski 127*b1cdbd2cSJim Jagielski//Create a TextFrame. 128*b1cdbd2cSJim Jagielskivar objTextFrame= objDocument.createInstance("com.sun.star.text.TextFrame"); 129*b1cdbd2cSJim Jagielski 130*b1cdbd2cSJim Jagielski//Create a Size struct. 131*b1cdbd2cSJim Jagielskivar objSize= createStruct("com.sun.star.awt.Size"); 132*b1cdbd2cSJim JagielskiobjSize.Width= 15000; 133*b1cdbd2cSJim JagielskiobjSize.Height= 400; 134*b1cdbd2cSJim JagielskiobjTextFrame.setSize( objSize); 135*b1cdbd2cSJim Jagielski 136*b1cdbd2cSJim Jagielski//TextContentAnchorType.AS_CHARACTER = 1 137*b1cdbd2cSJim JagielskiobjTextFrame.setPropertyValue( "AnchorType", 1); 138*b1cdbd2cSJim Jagielski 139*b1cdbd2cSJim Jagielski//insert the frame 140*b1cdbd2cSJim JagielskiobjText.insertTextContent( objCursor, objTextFrame, false); 141*b1cdbd2cSJim Jagielski 142*b1cdbd2cSJim Jagielski//Get the text object of the frame 143*b1cdbd2cSJim Jagielskivar objFrameText= objTextFrame.getText(); 144*b1cdbd2cSJim Jagielski 145*b1cdbd2cSJim Jagielski//Create a cursor object 146*b1cdbd2cSJim Jagielskivar objFrameTextCursor= objFrameText.createTextCursor(); 147*b1cdbd2cSJim Jagielski 148*b1cdbd2cSJim Jagielski//Inserting some Text 149*b1cdbd2cSJim JagielskiobjFrameText.insertString( objFrameTextCursor, "The first line in the newly created text frame.", 150*b1cdbd2cSJim Jagielski false); 151*b1cdbd2cSJim JagielskiobjFrameText.insertString(objFrameTextCursor, 152*b1cdbd2cSJim Jagielski "With this second line the height of the frame raises.", false ); 153*b1cdbd2cSJim Jagielski 154*b1cdbd2cSJim Jagielski//Create a paragraph break 155*b1cdbd2cSJim Jagielski//The second argument is a com::sun::star::text::ControlCharacter::PARAGRAPH_BREAK constant 156*b1cdbd2cSJim JagielskiobjFrameText.insertControlCharacter( objCursor, 0 , false); 157*b1cdbd2cSJim Jagielski 158*b1cdbd2cSJim Jagielski//Change the CharColor and add a Shadow 159*b1cdbd2cSJim JagielskiobjCursor.setPropertyValue( "CharColor", 65536); 160*b1cdbd2cSJim JagielskiobjCursor.setPropertyValue( "CharShadowed", false); 161*b1cdbd2cSJim Jagielski 162*b1cdbd2cSJim Jagielski//Insert another string 163*b1cdbd2cSJim JagielskiobjText.insertString( objCursor, " That's all for now !!", false ); 164*b1cdbd2cSJim Jagielski 165*b1cdbd2cSJim Jagielskifunction insertIntoCell( strCellName, strText, objTable) 166*b1cdbd2cSJim Jagielski{ 167*b1cdbd2cSJim Jagielski var objCellText= objTable.getCellByName( strCellName); 168*b1cdbd2cSJim Jagielski var objCellCursor= objCellText.createTextCursor(); 169*b1cdbd2cSJim Jagielski objCellCursor.setPropertyValue( "CharColor",16777215); 170*b1cdbd2cSJim Jagielski objCellText.insertString( objCellCursor, strText, false); 171*b1cdbd2cSJim Jagielski} 172*b1cdbd2cSJim Jagielskifunction createStruct( strTypeName) 173*b1cdbd2cSJim Jagielski{ 174*b1cdbd2cSJim Jagielski var classSize= objCoreReflection.forName( strTypeName); 175*b1cdbd2cSJim Jagielski var aStruct= new Array(); 176*b1cdbd2cSJim Jagielski classSize.createObject( aStruct); 177*b1cdbd2cSJim Jagielski return aStruct[0]; 178*b1cdbd2cSJim Jagielski} 179*b1cdbd2cSJim Jagielski 180*b1cdbd2cSJim Jagielski 181*b1cdbd2cSJim Jagielski} 182*b1cdbd2cSJim Jagielski 183*b1cdbd2cSJim Jagielski]]> 184*b1cdbd2cSJim Jagielski</script> 185*b1cdbd2cSJim Jagielski 186*b1cdbd2cSJim Jagielski</component> 187