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
Context
- [libreoffice-users] OOOlatex · Patrick Dupre
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.