[gelöst] Seitenumbruch ohne Dispatcher

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] Seitenumbruch ohne Dispatcher

Re: [Makro] Seitenumbruch ohne Dispatcher

von opiWahn » Sa, 02.04.2011 00:34

Hallo DPunch,
vielen Dank :)
Mal wieder genau das richtige, auch wenn ich zu später Std. nochmal alles auspacken mußte was ich bis jetzt verstanden habe :wink:
Hab's jetzt so zusammen gebaut:

Code: Alles auswählen

Sub addForm

  oViewCursor = thisComponent.getCurrentController.getViewCursor
  oViewCursor.jumpToLastPage(true)
  oViewCursor.jumpToEndofPage(true)
  
  Dim args2(0) as New com.sun.star.beans.PropertyValue
  oText = thisComponent.getText()   
  oTextCursor = oText.createTextCursor
  oTextCursor.gotoEnd(False)
  oTextCursor.BreakType = com.sun.star.style.BreakType.PAGE_AFTER
  oText.insertControlCharacter(oTextCursor, com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK, False)
  sInhalt="file:///C:/xxx/xtFormulare/form_a.odt"
  filetoinsert=converttourl(sInhalt)
  oTextCursor.InsertDocumentFromUrl(FileToInsert,args2())

End sub
Auf jeden Fall funktioniert es (ich hoffe ich hab keinen Bock geschossen, der sich noch rächt) und der Code ist nicht nur kürzer, er sieht auch noch gut aus.

Re: [Makro] Seitenumbruch ohne Dispatcher

von DPunch » Fr, 01.04.2011 20:47

Aloha

In einem Writer-Dokument geht das prinzipiell so:

Code: Alles auswählen

	oDoc = thisComponent	
	oText = oDoc.Text	
	oTextCursor = oText.createTextCursor
	oTextCursor.gotoEnd(False)
	oTextCursor.BreakType = com.sun.star.style.BreakType.PAGE_AFTER
	oText.insertControlCharacter(oTextCursor, com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK, False)

[gelöst] Seitenumbruch ohne Dispatcher

von opiWahn » Fr, 01.04.2011 20:33

'nabend,

ich habe versucht mich bei "Seitenumbruch und vorhandene Seite einfügen" vom Dispatcher zu lösen.
Das gelang bis dahin aber alles andere als zufriedenstellend:

Code: Alles auswählen

Sub addForm

document = thisComponent.CurrentController.Frame

' funktioniert nach Umbau nicht mehr! --> Cursor beit an Position stehen
  oViewCursor = thisComponent.getCurrentController.getViewCursor
  oViewCursor.jumpToLastPage(true)
  oViewCursor.jumpToEndofPage(true)

' ersetzen durch ??? -> Ergebnis soll Seitenumbruch sein
' anschließend Dokument einfügen  
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")  
dim args1(2) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Kind"
args1(0).Value = 3
args1(1).Name = "TemplateName"
args1(1).Value = ""
args1(2).Name = "PageNumber"
args1(2).Value = 0
dispatcher.executeDispatch(document, ".uno:InsertBreak", "", 0, args1())

' funktioniert!
Dim args2(0) as New com.sun.star.beans.PropertyValue
  oText = thisComponent.getText()
  oCursor = thisComponent.text.createtextcursor
  sInhalt="file:///C:/xxx/xtFormulare/form_a.odt"
  filetoinsert=converttourl(sInhalt)
  oCursor.InsertDocumentFromUrl(FileToInsert,args2())
  oCursor.gotoend(false)
  
End sub
Was läuft falsch?

Grüße
opiWahn

Nach oben