summaryrefslogtreecommitdiffstats
path: root/odk/examples/CLI/VB.NET/WriterDemo
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-27 16:51:28 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-27 16:51:28 +0000
commit940b4d1848e8c70ab7642901a68594e8016caffc (patch)
treeeb72f344ee6c3d9b80a7ecc079ea79e9fba8676d /odk/examples/CLI/VB.NET/WriterDemo
parentInitial commit. (diff)
downloadlibreoffice-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/Makefile85
-rw-r--r--odk/examples/CLI/VB.NET/WriterDemo/WriterDemo.vb233
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