2013-07-30 10 views
16

Ich brauchte ein bisschen mehr Recherche, als ich mir das selbst ausgedacht hätte, also werde ich hier eine umfassende Antwort schreiben. Es scheint, als ob die Informationen dazu auf vielen verschiedenen Websites verteilt sind und ich möchte es an einem Ort zusammenfassen. This answerkann das gleiche sein, aber meine Augen glasieren, weil es in einer Java-Zeichenfolge und nicht in einer HTML-Vorlage ist. Hier ist die Frage:Mit Fliegende Untertasse, wie generiere ich ein PDF mit einer Seitenzahl und Seitensumme auf jeder Seite in der Fußzeile?

Ich rendere ein PDF und ich möchte eine Fußzeile am unteren Rand der Seite, die sagt, "Seite n von m", wo "n" ist die Seitennummer, die Sie sind und "m" ist die Gesamtzahl der Seiten im Dokument. Wie mache ich das?

Antwort

28

in Ihrem HTML, müssen Sie in der body Tag diese irgendwo setzen:

<div id="footer"> 
    page <span id="pagenumber"></span> of <span id="pagecount"></span> 
</div> 

Und das sollte Ihre css/Stil sein:

#footer { 
     position: running(footer); 
     text-align: right; 
    } 

    @page { 
     @bottom-right { 
      content: element(footer); 
     } 
    } 

    #pagenumber:before { 
     content: counter(page); 
    } 

    #pagecount:before { 
     content: counter(pages); 
    } 

Sie können mehr darüber erfahren, dass @bottom-right Option here.

+0

Diese Lösung hat nicht für mich funktioniert. Es erschien nur auf der letzten Seite. –

+0

Wo finde ich die Definition/Referenz für die Funktion 'running()' und 'element()'. Konnte es nicht finden. Eine der Seiten, die ich mir angeschaut habe: https://www.w3schools.com/cssref/css_functions.asp –

+0

@PauloOliveira Hast du das nur auf der letzten Seite gelöst? Ich treffe das auch. – Gideon

16

Sie könnten auch einen etwas prägnanter Ansatz versuchen:

@page { 
    @bottom-right { 
    content: "Page " counter(page) " of " counter(pages); 
    } 
} 

Sie müssen dies in Ihrem css/Stil setzen, und Sie brauchen keine zusätzliche Footer-HTML-Element hinzuzufügen.

1

@ John Marks Lösung arbeitete für mich. In meiner Anwendung musste ich die Style-Info in den HTML-Code einbetten, also habe ich diese in <style> Tags eingepackt und stecke sie in die vor <title>. Vielleicht wird diese Information für jemand anderen nützlich sein.