Muss jetzt leider hier nochmal nach haken, ob bisher jemand eine Lösung gefunden hat.
Ich habe inzwischen einen Haufen Threads gelesen (auch englische), aber das Problem wird nirgends gelöst.
Das FAQ hat darauf keine Antworten, die Online-Hilfe ebenfalls nicht und die 3 bis 4 Dokus, die ich hier liegen habe, helfen mir da auch nicht mehr weiter.
Windows XP, OO 3.3
Ich erkläre nochmals kurz das Problem:
Ich lade mit dem Makro ein Bild hoch. Dabei wird die Größe direkt mitgeändert. Jetzt bleibt das Problem der Positionierung. Das Bild wird Standartmäßig in der Mitte geladen. Das soll so aber nicht sein, sondern es soll beliebig positionierbar sein.
Code: Alles auswählen
rem ----------------------------------------------------------------------
dim args1(3) as new com.sun.star.beans.PropertyValue
args1(0).Name = "FileName"
args1(0).Value = Path
args1(1).Name = "FilterName"
args1(1).Value = "<Alle Formate>"
args1(2).Name = "AsLink"
args1(2).Value = false
args1(3).Name = "Style"
args1(3).Value = "Grafik"
dispatcher.executeDispatch(document, ".uno:InsertGraphic", "", 0, args1())
rem ----------------------------------------------------------------------
dim args2(3) as new com.sun.star.beans.PropertyValue
args2(0).Name = "FileName"
args2(0).Value = Path
args2(1).Name = "FilterName"
args2(1).Value = "<Alle Formate>"
args2(2).Name = "AsLink"
args2(2).Value = false
args2(3).Name = "Style"
args2(3).Value = "Grafik"
dispatcher.executeDispatch(document, ".uno:InsertGraphic", "", 0, args2())
Da ich bisher keinen Weg gefunden habe, das Makro komplett selbst zu schreiben, musste ich mich dem dispatcher bedienen.
die Größe kann ich hiermit ändern:
Code: Alles auswählen
Dim Size as new com.sun.star.awt.Size
Size.Width = 5000
Size.Height = 2500
oSelection.Size = Size
Hatte zuerst angenommen, das Problem mit
Code: Alles auswählen
Dim Point as new com.sun.star.awt.Point
Point.x = 100
Point.y = 100
oSelection.Position = Point
in den Griff zu bekommen, allerdings kommt dann eine Fehlermeldung "position cannot be changed by this method".
Eine Idee war, das Bild in einen Textrahmen bzw. einer Tabellenzelle zu laden, doch kann ich das inzwischen ausschließen, da die Bilder unterschiedlich groß sein können.
Kleine Ergänzung, die euch nicht umbedingt wichtig ist für das Problem. Es wird pro Dokument ein Bild geladen. Das Bild wird über
ausgelesen. Diese Bilder werden dabei immer in einem Temp-Verzeichnis zwischengespeichert nachdem sie über eine Software aufgerufen wurden. Die Bilder haben ALLE den gleichen Namen (Beispielsweise "Bild1.bmp")
Ich stelle nachher noch eine Datei hoch, die zeigen soll, wo das Bild aktuell geladen wird, und wo es eigentlich hinkommen soll. Braucht ihr das, um das Problem zu lösen?
Hoffe ihr habt ein paar mehr Ideen als ich.
Grüße und schonmal ein Danke an alle im vorraus.
Muss jetzt leider hier nochmal nach haken, ob bisher jemand eine Lösung gefunden hat.
Ich habe inzwischen einen Haufen Threads gelesen (auch englische), aber das Problem wird nirgends gelöst.
Das FAQ hat darauf keine Antworten, die Online-Hilfe ebenfalls nicht und die 3 bis 4 Dokus, die ich hier liegen habe, helfen mir da auch nicht mehr weiter.
Windows XP, OO 3.3
Ich erkläre nochmals kurz das Problem:
Ich lade mit dem Makro ein Bild hoch. Dabei wird die Größe direkt mitgeändert. Jetzt bleibt das Problem der Positionierung. Das Bild wird Standartmäßig in der Mitte geladen. Das soll so aber nicht sein, sondern es soll beliebig positionierbar sein.
[code]rem ----------------------------------------------------------------------
dim args1(3) as new com.sun.star.beans.PropertyValue
args1(0).Name = "FileName"
args1(0).Value = Path
args1(1).Name = "FilterName"
args1(1).Value = "<Alle Formate>"
args1(2).Name = "AsLink"
args1(2).Value = false
args1(3).Name = "Style"
args1(3).Value = "Grafik"
dispatcher.executeDispatch(document, ".uno:InsertGraphic", "", 0, args1())
rem ----------------------------------------------------------------------
dim args2(3) as new com.sun.star.beans.PropertyValue
args2(0).Name = "FileName"
args2(0).Value = Path
args2(1).Name = "FilterName"
args2(1).Value = "<Alle Formate>"
args2(2).Name = "AsLink"
args2(2).Value = false
args2(3).Name = "Style"
args2(3).Value = "Grafik"
dispatcher.executeDispatch(document, ".uno:InsertGraphic", "", 0, args2())[/code]
Da ich bisher keinen Weg gefunden habe, das Makro komplett selbst zu schreiben, musste ich mich dem dispatcher bedienen.
die Größe kann ich hiermit ändern:
[code] Dim Size as new com.sun.star.awt.Size
Size.Width = 5000
Size.Height = 2500
oSelection.Size = Size[/code]
Hatte zuerst angenommen, das Problem mit
[code]
Dim Point as new com.sun.star.awt.Point
Point.x = 100
Point.y = 100
oSelection.Position = Point[/code]
in den Griff zu bekommen, allerdings kommt dann eine Fehlermeldung "position cannot be changed by this method".
Eine Idee war, das Bild in einen Textrahmen bzw. einer Tabellenzelle zu laden, doch kann ich das inzwischen ausschließen, da die Bilder unterschiedlich groß sein können.
Kleine Ergänzung, die euch nicht umbedingt wichtig ist für das Problem. Es wird pro Dokument ein Bild geladen. Das Bild wird über
[code]part4 = Dir(Path & "Bild.*", 0)[/code]
ausgelesen. Diese Bilder werden dabei immer in einem Temp-Verzeichnis zwischengespeichert nachdem sie über eine Software aufgerufen wurden. Die Bilder haben ALLE den gleichen Namen (Beispielsweise "Bild1.bmp")
Ich stelle nachher noch eine Datei hoch, die zeigen soll, wo das Bild aktuell geladen wird, und wo es eigentlich hinkommen soll. Braucht ihr das, um das Problem zu lösen?
Hoffe ihr habt ein paar mehr Ideen als ich.
Grüße und schonmal ein Danke an alle im vorraus.