Kopieren von Kopf- oder Fußzeile in neues Dokument
Verfasst: Fr, 07.04.2006 11:22
Hallo,
ich möchte mit OO2.0 aus einer Vorlage mittels Makro den Inhalt, sowie die Kopf- und Fußzeile in ein neues Dokument kopieren. Dies funktioniert zwar mit dem Inhalt problemlos, jedoch nicht mit der Schriftart in Kopf- oder Fußzeile. Ist dies ein Bug bzw. wie geht's? Hier mein Makro:
Gruß Jaba2000
ich möchte mit OO2.0 aus einer Vorlage mittels Makro den Inhalt, sowie die Kopf- und Fußzeile in ein neues Dokument kopieren. Dies funktioniert zwar mit dem Inhalt problemlos, jedoch nicht mit der Schriftart in Kopf- oder Fußzeile. Ist dies ein Bug bzw. wie geht's? Hier mein Makro:
Code: Alles auswählen
sub Kopieren
rem Aktuelles Formular initialisieren
document = ThisComponent
StyleFamiliesDoc = document.StyleFamilies
PageStylesDoc = StyleFamiliesDoc.getByName("PageStyles")
DefPageDoc = PageStylesDoc.getByName("Standard")
documentFrame = document.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
GlobalScope.BasicLibraries.LoadLibrary("Tools")
rem Setzen des Viewcursors des aktuellen Formulars auf den Bodytext-Anfang
oTC = document.Text.createTextCursor()
myViewCur=document.GetCurrentController.ViewCursor
myViewCur.gotoRange(oTC,false)
myViewCur.gotoStart( false )
rem Kopieren des Bodytextes
dispatcher.executeDispatch(documentFrame, ".uno:SelectAll", "", 0, Array())
dispatcher.executeDispatch(documentFrame, ".uno:Copy", "", 0, Array())
rem Neues Dokument erstellen
documentNew = CreateNewDocument("swriter")
If Not IsNull(documentNew) Then
rem Initialisierung des neuen Dokuments
documentNewFrame = documentNew.CurrentController.Frame
StyleFamiliesDocNew = documentNew.StyleFamilies
PageStylesDocNew = StyleFamiliesDocNew.getByName("PageStyles")
DefPageDocNew = PageStylesDocNew.getByName("Standard")
myViewCursor=documentNew.GetCurrentController.ViewCursor
rem Seiteneinstellungen der Vorlage ins neue Dokument übernehmen
DefPageDocNew.HeaderIsOn=DefPageDoc.HeaderIsOn
DefPageDocNew.FooterIsOn=DefPageDoc.FooterIsOn
DefPageDocNew.IsLandscape=DefPageDoc.IsLandscape
DefPageDocNew.Width = DefPageDoc.Width
DefPageDocNew.Height = DefPageDoc.Height
DefPageDocNew.LeftMargin = DefPageDoc.LeftMargin
DefPageDocNew.RightMargin = DefPageDoc.RightMargin
DefPageDocNew.TopMargin = DefPageDoc.TopMargin
DefPageDocNew.BottomMargin = DefPageDoc.BottomMargin
rem Kopieren des Bodytextes ins neue Dokument
dispatcher.executeDispatch(documentNewFrame, ".uno:Paste", "", 0, Array())
if DefPageDoc.HeaderIsOn then
rem Kopiermethode1 hier beim Header
rem Kopieren des Headertextes ins neue Dokument (Stil und Schriftart werden nicht mitkopiert!!!)
DefPageDocNew.HeaderText.String = DefPageDoc.HeaderText.String
end if
if DefPageDoc.FooterIsOn then
rem Kopiermethode2 hier beim Footer
rem Kopieren des Footertextes ins neue Dokument (Schriftart wird nicht mitkopiert!!!)
oTF = DefPageDoc.FooterText.Text.createTextCursor()
myViewCur.gotoRange(oTF,false)
oTFNew = DefPageDocNew.FooterText.Text.createTextCursor()
myViewCursor.gotoRange(oTFNew,false)
dispatcher.executeDispatch(documentFrame, ".uno:SelectAll", "", 0, Array())
dispatcher.executeDispatch(documentFrame, ".uno:Copy", "", 0, Array())
dispatcher.executeDispatch(documentNewFrame, ".uno:Paste", "", 0, Array())
end if
rem Setzen der Viewcursor in beiden Dokumenten wieder Auf Bodytext-Anfang
myViewCur.gotoRange(oTC,false)
myViewCur.gotoStart( false )
oTCNew = documentNew.Text.createTextCursor()
myViewCursor.gotoRange(oTCNew,false)
myViewCursor.gotoStart( false )
End If
end sub