Jump to content

Connecting to Libre Office Portable


donnyh13
 Share

Recommended Posts

Hi all,

I am wondering if anyone can point me in the right direction, or give me some information on how to connect to Portable LibreOffice? For example, how would I make the below Script from mLipok work for Portable L.O.? From the best I can find online, I am looking for Registration Free COM Objects, which seems to require a manifest file. The only Manifest file I can find in the Portable L.O. folder is, “Microsoft.VC90.CRT.manifest” containing,

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<!-- Copyright (c) Microsoft Corporation.  All rights reserved. -->

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">

    <noInheritable/>

    <assemblyIdentity

        type="win32"

        name="Microsoft.VC90.CRT"

        version="9.0.21022.8"

        processorArchitecture="x86"

        publicKeyToken="1fc8b3b9a1e18e3b"

    />

    <file name="msvcr90.dll" /> <file name="msvcp90.dll" /> <file name="msvcm90.dll" />

</assembly>

But I fail to see how a Microsoft Manifest will help me with LibreOffice??

There are other files named Manifest, “manifest.xml”, but these seem to be related to plugins. And then there is “Manifest.dtd”, which I can’t seem to open?

Any help would be appreciated.

#mLipok Script found at

#include <AutoItConstants.au3>

#include <MsgBoxConstants.au3>

 

;***********************************************************************

;*

;*  The Contents of this file are made available subject to the terms of

;*  the BSD license.

;*

;*  Copyright 2000, 2010 Oracle and/or its affiliates.

;*  All rights reserved.

;*

;*  Redistribution and use in source and binary forms, with or without

;*  modification, are permitted provided that the following conditions

;*  are met:

;*  1. Redistributions of source code must retain the above copyright

;*     notice, this list of conditions and the following disclaimer.

;*  2. Redistributions in binary form must reproduce the above copyright

;*     notice, this list of conditions and the following disclaimer in the

;*     documentation and/or other materials provided with the distribution.

;*  3. Neither the name of Sun Microsystems, Inc. nor the names of its

;*     contributors may be used to endorse or promote products derived

;*     from this software without specific prior written permission.

;*

;*  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS

;*  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT

;*  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS

;*  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE

;*  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,

;*  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,

;*  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS

;*  OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND

;*  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR

;*  TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE

;*  USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

;*

;*************************************************************************

 

;The service manager is always the starting point

;If there is no office running then an office is started up

Global $oServiceManager = ObjCreate("com.sun.star.ServiceManager")

If @error Then MsgBox($MB_OK + $MB_TOPMOST + $MB_ICONERROR, '$oServiceManager', '@error = ' & @error & @CRLF & '@extended = ' & @extended)

 

;Create the CoreReflection service that is later used to create structs

Global $oCoreReflection = $oServiceManager.createInstance("com.sun.star.reflection.CoreReflection")

 

;Create the Desktop

Global $oDesktop = $oServiceManager.createInstance("com.sun.star.frame.Desktop")

 

;Open a new empty writer document

Global $args[1]

Global $oDocument = $oDesktop.loadComponentFromURL("private:factory/swriter", "_blank", 0, $args)

 

;Create a text object

Global $oText = $oDocument.getText

If @error Then ConsoleWrite('! ---> @error=' & @error & '  @extended=' & @extended & ' : ' & @CRLF)

 

;Create a cursor object

Global $oCursor = $oText.createTextCursor

 

;Inserting some Text

$oText.insertString($oCursor, "The first line in the newly created text document." & @LF, False)

 

;Inserting a second line

$oText.insertString($oCursor, "Now we're in the second line", False)

 

;Create instance of a text table with 4 columns and 4 rows

Global $oTable = $oDocument.createInstance("com.sun.star.text.TextTable")

$oTable.initialize(4, 4)

 

;Insert the table

$oText.insertTextContent($oCursor, $oTable, False)

 

;Get first row

Global $oRows = $oTable.getRows

Global $oRow = $oRows.getByIndex(0)

 

;Set the table background color

$oTable.setPropertyValue("BackTransparent", False)

$oTable.setPropertyValue("BackColor", 13421823)

 

;Set a different background color for the first row

$oRow.setPropertyValue("BackTransparent", False)

$oRow.setPropertyValue("BackColor", 6710932)

 

;Fill the first table row

insertIntoCell("A1", "FirstColumn", $oTable)

insertIntoCell("B1", "SecondColumn", $oTable)

insertIntoCell("C1", "ThirdColumn", $oTable)

insertIntoCell("D1", "SUM", $oTable)

 

$oTable.getCellByName("A2").setValue(22.5)

$oTable.getCellByName("B2").setValue(5615.3)

$oTable.getCellByName("C2").setValue(-2315.7)

$oTable.getCellByName("D2").setFormula("sum <A2:C2>")

 

$oTable.getCellByName("A3").setValue(21.5)

$oTable.getCellByName("B3").setValue(615.3)

$oTable.getCellByName("C3").setValue(-315.7)

$oTable.getCellByName("D3").setFormula("sum <A3:C3>")

 

$oTable.getCellByName("A4").setValue(121.5)

$oTable.getCellByName("B4").setValue(-615.3)

$oTable.getCellByName("C4").setValue(415.7)

$oTable.getCellByName("D4").setFormula("sum <A4:C4>")

 

;Change the CharColor and add a Shadow

$oCursor.setPropertyValue("CharColor", 255)

$oCursor.setPropertyValue("CharShadowed", True)

 

;Create a paragraph break

;The second argument is a com::sun::star::text::ControlCharacter::PARAGRAPH_BREAK constant

$oText.insertControlCharacter($oCursor, 0, False)

 

;Inserting colored Text.

$oText.insertString($oCursor, " This is a colored Text - blue with shadow" & @LF, False)

 

;Create a paragraph break ( ControlCharacter::PARAGRAPH_BREAK).

$oText.insertControlCharacter($oCursor, 0, False)

 

;Create a TextFrame.

Global $oTextFrame = $oDocument.createInstance("com.sun.star.text.TextFrame")

 

;Create a Size struct.

Global $oSize = createStruct("com.sun.star.awt.Size")

$oSize.Width = 15000

$oSize.Height = 400

$oTextFrame.setSize($oSize)

 

; TextContentAnchorType.AS_CHARACTER = 1

$oTextFrame.setPropertyValue("AnchorType", 1)

 

;insert the frame

$oText.insertTextContent($oCursor, $oTextFrame, False)

 

;Get the text object of the frame

Global $oFrameText = $oTextFrame.getText

 

 

;Create a cursor object

Global $oFrameTextCursor = $oFrameText.createTextCursor

 

;Inserting some Text

$oFrameText.insertString($oFrameTextCursor, "The first line in the newly created text frame.", _

False)

$oFrameText.insertString($oFrameTextCursor, _

@LF & "With this second line the height of the frame raises.", False)

 

;Create a paragraph break

;The second argument is a com::sun::star::text::ControlCharacter::PARAGRAPH_BREAK constant

$oFrameText.insertControlCharacter($oCursor, 0, False)

 

;Change the CharColor and add a Shadow

$oCursor.setPropertyValue("CharColor", 65536)

$oCursor.setPropertyValue("CharShadowed", False)

 

;Insert another string

$oText.insertString($oCursor, " That's all for now !!", False)

If @error Then

MsgBox(0, "", "An error occurred")

EndIf

 

Func insertIntoCell($sCellName, $sText, $oTable)

Local $oCellText = $oTable.getCellByName($sCellName)

Local $oCellCursor = $oCellText.createTextCursor

$oCellCursor.setPropertyValue("CharColor", 16777215)

$oCellText.insertString($oCellCursor, $sText, False)

EndFunc   ;==>insertIntoCell

 

Func createStruct($sTypeName)

Local $oServiceManager = ObjCreate("com.sun.star.ServiceManager")

Local $oReturn = $oServiceManager.Bridge_GetStruct($sTypeName)

Return $oReturn

 

#cs THIS FOLLOWING COMMENTED CODE SNIPPET, WAS TAKEN FROM ORIGINAL WriterDemo.vbs

Local $classSize = $oCoreReflection.forName($sTypeName)

 

Local $aStruct[0]

$classSize.createObject($aStruct)

 

Return $aStruct

#ce THIS FOLLOWING COMMENTED CODE SNIPPET, WAS TAKEN FROM ORIGINAL WriterDemo.vbs

EndFunc   ;==>createStruct

 

LibreOffice UDF  ; Scite4AutoIt Spell-Checker Using LibreOffice

Spoiler

"Life is chiefly made up, not of great sacrifices and wonderful achievements, but of little things. It is oftenest through the little things which seem so unworthy of notice that great good or evil is brought into our lives. It is through our failure to endure the tests that come to us in little things, that the habits are molded, the character misshaped; and when the greater tests come, they find us unready. Only by acting upon principle in the tests of daily life can we acquire power to stand firm and faithful in the most dangerous and most difficult positions."

 

Link to comment
Share on other sites

Bump

LibreOffice UDF  ; Scite4AutoIt Spell-Checker Using LibreOffice

Spoiler

"Life is chiefly made up, not of great sacrifices and wonderful achievements, but of little things. It is oftenest through the little things which seem so unworthy of notice that great good or evil is brought into our lives. It is through our failure to endure the tests that come to us in little things, that the habits are molded, the character misshaped; and when the greater tests come, they find us unready. Only by acting upon principle in the tests of daily life can we acquire power to stand firm and faithful in the most dangerous and most difficult positions."

 

Link to comment
Share on other sites

  • 2 weeks later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...