Ausrichtung von Bild in einer WRITE-Zeile [gelöst]

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

DaWolf
*
Beiträge: 18
Registriert: Mi, 01.04.2009 17:03
Wohnort: Deggendorf / Bayern

Ausrichtung von Bild in einer WRITE-Zeile [gelöst]

Beitrag von DaWolf »

Hallo Leute,
brauche wieder mal eure kompetente Hilfe:

Ich habe ein Write-Dokument mit Textmarken.
Per Makro wird ein Bild an eine bestimmte Textmarke gesetzt. Das funktioniert auch alles wunderbar.

Problem: Das Bilde ist grundsätzlich "mittig" in der Zeile, in der die Textmarke ist. Die Textmarke ist jedoch linksbündig. Die gesamte Zeile ist linksbündig.
Das Bild wird aber immer zentriert in der Zeile eingefügt.

Ich bin am verzweifeln, habe keine Idee und finde auch nirgendwo eine Info dazu.
Schon mal vielen Dank.

DaWolf
Zuletzt geändert von DaWolf am Mi, 03.06.2009 11:21, insgesamt 1-mal geändert.
Win XP Prof. SP 3 / OpenOffice 3.1.0 OOO310m11 (Build:9399) mit Sun Report Builder 1.1.0 / Firefox 3.0.10
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: Ausrichtung von Bild in einer Zeile

Beitrag von turtle47 »

Hallo DaWolf,
DaWolf hat geschrieben:Ich bin am verzweifeln, habe keine Idee und finde auch nirgendwo eine Info dazu.
Dann empfehle ich Dir Dich mal mit xRay und dem zugehörigen SDK zu beschäftigen.
DaWolf hat geschrieben:Problem: Das Bilde ist grundsätzlich "mittig" in der Zeile, in der die Textmarke ist. Die Textmarke ist jedoch linksbündig. Die gesamte Zeile ist linksbündig.
Das Bild wird aber immer zentriert in der Zeile eingefügt.
Dann muss Du auch die entsprechende Information über die Ausrichtung mitgeben.

Hier mal ein Beispielcode der alle Bilder einer Seite auf die entsprechende Position setzt:

Code: Alles auswählen

Sub Pos_Images
	oDocument = thisComponent
	page = oDocument.drawPage
	nNumShapes = Page.getCount()
	For i = 0 To nNumShapes - 1
	oShape = Page.getByIndex( i )
	oImage = oShape.FrameStyleName
	if  oImage = "Graphics" then
	oShape.HoriOrient = 3 links ausgerichtet
	'oShape.HoriOrient = 2 'mittig ausgerichtet
	'oShape.HoriOrient = 1 'rechts ausgerichtet
	end if
	next i	
end sub
Viel Erfolg.

Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
DaWolf
*
Beiträge: 18
Registriert: Mi, 01.04.2009 17:03
Wohnort: Deggendorf / Bayern

Re: Ausrichtung von Bild in einer Zeile

Beitrag von DaWolf »

Hallo Jürgen,

vielen Dank für die schnelle Lösung.
Ich hatte aber noch bei:
oShape.FrameStyleName
die Fehlermeldung: "Methode oder Funktion unbekannt". o.s.ä.

Habe das ganze so gelöst:

Code: Alles auswählen

Sub Bild_Links_Ausrichten
	Dim oBilder, anzahl, oBild, i
	
	oDoc = thisComponent
    oBilder = oDoc.Drawpage
    anzahl = oBilder.count
    For i = 1 to anzahl
    oBild = oBilder.getByIndex(i-1)
    	if oBild.Name = "Grafik1" then
   	 		oBild.HoriOrient = 3 'links ausgerichtet
			'oShape.HoriOrient = 2 'mittig ausgerichtet
			'oShape.HoriOrient = 1 'rechts ausgerichtet
   		end if
   next i   
End Sub
Das funktioniert jetzt einwandfrei.

Nochmal vielen Dank
DaWolf
Win XP Prof. SP 3 / OpenOffice 3.1.0 OOO310m11 (Build:9399) mit Sun Report Builder 1.1.0 / Firefox 3.0.10
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: Ausrichtung von Bild in einer WRITE-Zeile [gelöst]

Beitrag von turtle47 »

Hallo DaWolf,
DaWolf hat geschrieben:Ich hatte aber noch bei:
oShape.FrameStyleName
die Fehlermeldung: "Methode oder Funktion unbekannt". o.s.ä.
Das kann passieren wenn noch andere Objekte auf der Drawpage liegen wie z.B. Buttons.
Wenn diese nicht über die abgefragte Eigenschaft verfügen dann kann es zu dieser Fehlermeldung kommen.

Ich hatte auch eigentlich daran gedacht Du würdest bei Einfügen der Grafik diese direkt auf die gewünschte Position setzen.

Code: Alles auswählen

.
    .
    .
    Set AddNew_GraphicObject = ActiveDoc.createInstance("com.sun.star.text.GraphicObject")
    AddNew_GraphicObject.GraphicURL = ("File:///c:/Dein_Bild.jpg")
    AddNew_GraphicObject.HoriOrient = 3 'dieses beim Einfügen direkt mitgeben
    ObjText.InsertTextContent (cursor, AddNew_GraphicObject, False)
End Sub
Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Antworten