L.S.,
Ik zou heel graag hulp hebben bij het volgende:
Ik heb een foto (steeds een andere die zo opgeslagen wordt):
C:/foto01.JPG
Deze wil ik graag plaatsen, beginnende in cel C3.
Het formaat van de foto ken ik niet, maar moet 600x800 worden.
Weet iemand hier een macro voor?
Alvast bedankt!
P.S. Ik gebruik OpenOffice2.4 op Windows XP.
Foto via macro in Calc plaaten - positie - grootte
-
- Berichten: 42
- Lid geworden op: wo jan 27, 2010 5:51 am
Foto via macro in Calc plaaten - positie - grootte
OpenOffice 2.4 op Windows XP
-
- Berichten: 42
- Lid geworden op: wo jan 27, 2010 5:51 am
Re: Foto via macro in Calc plaaten - positie - grootte
Is deze link (voor mij is het echt te hoog gegrepen) behulpzaam:
http://codesnippets.services.openoffice ... Image.snip
Alvast bedankt!
http://codesnippets.services.openoffice ... Image.snip
Alvast bedankt!
OpenOffice 2.4 op Windows XP
-
- Berichten: 42
- Lid geworden op: wo jan 27, 2010 5:51 am
Re: Foto via macro in Calc plaaten - positie - grootte
Ondertussen ben ik een klein stukje verder. Met behulp van de volgende code zet ik een foto neer:
Als het me nu zou lukken om van die enige foto die vervolgens op deze sheet staat de breedte in cel A1 en de hoogte in cel A2 te zetten, dan kan ik via een formule de gewenste grootte in de cellen A6 en A7 berekenen (afhankelijk van of de foto's portrait of landscape zijn ect). De formule lukt me wel.
Dan kan ik de volgende code gebruiken om de foto in de gewenste afmetingen (en op de goede plaats) op de sheet te plaatsen. (ik realiseer me dat ik daarna dus 2 foto's op de sheet heb staan, maar dat maakt even voor het voorbeeld niet uit):
Dus de vraag die even overblijft is: kan ik, wanneer er 1 foto op een sheet staat, de dimensies/afmetingen (hoogte en breedte) in de respectievelijke cellen A1 en A2 zetten?
Alvast bedankt!
Code: Selecteer alles
sub FotoNeerzetten
dim document as object
dim dispatcher as object
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dim args1(2) as new com.sun.star.beans.PropertyValue
args1(0).Name = "FileName"
args1(0).Value = "file:///Z:/Offerte_EU_Import/Fotos/Anton/foto01.JPG"
args1(1).Name = "FilterName"
args1(1).Value = "JPEG - Joint Photographic Experts Group"
args1(2).Name = "AsLink"
args1(2).Value = false
dispatcher.executeDispatch(document, ".uno:InsertGraphic", "", 0, args1())
end sub
Dan kan ik de volgende code gebruiken om de foto in de gewenste afmetingen (en op de goede plaats) op de sheet te plaatsen. (ik realiseer me dat ik daarna dus 2 foto's op de sheet heb staan, maar dat maakt even voor het voorbeeld niet uit):
Code: Selecteer alles
sub embed_bitmap
Dim Point As New com.sun.star.awt.Point
Dim Size As New com.sun.star.awt.Size
Sheet = thisComponent.Sheets("Blad1")
Foto1Breedte = Sheet.getCellRangeByName("A6")
Foto1Hoogte = Sheet.getCellRangeByName("A7")
Url_Bitmap=converttourl("Z:/Offerte_EU_Import/Fotos/Anton/foto01.JPG")
odoc = thiscomponent
oshape = odoc.createInstance("com.sun.star.drawing.GraphicObjectShape")
'size.width = Foto1Breedte.value
'size.Height = Foto1Hoogte.value
point.Y = 8000
point.X = 5000
with oshape
.name = "Shape1"
'.size = size
.position = point()
.GraphicURL = Url_Bitmap
end with
opage = odoc.sheets(0).drawpage
opage.add(oshape)
'embed the picture
oBitmap = odoc.createInstance( "com.sun.star.drawing.BitmapTable" )
sName = oshape.LinkDisplayName
If oBitMap.hasByName(sName) Then
oBitmap.replaceByName( sName, oshape.GraphicURL )
else
oBitmap.insertByName( sName, oshape.GraphicURL )
End If
oNewURL = oBitmap.getByName( sName )
oshape.GraphicURL = oNewURL 'Embedded
end sub
Alvast bedankt!
OpenOffice 2.4 op Windows XP
Re: Foto via macro in Calc plaaten - positie - grootte
Hallo
Ik heb geen oplossing voor jouw probleem maar het staat mij bij dat het wel eens eerder behandeld geweest is op het oude Engelse forum, mogelijk is het ook wel eens behandeld op het nieuwe Engelse forum. Als je het op een Engels forum ter sprake wil stellen doe het dan op het nieuwe forum daar krijg je waarschijnlijk een betere reactie.
Voor het geval je zelf verder wilt gaan bedenk dat de afmetingen van een cel afhankelijk is van de regel en kolom waartoe de cel behoort. Voor zover ik weet heeft een cel zelf geen afmeting.
Romke
Ik heb geen oplossing voor jouw probleem maar het staat mij bij dat het wel eens eerder behandeld geweest is op het oude Engelse forum, mogelijk is het ook wel eens behandeld op het nieuwe Engelse forum. Als je het op een Engels forum ter sprake wil stellen doe het dan op het nieuwe forum daar krijg je waarschijnlijk een betere reactie.
Voor het geval je zelf verder wilt gaan bedenk dat de afmetingen van een cel afhankelijk is van de regel en kolom waartoe de cel behoort. Voor zover ik weet heeft een cel zelf geen afmeting.
Romke
LibreOffice 7.4.3.2 op openSUSE Leap 15.4