🙏 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!🍀

❤️ DANKE >> << DANKE ❤️

>> 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]

Alles zur Programmierung im LibreOffice.
Antworten
step
Beiträge: 30
Registriert: Sa 12. Jan 2013, 20:50

Rechteck per Makro erzeugen [gelöst]

Beitrag von step » Mo 28. Okt 2013, 12:16

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
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

step
Beiträge: 30
Registriert: Sa 12. Jan 2013, 20:50

Re: Rechteck per Makro erzeugen

Beitrag von step » Di 29. Okt 2013, 17:51

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.
Windows 7 - LibreOffice 3.5.7
Debian 7.8.0 KDE - LibreOffice 3.5.5

F3K Total
* LO-Experte *
Beiträge: 2501
Registriert: So 10. Apr 2011, 10:10

Re: Rechteck per Makro erzeugen

Beitrag von F3K Total » Mi 30. Okt 2013, 21:27

Hi,
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
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:

Code: Alles auswählen

.
.
.
        .CornerRadius = 500 'Eckenradius 0,5cm
    xray oshape
    end with
End Sub
Viel Erfolg
Gruß R
Dateianhänge
Insert_Rectangle_by_macro.odg
(10.2 KiB) 178-mal heruntergeladen
Windows 11: AOO, LO Linux Mint: AOO, LO

step
Beiträge: 30
Registriert: Sa 12. Jan 2013, 20:50

Re: Rechteck per Makro erzeugen

Beitrag von step » Do 31. Okt 2013, 13:24

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
Windows 7 - LibreOffice 3.5.7
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.



Antworten