| '************************************************************************* |
| ' |
| ' Licensed to the Apache Software Foundation (ASF) under one |
| ' or more contributor license agreements. See the NOTICE file |
| ' distributed with this work for additional information |
| ' regarding copyright ownership. The ASF licenses this file |
| ' to you under the Apache License, Version 2.0 (the |
| ' "License"); you may not use this file except in compliance |
| ' with the License. You may obtain a copy of the License at |
| ' |
| ' http://www.apache.org/licenses/LICENSE-2.0 |
| ' |
| ' Unless required by applicable law or agreed to in writing, |
| ' software distributed under the License is distributed on an |
| ' "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| ' KIND, either express or implied. See the License for the |
| ' specific language governing permissions and limitations |
| ' under the License. |
| ' |
| '************************************************************************* |
| |
| Option Explicit On |
| Option Strict On |
| |
| imports System |
| imports System.Collections |
| imports Microsoft.VisualBasic |
| imports unoidl.com.sun.star.lang |
| imports unoidl.com.sun.star.uno |
| imports unoidl.com.sun.star.bridge |
| imports uno.util |
| |
| Module WriterDemo |
| |
| Sub Main( ByVal args() As String) |
| ' If args.Length <> 2 Then |
| ' Console.WriteLine("WriterDemo takes two arguments. A file url to the office" & _ |
| ' "program directory and a connection string.") |
| ' End If |
| 'Connect to a running office |
| '-------------------------------------------------- |
| |
| 'Create a service manager of the remote office |
| 'Dim ht As Hashtable = New Hashtable() |
| 'ht.Add("SYSBINDIR", args(0)) |
| Dim xContext As XComponentContext |
| 'xLocalContext = Bootstrap.defaultBootstrap_InitialComponentContext( _ |
| ' args(0) & "/uno.ini", ht.GetEnumerator()) |
| |
| xContext = Bootstrap.bootstrap() |
| |
| 'Dim xURLResolver As XUnoUrlResolver |
| 'xURLResolver = DirectCast(xLocalContext.getServiceManager(). _ |
| ' createInstanceWithContext("com.sun.star.bridge.UnoUrlResolver", _ |
| ' xLocalContext), XUnoUrlResolver) |
| |
| 'Dim xRemoteContext As XComponentContext |
| 'xRemoteContext = DirectCast(xURLResolver.resolve( _ |
| ' "uno:socket,host=localhost,port=8100;urp;StarOffice.ComponentContext"), _ |
| ' XComponentContext) |
| |
| Dim xFactory As XMultiServiceFactory |
| xFactory = DirectCast(xContext.getServiceManager(), _ |
| XMultiServiceFactory) |
| |
| 'Create the Desktop |
| Dim xDesktop As unoidl.com.sun.star.frame.XDesktop |
| xDesktop = DirectCast(xFactory.createInstance("com.sun.star.frame.Desktop"), _ |
| unoidl.com.sun.star.frame.XDesktop) |
| |
| 'Open a new empty writer document |
| Dim xComponentLoader As unoidl.com.sun.star.frame.XComponentLoader |
| xComponentLoader = DirectCast(xDesktop, unoidl.com.sun.star.frame.XComponentLoader) |
| Dim arProps() As unoidl.com.sun.star.beans.PropertyValue = _ |
| New unoidl.com.sun.star.beans.PropertyValue(){} |
| Dim xComponent As unoidl.com.sun.star.lang.XComponent |
| xComponent = xComponentLoader.loadComponentFromURL( _ |
| "private:factory/swriter", "_blank", 0, arProps) |
| Dim xTextDocument As unoidl.com.sun.star.text.XTextDocument |
| xTextDocument = DirectCast(xComponent, unoidl.com.sun.star.text.XTextDocument) |
| |
| 'Create a text object |
| Dim xText As unoidl.com.sun.star.text.XText |
| xText = xTextDocument.getText() |
| |
| Dim xSimpleText As unoidl.com.sun.star.text.XSimpleText |
| xSimpleText = DirectCast(xText, unoidl.com.sun.star.text.XSimpleText) |
| |
| 'Create a cursor object |
| Dim xCursor As unoidl.com.sun.star.text.XTextCursor |
| xCursor = xSimpleText.createTextCursor() |
| |
| 'Inserting some Text |
| xText.insertString(xCursor, "The first line in the newly created text document." _ |
| & vbLf, false) |
| |
| 'Create instance of a text table with 4 columns and 4 rows |
| Dim objTextTable As Object |
| objTextTable= DirectCast(xTextDocument, unoidl.com.sun.star.lang.XMultiServiceFactory). _ |
| createInstance("com.sun.star.text.TextTable") |
| Dim xTextTable As unoidl.com.sun.star.text.XTextTable |
| xTextTable = DirectCast(objTextTable, unoidl.com.sun.star.text.XTextTable) |
| xTextTable.initialize(4, 4) |
| xText.insertTextContent(xCursor, xTextTable, false) |
| |
| 'Set the table background color |
| Dim xPropertySetTable As unoidl.com.sun.star.beans.XPropertySet |
| xPropertySetTable = DirectCast(objTextTable, unoidl.com.sun.star.beans.XPropertySet) |
| xPropertySetTable.setPropertyValue("BackTransparent", New uno.Any(False)) |
| xPropertySetTable.setPropertyValue("BackColor", New uno.Any(&Hccccff)) |
| |
| 'Get first row |
| Dim xTableRows As unoidl.com.sun.star.table.XTableRows |
| xTableRows = xTextTable.getRows() |
| Dim anyRow As uno.Any |
| anyRow = DirectCast(xTableRows, unoidl.com.sun.star.container.XIndexAccess).getByIndex( 0) |
| |
| 'Set a different background color for the first row |
| Dim xPropertySetFirstRow As unoidl.com.sun.star.beans.XPropertySet |
| xPropertySetFirstRow = DirectCast(anyRow.Value, unoidl.com.sun.star.beans.XPropertySet) |
| xPropertySetFirstRow.setPropertyValue("BackTransparent", New uno.Any(False)) |
| xPropertySetFirstRow.setPropertyValue("BackColor", New uno.Any(&H6666AA)) |
| |
| 'Fill the first table row |
| insertIntoCell("A1","FirstColumn", xTextTable) |
| insertIntoCell("B1","SecondColumn", xTextTable) |
| insertIntoCell("C1","ThirdColumn", xTextTable) |
| insertIntoCell("D1","SUM", xTextTable) |
| |
| 'Fill the remaining rows |
| xTextTable.getCellByName("A2").setValue(22.5) |
| xTextTable.getCellByName("B2").setValue(5615.3) |
| xTextTable.getCellByName("C2").setValue(-2315.7) |
| xTextTable.getCellByName("D2").setFormula("sum <A2:C2>") |
| |
| xTextTable.getCellByName("A3").setValue(21.5) |
| xTextTable.getCellByName("B3").setValue (615.3) |
| xTextTable.getCellByName("C3").setValue( -315.7) |
| xTextTable.getCellByName("D3").setFormula( "sum <A3:C3>") |
| |
| xTextTable.getCellByName("A4").setValue( 121.5) |
| xTextTable.getCellByName("B4").setValue( -615.3) |
| xTextTable.getCellByName("C4").setValue( 415.7) |
| xTextTable.getCellByName("D4").setFormula( "sum <A4:C4>") |
| |
| 'Change the CharColor and add a Shadow |
| Dim xPropertySetCursor As unoidl.com.sun.star.beans.XPropertySet |
| xPropertySetCursor = DirectCast(xCursor, unoidl.com.sun.star.beans.XPropertySet) |
| xPropertySetCursor.setPropertyValue("CharColor", New uno.Any(255)) |
| xPropertySetCursor.setPropertyValue("CharShadowed", New uno.Any(true)) |
| |
| 'Create a paragraph break |
| xSimpleText.insertControlCharacter(xCursor, _ |
| unoidl.com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK, False) |
| |
| 'Inserting colored Text. |
| xSimpleText.insertString(xCursor," This is a colored Text - blue with shadow" & vbLf, _ |
| False) |
| |
| 'Create a paragraph break |
| xSimpleText.insertControlCharacter(xCursor, _ |
| unoidl.com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK, False) |
| |
| 'Create a TextFrame. |
| Dim objTextFrame As Object |
| objTextFrame = DirectCast(xTextDocument, unoidl.com.sun.star.lang.XMultiServiceFactory). _ |
| createInstance("com.sun.star.text.TextFrame") |
| |
| Dim xTextFrame As unoidl.com.sun.star.text.XTextFrame = _ |
| DirectCast(objTextFrame, unoidl.com.sun.star.text.XTextFrame) |
| |
| 'Set the size of the frame |
| Dim aSize As unoidl.com.sun.star.awt.Size = _ |
| New unoidl.com.sun.star.awt.Size(15000, 400) |
| DirectCast(xTextFrame, unoidl.com.sun.star.drawing.XShape).setSize(aSize) |
| |
| 'Set anchortype |
| Dim xPropertySetFrame As unoidl.com.sun.star.beans.XPropertySet |
| xPropertySetFrame = DirectCast(xTextFrame, unoidl.com.sun.star.beans.XPropertySet) |
| xPropertySetFrame.setPropertyValue("AnchorType", New uno.Any( _ |
| GetType(unoidl.com.sun.star.text.TextContentAnchorType), _ |
| unoidl.com.sun.star.text.TextContentAnchorType.AS_CHARACTER)) |
| |
| 'insert the frame |
| xText.insertTextContent(xCursor, xTextFrame, False) |
| |
| 'Get the text object of the frame |
| |
| Dim xFrameText As unoidl.com.sun.star.text.XText |
| xFrameText = xTextFrame.getText() |
| |
| Dim xFrameSimpleText As unoidl.com.sun.star.text.XSimpleText |
| xFrameSimpleText = DirectCast(xFrameText, unoidl.com.sun.star.text.XSimpleText) |
| |
| 'Create a cursor object |
| Dim xFrameCursor As unoidl.com.sun.star.text.XTextCursor |
| xFrameCursor = xFrameSimpleText.createTextCursor() |
| |
| 'Inserting some Text |
| xFrameSimpleText.insertString(xFrameCursor, _ |
| "The first line in the newly created text frame.", False) |
| xFrameSimpleText.insertString(xFrameCursor, _ |
| vbLf & "With this second line the height of the frame raises.", False) |
| |
| 'Create a paragraph break |
| xSimpleText.insertControlCharacter(xFrameCursor, _ |
| unoidl.com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK, False) |
| |
| 'Change the CharColor and add a Shadow |
| xPropertySetCursor.setPropertyValue("CharColor", New uno.Any(65536)) |
| xPropertySetCursor.setPropertyValue("CharShadowed", New uno.Any(False)) |
| |
| 'Insert another string |
| xText.insertString(xCursor, vbLf + " That's all for now !!", False) |
| |
| End Sub |
| |
| Sub insertIntoCell(sCellName As String,sText As String, _ |
| xTable As unoidl.com.sun.star.text.XTextTable) |
| Dim xCell As unoidl.com.sun.star.table.XCell |
| xCell = xTable.getCellByName(sCellName) |
| |
| Dim xSimpleTextCell As unoidl.com.sun.star.text.XSimpleText |
| xSimpleTextCell = DirectCast(xCell, unoidl.com.sun.star.text.XSimpleText) |
| |
| Dim xCursor As unoidl.com.sun.star.text.XTextCursor |
| xCursor = xSimpleTextCell.createTextCursor() |
| |
| Dim xPropertySetCursor As unoidl.com.sun.star.beans.XPropertySet |
| xPropertySetCursor = DirectCast(xCursor, unoidl.com.sun.star.beans.XPropertySet) |
| |
| xPropertySetCursor.setPropertyValue("CharColor", New uno.Any(&Hffffff)) |
| xSimpleTextCell.insertString(xCursor, sText, False) |
| End Sub |
| |
| End Module |