diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-27 16:51:28 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-27 16:51:28 +0000 |
commit | 940b4d1848e8c70ab7642901a68594e8016caffc (patch) | |
tree | eb72f344ee6c3d9b80a7ecc079ea79e9fba8676d /odk/examples/CLI/VB.NET/WriterDemo | |
parent | Initial commit. (diff) | |
download | libreoffice-upstream.tar.xz libreoffice-upstream.zip |
Adding upstream version 1:7.0.4.upstream/1%7.0.4upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'odk/examples/CLI/VB.NET/WriterDemo')
-rw-r--r-- | odk/examples/CLI/VB.NET/WriterDemo/Makefile | 85 | ||||
-rw-r--r-- | odk/examples/CLI/VB.NET/WriterDemo/WriterDemo.vb | 233 |
2 files changed, 318 insertions, 0 deletions
diff --git a/odk/examples/CLI/VB.NET/WriterDemo/Makefile b/odk/examples/CLI/VB.NET/WriterDemo/Makefile new file mode 100644 index 000000000..b7425b348 --- /dev/null +++ b/odk/examples/CLI/VB.NET/WriterDemo/Makefile @@ -0,0 +1,85 @@ +# +# This file is part of the LibreOffice project. +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# This file incorporates work covered by the following license notice: +# +# 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 . +# + +# Builds the WriterDemo examples of the Developers Guide. + +PRJ = ../../../.. +SETTINGS = $(PRJ)/settings + +include $(SETTINGS)/settings.mk +include $(SETTINGS)/std.mk + +CSC_FLAGS = -warnaserror+ -incremental- -noconfig +VBC_FLAGS = -warnaserror+ +ifeq "$(DEBUG)" "yes" +CC_FLAGS+=-Zi -MT +CSC_FLAGS += -debug+ -checked+ -define:DEBUG -define:TRACE +VBC_FLAGS += -debug+ -define:DEBUG=1 -define:TRACE=1 +else +CSC_FLAGS += -o +endif + +WRITERDEMO_OUT:= $(OUT_BIN)/VB_dotNET_WriterDemo + +# Targets +.PHONY : ALL +ALL : WriterDemo + +include $(SETTINGS)/stdtarget.mk + +# build executables +$(WRITERDEMO_OUT)/%.exe: %.vb + -$(MKDIR) $(subst /,$(PS),$(@D)) + vbc $(VBC_FLAGS) \ + -target:exe \ + -out:$@ \ + -libpath:"$(PRJ)\cli" \ + -reference:cli_basetypes.dll \ + -reference:cli_uretypes.dll \ + -reference:cli_oootypes.dll \ + -reference:cli_ure.dll \ + -reference:cli_cppuhelper.dll \ + -reference:System.dll \ + -reference:System.Drawing.dll \ + -reference:System.Windows.Forms.dll \ + $^ + +ifeq "$(OS)" "WIN" +WriterDemo : $(WRITERDEMO_OUT)/WriterDemo.exe + @echo ------------------------------------------------------------------------------- + @echo Please use the following command to execute the example! + @echo - + @echo $(MAKE) WriterDemo.run + @echo ------------------------------------------------------------------------------- +else +WriterDemo : + @echo -------------------------------------------------------------------------------- + @echo This example works only under Windows! + @echo -------------------------------------------------------------------------------- +endif + +%.run : $(WRITERDEMO_OUT)/%.exe + @echo ------------------------------------------------------------------------------- + @echo Executing sample $@ $(UNORC) $(CONNECT_STRING)... + @echo ------------------------------------------------------------------------------- + cd $(subst /,\\,$(WRITERDEMO_OUT)) && $(basename $@).exe + +.PHONY: clean +clean : + -$(DELRECURSIVE) $(subst /,$(PS),$(OUT_BIN)/VB_dotNET_WriterDemo) + diff --git a/odk/examples/CLI/VB.NET/WriterDemo/WriterDemo.vb b/odk/examples/CLI/VB.NET/WriterDemo/WriterDemo.vb new file mode 100644 index 000000000..4306bfd20 --- /dev/null +++ b/odk/examples/CLI/VB.NET/WriterDemo/WriterDemo.vb @@ -0,0 +1,233 @@ +' +' This file is part of the LibreOffice project. +' +' This Source Code Form is subject to the terms of the Mozilla Public +' License, v. 2.0. If a copy of the MPL was not distributed with this +' file, You can obtain one at http://mozilla.org/MPL/2.0/. +' +' This file incorporates work covered by the following license notice: +' +' 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 . +' + +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 |