Buenas, tengo un documento Write con muchas tablas, en estas tablas tengo creado marcas, en tiempo de ejecución voy buscando marcas y rellenando texto, igualmente tengo una marca que cambio por una imagen, el problema es que la imagen se hace un LINK en lugar de copiar la imagen directamente en el documento, por lo que luego al borrar la imagen del HHDD el documento Write ya no muestra la imagen.
El codigo es el siguiente:
OleObject Mark, Marks
OleObject ObjText2, objTextGraphicObject
string FileUrl
Marks = ObjDocument.Bookmarks
Mark = Marks.getByName("kkkk")
objText2 = Mark.Anchor.Text
FileUrl = f_converttourl(ls_CurrentDir + "\jose.tif")
objTextGraphicObject = ObjDocument.createInstance("com.sun.star.text.GraphicObject")
objSizeClass = objCoreReflection.forName( "com.sun.star.awt.Size" )
objSizeClass.CreateObject( REF objSize )
objSize.Width = 3530
objSize.Height = 1550
objTextGraphicObject.setSize(objSize)
objTextGraphicObject.GraphicURL = f_converttourl(ls_CurrentDir + "\jose.tif")
objText2.insertTextContent(Mark.Anchor, objTextGraphicObject, false)
Como he comentado, la marca se sustituye por la imagen, pero con un LINK y necesito que sea pegando la imagen.
Un saludo
Copiar imagen en Write en lugar de LINK via Marcas
Copiar imagen en Write en lugar de LINK via Marcas
OpenOffice 3.1 en Windows XP
Re: Copiar imagen en Write en lugar de LINK via Marcas
Encontré este código que elimina el LINK (http://user.services.openoffice.org/en/ ... 20&t=23909)
Código: Seleccionar todo
Sub embedImagesInWriter(doc as Object)
Dim allImages As Object, imageX As Object
Dim x As Long
allImages = doc.GraphicObjects
for x = 0 to allImages.Count -1
imageX = allImages.getByIndex(x)
if InStr(1, imageX.GraphicURL, "vnd.sun.star.GraphicObject:", 0) = 0 then
imageX.Graphic = getGraphicFromURL(imageX.GraphicURL)
end if
next
End Sub
' This code is provided by Ariel Constenla-Haile, see
' http://www.mail-archive.com/dev@api.openoffice.org/msg09255.html
Function getGraphicFromURL( sURL as String) as com.sun.star.graphic.XGraphic
On Error Resume Next
Dim oGraphicProvider as Object
oGraphicProvider = createUnoservice("com.sun.star.graphic.GraphicProvider")
Dim aMediaProperties(0) as New com.sun.star.beans.PropertyValue
aMediaProperties(0).Name = "URL"
aMediaProperties(0).Value = sURL
getGraphicFromURL = oGraphicProvider.queryGraphic(aMediaProperties)
End Function