hallo zusammen,
ich stehe derzeit vor dem einfachen Problem, per Makro ein Rechteck mit Text in einem Draw-Dokument erzeugen zu wollen.
Das Rechteck bekomme ich hin, aber leider immer ohne den Text.
Vielleicht kann ich ja hier einen oder zwei Hinweise gekommen,
Gruß Step
LibreOffice 3.6.2.2 unter Linux Suse 11.3
Schwerpunkt: Makroprogrammierung von Draw
🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱
🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀
>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
Rechteck per Makro erzeugen [gelöst]
Rechteck per Makro erzeugen [gelöst]
Zuletzt geändert von step am Mi 8. Apr 2015, 19:27, insgesamt 3-mal geändert.
Windows 7 - LibreOffice 3.5.7
Debian 7.8.0 KDE - LibreOffice 3.5.5
Debian 7.8.0 KDE - LibreOffice 3.5.5
Re: Rechteck per Makro erzeugen
Nun, wem nicht geholfen wird, der mus das selbst machen ...
Ich habe es mit rumprobieren und viel Zeitaufwand nun geschafft, ein Rechteck mit Text darzustellen. Aber
leider habe ich noch nicht herausgefunden, wie man die Schriftgröße verstellt.
Ich habe vor, diesen Text durch das Rechteck, welches nicht sichtbar sein wird, in der Größe per Makro zu ändern.
Beim Durchlesen der Programierhandbücher, die mir offline zur Verfügung stehen, habe ich an der einer oder
anderen Stelle Hinweise gefunden, die eine solche Möglichkeit erahnen lassen. Aber wie das im Einzelnen dann vor
sich geht, das steht leider nicht dabei.
z.B. das Ding 'TextFitToSize'. Irgendwo wird auch angesprochen, das dieses Ding die Größenangabe per Eigenschaft
für die Schriftgröße ausser Betrieb setzt. Das alles ist aber noch recht schwamming und wage.
Ich komme mit den Handbüchern und Beispielen (für Draw habe ich noch nichts Passendes gefunden) noch nicht so
richtig klar.
Wie z.B. kann man Informationen aus einer API-Referenz ziehen? Gibt es da eine Anleitung oder besser Erklärung.
Ich bin für jeden Tip oder jedes Beispiel dankbar,
Gruß Step
PS: ich habe gerade noch mal hier im Forum nach API gesucht. Die Beiträge sind recht interessant, leider verstehe ich
bisher nur 'Bahnhof'. Auch ein Blick in die Api von Apache office hilft (noch) nicht. Was ich zunächst brauche ist eine
Step-by-Step Anleitung an einem Beispiel. Meistens bin ich nach so einer Lektüre dann in der Lage, mich selbst besser
weiterzubilden.
Ich habe es mit rumprobieren und viel Zeitaufwand nun geschafft, ein Rechteck mit Text darzustellen. Aber
leider habe ich noch nicht herausgefunden, wie man die Schriftgröße verstellt.
Ich habe vor, diesen Text durch das Rechteck, welches nicht sichtbar sein wird, in der Größe per Makro zu ändern.
Beim Durchlesen der Programierhandbücher, die mir offline zur Verfügung stehen, habe ich an der einer oder
anderen Stelle Hinweise gefunden, die eine solche Möglichkeit erahnen lassen. Aber wie das im Einzelnen dann vor
sich geht, das steht leider nicht dabei.
z.B. das Ding 'TextFitToSize'. Irgendwo wird auch angesprochen, das dieses Ding die Größenangabe per Eigenschaft
für die Schriftgröße ausser Betrieb setzt. Das alles ist aber noch recht schwamming und wage.
Ich komme mit den Handbüchern und Beispielen (für Draw habe ich noch nichts Passendes gefunden) noch nicht so
richtig klar.
Wie z.B. kann man Informationen aus einer API-Referenz ziehen? Gibt es da eine Anleitung oder besser Erklärung.
Ich bin für jeden Tip oder jedes Beispiel dankbar,
Gruß Step
PS: ich habe gerade noch mal hier im Forum nach API gesucht. Die Beiträge sind recht interessant, leider verstehe ich
bisher nur 'Bahnhof'. Auch ein Blick in die Api von Apache office hilft (noch) nicht. Was ich zunächst brauche ist eine
Step-by-Step Anleitung an einem Beispiel. Meistens bin ich nach so einer Lektüre dann in der Lage, mich selbst besser
weiterzubilden.
Windows 7 - LibreOffice 3.5.7
Debian 7.8.0 KDE - LibreOffice 3.5.5
Debian 7.8.0 KDE - LibreOffice 3.5.5
Re: Rechteck per Makro erzeugen
Hi,
hier mal ein kleines Beispiel mit Erläuterungen:
Ich empfehle Dir die Verwendung eines Inspection-Tools wie MRI oder Xray
Damit kannst Du alle OOo-Dokumente hinsichtlich ihres Aufbaues durchleuchten.
Wenn Du Xray installiert hast, kannst du mit dieser zusätzlichen Zeile am Ende noch viel über das Rechteck herausbekommen:
Viel Erfolg
Gruß R
hier mal ein kleines Beispiel mit Erläuterungen:
Code: Alles auswählen
Sub S_insert_rectangle
dim aPosition as new com.sun.star.awt.Point
dim aSize as new com.sun.star.awt.Size
aPosition.X = 6000 'obere linke Ecke 6cm von links
aPosition.Y = 5000 +(nNumber-1)*4000 'obere linke Ecke 5cm von oben
asize.Height = 3000 '3cm hoch
asize.Width = 9000 '9cm breit
oshape = Thiscomponent.createinstance("com.sun.star.drawing.RectangleShape") 'Erzeugen eines Rechteckes
with oshape
.Position = aPosition 'Zuweisen von Position
.Size = aSize ' und Größe
end with
odrawpage = thiscomponent.drawpages.getbyindex(0)
odrawpage.add(oshape) 'in die Zeichenfläche einfügen
with oshape
.Name = "Mein Rechteck" 'Namen vergeben
.String = "Da bin ich"'Text eintragen
.CharHeight = 32 'Schriftgröße
.CharFontName = "Segoe Script" 'Schriftart
.CharColor = RGB(0,107,107)'Schriftfarbe
.CharWeight = 100 'Schriftstärke 100 = normal, 150 = Fett
.CharShadowed = True 'Schriftschatten an
.FillColor = RGB(255,211,32) 'Füllfarbe
.LineWidth = 18 'Randdicke (0,018 cm)
.LineColor = RGB(0,107,107) 'Randfarbe = Schriftfarbe
.Shadow = true 'Schatten an
.ShadowColor = RGB(128,128,128) 'Schattenfarbe
.ShadowTransparence = 50 'Schattentransparenz 50%
.ShadowXDistance = 500 'Schattenbreite X-Richtung
.ShadowYDistance = 100 'Schattenbreite Y-Richtung
.CornerRadius = 500 'Eckenradius 0,5cm
end with
End Sub
Damit kannst Du alle OOo-Dokumente hinsichtlich ihres Aufbaues durchleuchten.
Wenn Du Xray installiert hast, kannst du mit dieser zusätzlichen Zeile am Ende noch viel über das Rechteck herausbekommen:
Code: Alles auswählen
.
.
.
.CornerRadius = 500 'Eckenradius 0,5cm
xray oshape
end with
End Sub
Gruß R
- Dateianhänge
-
- Insert_Rectangle_by_macro.odg
- (10.2 KiB) 178-mal heruntergeladen
Windows 11: AOO, LO Linux Mint: AOO, LO
Re: Rechteck per Makro erzeugen
Hallo R.,
erst mal vielen Dank für das ausführliche Listing. Ich kann jetzt schon beim Durchlesen sagen, dass
das funktioniert;-).
Ich habe inzwischen Xray intalliert, das SDK ebenfalls (Das ist ja hauptsächlich eine html-Seiten(-suite)). Die kann man
auch manuell durchstöbern.
"Warum fehlt 'beans' unter dem Model com.sun.star."? könnte ich jetzt fragen, ist aber nicht so wichtig.
Interessanter ist vielleicht, das ich herausgefunden habe (gestern abend gegend 0:15 Uhr), wie das mit dem
TextFitToSize geht. Das Ergebnis ist auf jeden Fall das, was mir zur Lösung des Problems dienen kann. Das
Ganze läuft unter der Bezeichnung 'Enum' (= Aufzählung) im Modul com.sun.star.drawing:
oShape.TextFitToSize = com.sun.star.drawing.TextFitToSizeType.ALLLINES REM skaliert den Text in alle Richtungen
Gruß Step
erst mal vielen Dank für das ausführliche Listing. Ich kann jetzt schon beim Durchlesen sagen, dass
das funktioniert;-).
Ich habe inzwischen Xray intalliert, das SDK ebenfalls (Das ist ja hauptsächlich eine html-Seiten(-suite)). Die kann man
auch manuell durchstöbern.
"Warum fehlt 'beans' unter dem Model com.sun.star."? könnte ich jetzt fragen, ist aber nicht so wichtig.
Interessanter ist vielleicht, das ich herausgefunden habe (gestern abend gegend 0:15 Uhr), wie das mit dem
TextFitToSize geht. Das Ergebnis ist auf jeden Fall das, was mir zur Lösung des Problems dienen kann. Das
Ganze läuft unter der Bezeichnung 'Enum' (= Aufzählung) im Modul com.sun.star.drawing:
oShape.TextFitToSize = com.sun.star.drawing.TextFitToSizeType.ALLLINES REM skaliert den Text in alle Richtungen
Gruß Step
Windows 7 - LibreOffice 3.5.7
Debian 7.8.0 KDE - LibreOffice 3.5.5
Debian 7.8.0 KDE - LibreOffice 3.5.5
An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:
Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.