Zoom via Makro funktioniert nicht mehr in 4.0
Verfasst: Fr 5. Apr 2013, 07:00
Ich bin gestern von LibO 3.6 auf 4.0 umgestiegen. Festgestellt habe ich inzwischen, dass die Makros, mit denen ich einen bestimmen Zoom-Faktor für die Bildschirmdarstellung festlege, nicht mehr korrekt funktionieren.
Das folgende Makro stammt noch aus alten (OOo)-Zeiten, hat bisher alle Portierungen klaglos überstanden:
Bei Verwendung in LibO 4.0 wird statt der direkten Umsetzung nur das Auswahlfenster für die Maßstabseinstellung gezeigt.
Ich habe daraufhin mit LibO 4.0 via Makro-Aufzeichnung ein neues Makro mit der gewünschten Funktionalität erzeugt.
Das sieht nun zwar etwas anders aus, liefert aber dasselbe unerwünschte Ergebnis:
Wenn ich nun statt einer fixen Maßstabsvorgabe in Prozent z.B. die Option "Seitenbreite" wähle, sieht die Sache anders aus. Zwar funktioniert auch in diesem Fall das alte Makro so (unbefriedigend) wie oben beschrieben, aber die Aufzeichnung mit LibO 4.0 liefert immerhin das:
Das macht (natürlich) erst mal gar nichts, wenn ich das letzte "rem" aber entferne, macht es, was es soll.
Meine Frage: Kann mir jemand sagen, wie ich das Makro umstricken/gestalten muss, um z.B. einen Maßstab von 130% direkt umgesetzt zu bekommen?
Das folgende Makro stammt noch aus alten (OOo)-Zeiten, hat bisher alle Portierungen klaglos überstanden:
Code: Alles auswählen
sub ZoomSeiteExtra
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(2) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Zoom.Value"
args1(0).Value = 130
args1(1).Name = "Zoom.ValueSet"
args1(1).Value = 28703
args1(2).Name = "Zoom.Type"
args1(2).Value = 0
dispatcher.executeDispatch(document, ".uno:Zoom", "", 0, args1())
end sub
Ich habe daraufhin mit LibO 4.0 via Makro-Aufzeichnung ein neues Makro mit der gewünschten Funktionalität erzeugt.
Das sieht nun zwar etwas anders aus, liefert aber dasselbe unerwünschte Ergebnis:
Code: Alles auswählen
sub ZoomSeite2
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(2) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Zoom.Value"
args1(0).Value = Array(Array("Value",0,130,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ValueSet",0,28703,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Type",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE))
args1(1).Name = "Zoom.ValueSet"
args1(1).Value = Array(Array("Value",0,130,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ValueSet",0,28703,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Type",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE))
args1(2).Name = "Zoom.Type"
args1(2).Value = Array(Array("Value",0,130,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ValueSet",0,28703,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Type",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE))
dispatcher.executeDispatch(document, ".uno:Zoom", "", 0, args1())
end sub
Code: Alles auswählen
sub ZoomSeite1
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
rem dispatcher.executeDispatch(document, ".uno:ZoomPageWidth", "", 0, Array())
end sub
Meine Frage: Kann mir jemand sagen, wie ich das Makro umstricken/gestalten muss, um z.B. einen Maßstab von 130% direkt umgesetzt zu bekommen?