Seitenanzahl

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

Moderator: Moderatoren

toni
***
Beiträge: 66
Registriert: Mi, 03.01.2007 10:26

Seitenanzahl

Beitrag von toni »

Hi,

ich exportiere ein CalcSheet ins PDF. Das Dokument kann über eine unterschiedliche Anzahl von Seiten verfügen(unterschiedliche Anzahl von Seitenumbrüchen etc.).

An einer bestimmten Stelle im Dokument soll nun folgender Satz stehen:

"Diese Dokument umfasst 10 Seiten"

Wie ermittle ich die Seitenanzahl?

In der Kopfzeile habe ich es hin bekommen, dort erscheint

"Seite 1 von 10"
mit Hilfe eines Textfeldes (oPageCount)

Code: Alles auswählen

 Sub seitenVorlageAntrag

    Dim oFormatFamilien as Object, oSeitenFormate as Object
    Dim oSeitenFormat as Object, oHT as Object, oText as Object, oCursor as Object
    Dim  oPageNumber as Object, oPageCount as Object, oDateTime as Object
    
    oPageNumber = ThisComponent.createInstance( "com.sun.star.text.TextField.PageNumber" )
    oPageCount  = ThisComponent.createInstance( "com.sun.star.text.TextField.PageCount" )
    oDateTime   = ThisComponent.createInstance( "com.sun.star.text.TextField.DateTime" )


 	oFormatFamilien = ThisComponent.StyleFamilies
	oSeitenFormate = oFormatFamilien.getByName("PageStyles")
	oSeitenFormat = oSeitenFormate.getByName("PageStyle_Antrag")
	oSeitenFormat.HeaderIsOn = True
	oSeitenFormat.HeaderIsShared = true  'beide Seiten sind gleich
    oSeitenFormat.HeaderBodyDistance = 500
    oSeitenFormat.HeaderIsDynamicHeight = True	
    oHT = oSeitenFormat.rightPageHeaderContent  'HeaderText Objekt
    
    oText = oHT.LeftText    'Linkes Textobjekt
    oText.string = Version
    oSeitenFormat.rightPageHeaderContent = oHT
  
    oText = oHT.CenterText    'Mittleres Textobjekt
    oHT.getCenterText().setString("")
    oCursor = oHT.getCenterText().createTextCursor()
    oCursor.gotoEnd( False )    
    oHT.getCenterText().insertTextContent( oCursor, oDateTime, True ) 
    oCursor.gotoEnd( False )           
    oCursor.setString("  Seite ")
    oCursor = oHT.getCenterText().createTextCursor()
    oCursor.gotoEnd( False )    
    oHT.getCenterText().insertTextContent( oCursor, oPageNumber, True ) 
    oCursor.gotoEnd( False )           
    oCursor.setString(" von ") 
    oCursor.gotoEnd( False )    
    oHT.getCenterText().insertTextContent( oCursor, oPageCount, True )    
    oSeitenFormat.RightPageHeaderContent = oHT        
                     
 End Sub
In oPageCount steht also irgendwie die Anzahl der erzeugten Seiten.
Kann ich das auch für meinen Satz "Diese Dokument umfasst 10 Seiten" nutzen?
Wie ginge es sonst?
In VBA habe ich das folgendermaßen gelöst:

Code: Alles auswählen

Private Sub Workbook_BeforePrint(Cancel As Boolean)
  Dim Anzahl As Integer
      Anzahl = ExecuteExcel4Macro("Get.Document(50)")
     With Worksheets("Antrag").Range("B517")
     .Value = _
         "Dieses Dokument besteht aus " & Anzahl & _
         " Seiten. Die Unterschriften gelten für alle " & Anzahl & " Seiten."
     .Font.Size = 8
     End With

End Sub
Gruss

Thomas