Hello,

On a fedora 19 machine (Build ID: 4.1.3.2-5.fc19), when I try to use the 
ooolatex equation
tool, I get an error message (it works fine with fedora 18)

Is OOolatex not anymore maintained?

Thank.

' 
'    OOoLatexTools
'
'    Copyright (C) 2005-2007 Geoffroy Piroux ([email protected])
'
'    This program is free software; you can redistribute it and/or modify
'    it under the terms of the GNU General Public License as published by
'    the Free Software Foundation; either version 2 of the License, or
'    (at your option) any later version.
'
'    This program is distributed in the hope that it will be useful,
'    but WITHOUT ANY WARRANTY; without even the implied warranty of
'    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
'    GNU General Public License for more details.
'
'    You should have received a copy of the GNU General Public License
'    along with this program; if not, write to the Free Software
'    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
'
'
'
' Import graphic from URL into the clipboard.
' Inspired from OOoForums Danny's code 
Sub ImportGraphicIntoClipboard(cURL)

 oDispatcher = createUnoService( "com.sun.star.frame.DispatchHelper" )

 ' Import the graphic from URL into a new draw document.
 Dim arg1(0) As New com.sun.star.beans.PropertyValue
 arg1(0).Name = "Hidden"
 arg1(0).Value = true
 oDrawDoc = StarDesktop.loadComponentFromURL( cURL, "_blank", 0, arg1() )
 oDrawDocCtrl = oDrawDoc.getCurrentController()
 
 ' Get the shape...
 oDrawPage = oDrawDoc.DrawPages(0)
    oImportShape = oDrawPage(0)
 
 ' Get the dimension of the image...
 oShapeSize = oImportShape.Size()
 
 ' Strange bug with the eps and emf format... correction of the size
 if sFormat = "eps" then oShapeSize.Width = oShapeSize.Width * 0.99
 if sFormat = "eps" then oShapeSize.Height = oShapeSize.Height * 0.91
 if sFormat = "emf" then oShapeSize.Width = oShapeSize.Width * 1.13
 if sFormat = "emf" then oShapeSize.Height = oShapeSize.Height * 1.1

 ' Copy the image to clipboard and close the draw document
 oDrawDocCtrl.select(oImportShape)
 Dim Array()
 oDispatcher.executeDispatch( oDrawDocCtrl.Frame, ".uno:Copy", "", 0, Array() )
 oDrawDoc.dispose()
End Sub
'###########################################################
Function ReadAttributes( oShape As Object ) As String
On Error Goto ErrorHandler
    oAttributes = oShape.UserDefinedAttributes()
    ReadAttributes = oAttributes.getByName("OOoLatexArgs").Value
    exit function
ErrorHandler:
 ReadAttributes = ""
End Function
'###########################################################
Sub SetAttributes( oShape, iEqSize, sEqType, sCode)
'On Error Goto ErrorHandler
' ' Remove the attribute is one existes...
' oAttributes = oShape.UserDefinedAttributes()
' oAttributes.removeByName("OOoLatexArgs")
' oShape.UserDefinedAttributes() = oAttributes
'ErrorHandler: 
 ' Add the Latex attribute to the image.
 oAttributes = oShape.UserDefinedAttributes
    oLatexAttribute = createUnoStruct( "com.sun.star.xml.AttributeData" )
   oLatexAttribute.Type = "CDATA"       
    oLatexAttribute.Value = iEqSize & "§" & sEqType & "§" & sCode
    oAttributes.insertByName("OOoLatexArgs", oLatexAttribute )
 oShape.UserDefinedAttributes = oAttributes
End sub

'###########################################################
' Get the bounding box information for inline equation
' The base line in not necessary at the bottom of the image.
Function bbox(BaseLine as Double) as Double
 Dim sbbox() as String
 Dim bby1,bby2 as Double
 iNumber = Freefile
 sLines = ""
 Open sTmpPath & "tmpfile.bbx" For Input As iNumber
 Line Input #iNumber, sLine
 If sLine <> "" then sbbox() = Split(sLine," ")
 Close #iNumber
 bby1 = CDbl(sbbox(1))
 bby2 = CDbl(sbbox(3))
 bbox = (bby2-BaseLine)/(bby2-bby1)
End Function

'###########################################################
' Get the cropping information from bbox 
Function getCropping()
 Dim sbbox() as String
 Dim bbx1,bbx2,hbbx1,hbbx2 as Double
 iNumber = Freefile
 Open sTmpPath & "tmpfile.bbx" For Input As iNumber
 Line Input #iNumber, sLine
 If sLine <> "" then sbbox() = Split(sLine," ") 
 Close #iNumber
 bbx1 = CDbl(sbbox(0))
 bbx2 = CDbl(sbbox(2))
 hbbx1 = CDbl2(sbbox(4)) - 0.5 'remove 1/2 point to the left
 hbbx2 = CDbl2(sbbox(6)) + 0.75 'add 3/4 point to the right

 oCrop = createUnoStruct( "com.sun.star.text.GraphicCrop" )
    oCrop.Left = (hbbx1-bbx1)/(bbx2-bbx1) * oShapeSize.Width
    oCrop.Right = (bbx2-hbbx2)/(bbx2-bbx1) * oShapeSize.Width
 getCropping = oCrop

End Function
'###########################################################
'to avoid problem with point or virgule : (x)xx.xx or (x)xx,xx
Function CDbl2( s as string) as double
 if Mid(s,3,1) = "." then i=3 
 if Mid(s,4,1) = "." then i=4
 CDbl2 = CDbl(Mid(s,1,i-1)+Mid(s,i+1,2))/100
end function

'###########################################################
' Display file on screen from temp directory 
Sub PrintFile(sFile as String)
 if not FileExists(sTmpPath & sFile) then
 Msgbox "Error : the file " & TmpPath & sFile & " doesn't exist..."
 exit sub
 end if
 iNumber = Freefile
 Open sTmpPath & sFile For Input As iNumber
 While not eof(iNumber)
   Line Input #iNumber, sLine
 sMsg = sMsg & sLine & chr(10)
 wend
 Close #iNumber
 Msgbox  sMsg
End sub

'###########################################################
' Convert decimal into two digits hexadecimal number as String
Function Hex2( Value as Integer) as String
 if Value = 0 then 
 Hex2="00" 
 Exit Function
 end if
 Hex2 = Hex( Value )
 if Len( Hex2 ) = 1 then Hex2 = "0"& Hex2
End Function

'###########################################################
' This macro is used when buttons Apply or Save are pushed from 
' Config or from preamble dialog... 
sub FinishApply()
 if SettingEmbed = 1 then 
 SettingDoc( "Save" )
 SystemLog = "New settings applied and embedded into document ... "
 else
 SystemLog = "New settings applied ... "
 end if
end sub
'###########################################################
' Add a slash if necessary
Function CheckPath( sPath as String) as String
 If Right(sPath,1) = "/" then 
 CheckPath = sPath
 else
 CheckPath = sPath & "/"
 end if
end Function

'###########################################################
' Check the existance of the file...
Function CheckFile( sUrl as String, ErrorMsg as String) As Boolean
 ' Test the existance of the OOoLatex script ...
 if FileExists(sUrl) then
 CheckFile = False
 else
 if ErrorMsg = "OOoLatex" then _
 ErrorMsg = "Cannot find " & sUrl & chr(10) & "Check your installation..." 
 Msgbox ErrorMsg
 CheckFile = True
 end if 
End Function
'###########################################################
' Return true if string "s" doesn't contains "c" 
Function StringNotContains( s as String, c as String ) as Boolean
 StringNotContains = true
 If (Len(s) <> 0) then
 For j = 1 to Len(s)
 if Mid(s,j,1) = c then 
 StringNotContains = false
 Exit For
 End if
 Next
 end if
End Function 

'###########################################################
' Function to manipulate information from "Doc Properties".
' There is two actions : 
' "Get" : return the preamble or the configuration as string
' "Delete" : return the "doc info" without preamble or configuration 
Function DocInfo( sAction as String, sWhat as String) as String
 DocInfo = ""
 oDocInfo = StarDesktop.CurrentComponent.getDocumentInfo()
 sDocDesc =  oDocInfo.Description
 
 if sWhat = "DocInfo" then 
 DocInfo = sDocDesc
 Exit Function
 end if 
 
 ' Exit If only one line exit !
 If StringNotContains(sDocDesc,chr(10)) then exit Function

    if sWhat = "Preamble" then sStart = "%%% OOoLatex Preamble %%%%%%%%%%%%%%"
    if sWhat = "Preamble" then sEnd = "%%% End OOoLatex Preamble %%%%%%%%%%%%"
    if sWhat = "Config" then sStart = "%%% OOoLatex Configuration %%%%%%%%%%%%"
    if sWhat = "Config" then sEnd = "%%% End OOoLatex Configuration %%%%%%%%%%"

 SplitDocDesc() = Split(sDocDesc,chr(10))
 ii = 0
 startLine = -1
 endLine = -1
 For i = 0 to 1024
 If SplitDocDesc(i) = sStart then
 startLine = i
 elseif SplitDocDesc(i) = sEnd then
 endLine = i
 end if
 ii = ii + 1 + Len(SplitDocDesc(i))
 If Len(sDocDesc) < ii  then Exit For
 Next
 lastLine = i
'Print sWhat & " " & sAction & ", startLine = " & startLine & ",  endLine = " & 
endLine & ", LastLine = " & lastLine 
 If (startLine <> -1) and (endLine <> -1) and (endLine > startLine) then
 if sAction = "Get" then
 For i = startLine +1 to endLine - 1 
 DocInfo = DocInfo & chr(10) & SplitDocDesc(i)
 Next
 elseif sAction = "Delete" then
 For i = 0 to startLine - 1
 DocInfo = DocInfo & chr(10) & SplitDocDesc(i)
 Next
 For i = endLine + 1 to LastLine
 DocInfo = DocInfo & chr(10) & SplitDocDesc(i)
 Next
 end if
 elseif  (startLine = 0) and (endLine = 0) and sAction = "Delete" then
 DocInfo = sDocDesc
 end if
 If sWhat = "Preamble" and Mid(DocInfo,1,1) = chr(10) then DocInfo = 
Mid(DocInfo,2,Len(DocInfo))
End Function

'*** Get access to the repository !
Function GetConfigAccess(ByVal cNodePath As String,_
 ByVal bWriteAccess As Boolean,_
 Optional bEnableSync,_
 Optional bLazyWrite ) As Object
 
 If IsMissing( bEnableSync ) Then bEnableSync = True
 If IsMissing( bLazyWrite )  Then bLazyWrite = False

 oConfigProvider = GetProcessServiceManager().createInstanceWithArguments(_
 "com.sun.star.configuration.ConfigurationProvider",_
 Array( MakePropertyValue( "enableasync", bEnableSync ) ) )

 If bWriteAccess Then
 cServiceName = "com.sun.star.configuration.ConfigurationUpdateAccess"
 Else
 cServiceName = "com.sun.star.configuration.ConfigurationAccess"
 EndIf

 oConfigAccess = oConfigProvider.createInstanceWithArguments(_
 cServiceName,_
       Array(  MakePropertyValue( "nodepath",  cNodePath  ),_
 MakePropertyValue( "lazywrite", bLazyWrite ) ) )

 GetConfigAccess = oConfigAccess
End Function


Function MakePropertyValue( Optional cName As String, Optional uValue ) As 
com.sun.star.beans.PropertyValue
 oPropertyValue = createUnoStruct( "com.sun.star.beans.PropertyValue" )
 
 If Not IsMissing( cName )  Then oPropertyValue.Name  = cName
 If Not IsMissing( uValue ) Then oPropertyValue.Value = uValue
 MakePropertyValue() = oPropertyValue
End Function

'*** Generate path for MinSYS as "/C/path_to_file/"
Function WinPath(sPath as String) as String
 sPath = ConvertToURL(sPath)
 WinPath = "/" & mid(sPath,9,1) & join(split(mid(sPath,11),"%20")," ")
End function
===========================================================================
 Patrick DUPRÉ                                 | | email: [email protected]
 Laboratoire de Physico-Chimie de l'Atmosphère | |
 Université du Littoral-Côte d'Opale           | |
 Tel.  (33)-(0)3 28 23 76 12                   | | Fax: 03 28 65 82 44
 189A, avenue Maurice Schumann                 | | 59140 Dunkerque, France
===========================================================================

-- 
To unsubscribe e-mail to: [email protected]
Problems? http://www.libreoffice.org/get-help/mailing-lists/how-to-unsubscribe/
Posting guidelines + more: http://wiki.documentfoundation.org/Netiquette
List archive: http://listarchives.libreoffice.org/global/users/
All messages sent to this list will be publicly archived and cannot be deleted

Reply via email to