[gelöst] Textrahmen erstellen mit absoluten Koordinaten

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: [gelöst] Textrahmen erstellen mit absoluten Koordinaten

von Stephan » Do, 21.12.2006 01:14

Wo finde ich die möglichen (zulässigen) Typen? Im SO7.0-Handbuch steht leider nicht viel.
in der IDL-Referenz, im Konkreten hier:
http://api.openoffice.org/docs/common/r ... rType.html



Gruß
Stephan

Die zweite Lösung war noch besser:

von Yad » Do, 21.12.2006 00:33

Stephan hat geschrieben:
Du mußt etwas kennen was den Rahmen identifiziert, z.B. dessen Namen, oder es dürfte sich nur ein Rahmen im Dokument befinden.

Code: Alles auswählen

Sub Rahmen_hat_Name()
oFrames = ThisComponent.getTextFrames() 
For i = 0 To oFrames.Count-1
	If oFrames(i).Name = "Rahmen1" Then
		oFrames(i).createTextCursor()
	End if
Next i
End Sub
Danke, die zweite Variante war noch besser. Ich habe mit deiner Schleife einfach alle Rahmennahmen ermittelt und einfach in den Rahmen als Testdurchlauf geschrieben. Jetzt weiß ich, wie jeder RAhmen heißt und kann die bestehenden Rahmen direkt ansprechen.

Rahmennamen ermitteln:

Code: Alles auswählen

Sub Rahmennamen_in_Rahmen-schreiben
oFrames = VersandText.getTextFrames()
For i = 0 To oFrames.Count-1
   MsgBox "Frame=" & oFrames(i).Name
   FrameCursor = oFrames(i).createTextCursor()
   FrameCursor.gotoStart(False)
   FrameCursor.String = oFrames(i).Name
Next i
End Sub

Wie heißt der richtige Verankerungstyp?

von Yad » Do, 21.12.2006 00:06

Stephan hat geschrieben:
Was mache ich falsch?
Du gibst den falschen Verankerungstyp an:

EmpfaengerFrame.AnchorType = com.sun.star.text.TextContentAnchorType.AS_CHARACTER

ein am Zeichen verankerter Rahmen kann sich nur im Satzspiegel befinden.
Danke, Stefan. Ich hatte schon befürchtet, dass TextContentAnchorType schuld ist. Wo finde ich die möglichen (zulässigen) Typen? Im SO7.0-Handbuch steht leider nicht viel.

Bzw. was muss ich angeben, damit an der gesamten Seite verankert wird?

von Stephan » Mi, 20.12.2006 23:17

Was mache ich falsch?
Du gibst den falschen Verankerungstyp an:

EmpfaengerFrame.AnchorType = com.sun.star.text.TextContentAnchorType.AS_CHARACTER

ein am Zeichen verankerter Rahmen kann sich nur im Satzspiegel befinden.
Wie kann ich einen Textcursor erstellen und positionieren in einem bestehenden Textrahmen, wenn ich den Textrahmen nicht mittels Makro erstellt haben und mir somit die Referenzierung fehlt?
Du mußt etwas kennen was den Rahmen identifiziert, z.B. dessen Namen, oder es dürfte sich nur ein Rahmen im Dokument befinden.

Code: Alles auswählen

Sub nur_ein_Rahmen()
oFrames = ThisComponent.getTextFrames() 
oFrames(0).createTextCursor()
End Sub

Code: Alles auswählen

Sub Rahmen_hat_Name()
oFrames = ThisComponent.getTextFrames() 
For i = 0 To oFrames.Count-1
	If oFrames(i).Name = "Rahmen1" Then
		oFrames(i).createTextCursor()
	End if
Next i
End Sub


Gruß
Stephan

[gelöst] Textrahmen erstellen mit absoluten Koordinaten

von Yad » Mi, 20.12.2006 22:37

Ich möchte in einem Writer-Dokument einen Textrahmen einfügen (OO 1.1.5). Das ist eigentlich kein Problem.

Code: Alles auswählen

EmpfaengerFrame = VersandText.createInstance("com.sun.star.text.TextFrame")
EmpfaengerFrame.Width = 8300
EmpfaengerFrame.Height = 1000
EmpfaengerFrame.AnchorType = com.sun.star.text.TextContentAnchorType.AS_CHARACTER
EmpfaengerFrame.TopMargin = 6500
EmpfaengerFrame.LeftMargin = 2200
...
EmpfaengerFrame.HoriOrient = com.sun.star.text.HoriOrientation.NONE
EmpfaengerFrame.VertOrient = com.sun.star.text.VertOrientation.LINE_TOP
VersandTextCursor.gotoStart (False)
VersandText.Text.insertTextContent(VersandTextCursor, EmpfaengerFrame, False)
Leider wird so nur ein Textrahmen im normalen Text erstellt, die Abstände beziehen sich leider nicht auf die gesamte Seite. Der Textrahmen soll aber außerhalb des normalen Textes positioniert sein. Was mache ich falsch?
Es ist einfach des Empfängerfeld eines mittels Makro befüllten Briefes.

Zusatzfrage: Wie kann ich einen Textcursor erstellen und positionieren in einem bestehenden Textrahmen, wenn ich den Textrahmen nicht mittels Makro erstellt haben und mir somit die Referenzierung fehlt? (Der Textrahmen ist einfach schon vorhanden, wenn das Dokument geöffnet wird.)

Nach oben