Foto via macro in Calc plaaten - positie - grootte

Foto via macro in Calc plaaten - positie - grootte

Berichtdoor vanhorentrash » za jan 12, 2013 5:10 am

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.
OpenOffice 2.4 op Windows XP
vanhorentrash
 
Berichten: 42
Geregistreerd: wo jan 27, 2010 5:51 am

Re: Foto via macro in Calc plaaten - positie - grootte

Berichtdoor vanhorentrash » zo jan 13, 2013 3:11 am

Is deze link (voor mij is het echt te hoog gegrepen) behulpzaam:
http://codesnippets.services.openoffice ... Image.snip

Alvast bedankt!
OpenOffice 2.4 op Windows XP
vanhorentrash
 
Berichten: 42
Geregistreerd: wo jan 27, 2010 5:51 am

Re: Foto via macro in Calc plaaten - positie - grootte

Berichtdoor vanhorentrash » zo jan 13, 2013 4:00 am

Ondertussen ben ik een klein stukje verder. Met behulp van de volgende code zet ik een foto neer:
Code: Selecteer alles   UitklappenInklappen
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


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):
Code: Selecteer alles   UitklappenInklappen
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


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!
OpenOffice 2.4 op Windows XP
vanhorentrash
 
Berichten: 42
Geregistreerd: wo jan 27, 2010 5:51 am

Re: Foto via macro in Calc plaaten - positie - grootte

Berichtdoor RPG » zo jan 13, 2013 8:38 pm

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
LibreOffice 6.1.6.3 op openSUSE Leap 15
RPG
 
Berichten: 3944
Geregistreerd: wo apr 15, 2009 1:01 am
Woonplaats: Apeldoorn, Nederland


Keer terug naar Macro's

Wie is er online

Gebruikers op dit forum: Geen geregistreerde gebruikers. en 1 gast

cron