Ask Your Question

create styles in writer using [closed]

asked 2012-07-16 18:33:37 +0200

raspberry gravatar image

updated 2013-02-20 05:55:04 +0200

qubit gravatar image

I would like to be able to use VB.Net to create and apply character styles in writer. Can anyone supply a code snippet or point me to a location that has code I can look at. Thanks...

edit retag flag offensive reopen merge delete

Closed for the following reason the question is answered, right answer was accepted by Alex Kemp
close date 2015-10-17 01:20:18.282128


Do you mean "using LibreOffice Basic to create and apply charactes styles"?

Olivier gravatar imageOlivier ( 2012-07-16 20:08:16 +0200 )edit

No. I would like to use Microsoft's Visual Basic.Net to automate Writer.

raspberry gravatar imageraspberry ( 2012-07-16 23:03:06 +0200 )edit

1 Answer

Sort by » oldest newest most voted

answered 2012-07-16 23:22:00 +0200

raspberry gravatar image

Here is additional information (I hope it is not too much...):

The following code is from

This code is VB.Net It shows how to open a Writer doc from VB.Net, add text, add a table and do other items. It does not show how to create and apply styles. Below is the portion that opens and connects to a new Writer doc.

    Dim xContext As XComponentContext
    xContext = Bootstrap.bootstrap()

    Dim xFactory As XMultiServiceFactory
    xFactory = DirectCast(xContext.getServiceManager(), XMultiServiceFactory)

    'Create the Desktop
    Dim xDesktop As
    xDesktop = DirectCast(xFactory.createInstance(""),  _

    'Open a new empty writer document
    Dim xComponentLoader As
    xComponentLoader = DirectCast(xDesktop,

    Dim arProps() As = New {}
    Dim xComponent As
    xComponent = xComponentLoader.loadComponentFromURL("private:factory/swriter", "_blank", 0, arProps)

    Dim xTextDocument As
    xTextDocument = DirectCast(xComponent,

    'Create a text object
    Dim xText As
    xText = xTextDocument.getText()

    Dim xSimpleText As
    xSimpleText = DirectCast(xText,

    'Create a cursor object
    Dim xCursor As
    xCursor = xSimpleText.createTextCursor()

I also have a code snippet in Java that creates styles in Writer, but I do not know Java and I have not been able to translate from Java to VB.Net. This is from

   // Create a new style from the document's factory
        XStyle xStyle = (XStyle) UnoRuntime.queryInterface(
            XStyle.class, mxDocFactory.createInstance(
                "" ) );

        // Access the XPropertySet interface of the new style
        XPropertySet xStyleProps = (XPropertySet) UnoRuntime.queryInterface(
            XPropertySet.class, xStyle );

        // Give the new style a light blue background
        xStyleProps.setPropertyValue ( "ParaBackColor", new Integer (13421823));

        // Get the StyleFamiliesSupplier interface of the document
        XStyleFamiliesSupplier xSupplier = (XStyleFamiliesSupplier)
            UnoRuntime.queryInterface(XStyleFamiliesSupplier.class, mxDoc);

        // Use the StyleFamiliesSupplier interface to get the XNameAccess
        // interface of the actual style families
        XNameAccess xFamilies = ( XNameAccess ) UnoRuntime.queryInterface (
            XNameAccess.class, xSupplier.getStyleFamilies() );

        // Access the 'ParagraphStyles' Family
        XNameContainer xFamily = (XNameContainer ) UnoRuntime.queryInterface (
                    xFamilies.getByName ( "ParagraphStyles" ) );

        // Insert the newly created style into the ParagraphStyles family ...
edit flag offensive delete link more


@raspberry -- Still looking for an answer to your question?

qubit gravatar imagequbit ( 2013-03-13 10:16:45 +0200 )edit

Question Tools


Asked: 2012-07-16 18:33:37 +0200

Seen: 1,084 times

Last updated: Jul 16 '12