Bild in Kopfzeile bei Writer einfügen

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

thetta
Beiträge: 9
Registriert: So, 29.10.2006 19:10
Wohnort: Hennef

Bild in Kopfzeile bei Writer einfügen

Beitrag von thetta »

Ich möchte im Writer per Makro ein Bild in die Kopf- und dann eines in die Fußzeile einfügen und sie auch wieder löschen können. Im OO-Bereich bin ich da als Umsteiger Neuling, und aus MS Word bekomme ich nichts konvertiert.
Bild einfügen mache ich zZ mit,

dim args1(3) as new com.sun.star.beans.PropertyValue
args1(0).Name = "FileName"
args1(0).Value = "file:///C:/kopf.gif"
args1(1).Name = "FilterName"
args1(1).Value = "<Alle Formate>"
args1(2).Name = "AsLink"
args1(2).Value = false
args1(3).Name = "Style"
args1(3).Value = "Grafik"
dispatcher.executeDispatch(document, ".uno::InsertGraphic", "", 0, args1())

geht aber immer dorthin wo der Cursor vor dem Makro ist auch wenn ich mit

DefPage.HeaderIsOn = True
header=DefPage.headertext
header.setString("Hallo")

vorher in die Kopfzeile reingeschreiben bekomme.

Tausend Dank für einen Hinweis (aber bitte nicht auf engl. Dokus, da beiß ich schon einige Abende wegen in den Rinnstein)
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: Bild in Kopfzeile bei Writer einfügen

Beitrag von turtle47 »

Hallo thetta,

hast Du Dir diese Seite mit dem Post von Andrew schon mal angesehen?
Da ist eigentlich alles enthalten was Du brauchst um eine Kopfzeile mit Bild einzufügen.

Wenn Du noch entsprechende Änderungen vornehmen möchtest dann untersuche die Seitenvorlage mit xray.

Code: Alles auswählen

	....
	oStyle1 = ThisComponent.StyleFamilies.getByName("PageStyles").getByName("Standard")
	xray oStyle1
	.....
Viel Erfolg.

Jürgen


P.S.
Mit einem freundlichen "Hallo" zur Einleitung Deiner Frage und einer Grussformel am
Ende würde das Anworten leichter fallen.
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
thetta
Beiträge: 9
Registriert: So, 29.10.2006 19:10
Wohnort: Hennef

Re: Bild in Kopfzeile bei Writer einfügen

Beitrag von thetta »

Hallo Jürgen,
das war ein toller Tip. Mit dem Ansatz bin ich fast komplett durch meine Baustellen und der OpenOffice Syntax deutlich näher gekommen. Allerdings bin ich mit dem Xtray Tool nicht klar, Aufgerufen bekomme ich es aber dann muss ich passen.
Mir fehlt noch ein Baustein, bei dem ich noch um Hilfe bitten möchte.
Wie kann ich das Bild in den Hintergrund bekommen? Bisher sieht der betroffen Textteil so aus und ich vermute was mit WrapThroughTransparent

oGraph = ThisComponent.createInstance("com.sun.star.text.GraphicObject")
With oGraph
.GraphicURL = kopfbild
.AnchorType = com.sun.star.text.TextContentAnchorType.AT_PARAGRAPH
.TextWrap = com.sun.star.text.WrapTextMode.THROUGHT
.Width = 20060
.Height = 7570
.Name = "der_Kopf"
End With

Für die Hilfe jetzt schon tausend Dank
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: Bild in Kopfzeile bei Writer einfügen

Beitrag von turtle47 »

Hi,

folgendes sollte gehen:

Code: Alles auswählen

Sub Image_Header()
	Dim TheSize As New com.sun.star.awt.Size
	Dim sHEADURL As String  
	Dim oGraph
	oDoc = ThisComponent
	sHEADURL = "file:///D:/Dein_Bild.jpg"
	
	oStyle1 = ThisComponent.StyleFamilies.getByName("PageStyles").getByName("Standard")
	oStyle1.HeaderIsOn = True
	oStyle1.HeaderIsShared = true
	oStyle1.HeaderHeight = 3000
	oStyle1.HeaderBodyDistance = 500
	
	oGraph = ThisComponent.createInstance("com.sun.star.text.GraphicObject")

	With oGraph
		.GraphicURL = sHEADURL
		.AnchorType = com.sun.star.text.TextContentAnchorType.AS_CHARACTER
		.AnchorType  = 4
		.Opaque =False
		.Width = 20060
		.Height = 7570
		.Name = "der_Kopf"
	End With

	oCursor = oStyle1.HeaderText.createTextCursor()	
	oCursor.getText().insertTextContent( oCursor, oGraph, False )
	oCursor.ParaAdjust = com.sun.star.style.ParagraphAdjust.CENTER
End Sub
Viel Erfolg.

Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
thetta
Beiträge: 9
Registriert: So, 29.10.2006 19:10
Wohnort: Hennef

Re: Bild in Kopfzeile bei Writer einfügen

Beitrag von thetta »

Super, hat perfekt geklappt!!! Meine Hochachtung und
gaaaanz herzlichen Dank
Antworten