donnyh13 Posted November 20, 2023 Share Posted November 20, 2023 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 expandcollapse popup#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 More sharing options...
donnyh13 Posted November 23, 2023 Author Share Posted November 23, 2023 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 More sharing options...
jugador Posted December 5, 2023 Share Posted December 5, 2023 for Registration Free COM Objects you can try this to create manifest use mt.exe https://learn.microsoft.com/en-us/windows/win32/sbscs/mt-exe not tested so if any query ask @ptrex donnyh13 1 Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now