also centern - das ist so einfach nicht. ein Grafik-Objekt wied ja an der gewünschten Position eingefügt, bei die an Position 0/0 (X/Y), also an der oberen linken Ecke. Centern kannst du es an sich nur, wenn du A) die Breite deiner Seite kennst (Ränder beachten) und b) die Breite deines Bildes/Grafik. Dann kannst du den gewünschten Punkt berechnen

Die zweite Frage ist einfacher: Die orginal-Größe ermitteln. Diese ist ja eine Eigenschaft der Grafik (-datei) und dort auch auslesbar. Also, die Größe bekommst du mit:
Code: Alles auswählen
...
page.add(img)
oBildGroesse = img.GraphicObjectFillBitmap.GetSize
hoehe = oBildGroesse.height ' in Pixeln
breite = oBildGroesse.width 'in Pixeln
...
Nun sind bei verschiedenen Ausgangsmedien die Twips (kleinste Grafikeinheit im Computert) per Pixel leider unterschiedlich - insofern musst du die auch erst errechnen.
Es gibt einen Faktor (sieh mal OOo Hilfe - umrechnungsfaktoren), den kannst du verwenden:
Tips per Milimeter: 0,017636684 - definiere die als Konstante tpm:
Code: Alles auswählen
...
const tpm = 0.017636684
dim oGrafikGroesse as new com.sun.star.awt.Size
oGrafikGroesse.height = hoehe * TwipsPerPixelX * tmp * 100
oGrafikGroesse.width = breite * TwipsPerPixelY * tmp * 100
img.setSize(oGrafikGroesse)
...

Viele Grüße
Thomas