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 (gpiroux@gmail.com)
'
' 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: pdupre@gmx.com
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: users+unsubscribe@global.libreoffice.org
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