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