Seite 1 von 10
Seite 2 von 10
Anforderungen
- Funktioniert im nativen Browserdruck
- Konsistentes Verhalten in Chrome / Edge (Chromium) und Firefox
- Keine serverseitige PDF-Generierung
- Bevorzugen Sie native Lösung (CSS / JS) gegenüber umfangreichen Bibliotheken
Code: Select all
@pageCode: Select all
@media print {
@page {
@bottom-right {
content: "Page " counter(page) " of " counter(pages);
}
}
}
Wenn das Dokument 5 Seiten hat:
Seite 1 von 5
Seite 2 von 5
Tatsächlich
BrowserResultChrome / Edgecounter(pages) gibt immer 1 zurück → Seite 3 von 1FirefoxWorks korrekt → Seite 3 von 5
Problem: Chromium unterstützt keine Zähler(seiten).
Versuch 2 – Fußzeile mit CSS-Zählern korrigiert
Code: Select all
Code: Select all
Code: Select all
Code: Select all
@media print {Code: Select all
.page_footer {Code: Select all
position: fixed;Code: Select all
bottom: 10pt;Code: Select all
right: 25pt;Code: Select all
}Code: Select all
.page_number::after {Code: Select all
content: "Page " counter(page);Code: Select all
}Code: Select all
}Aktuelle Seitenzahl funktioniert manchmal
Keine Möglichkeit, die Gesamtseitenzahl (Y) zu ermitteln
Inkonsistent zwischen Chrome und Firefox
Versuch 3 – Manuelle Erhöhung des CSS-Zählers
Code: Select all
@media print {Code: Select all
body {Code: Select all
counter-reset: page;Code: Select all
}Code: Select all
.page_footer {Code: Select all
counter-increment: page;Code: Select all
}Code: Select all
.page_number::after {Code: Select all
content: "Page " counter(page);Code: Select all
}Code: Select all
}Seitenzahlen werden wiederholt oder übersprungen
CSS-Zähler zählen Elemente, nicht gedruckte Seiten
Unzuverlässig
Versuch 4 – JavaScript vor dem Drucken
Code: Select all
window.onbeforeprint = () => {Code: Select all
const totalPages = Math.ceil(Code: Select all
document.body.scrollHeight / window.innerHeightCode: Select all
);Code: Select all
document.querySelector(".page_number").textContent =Code: Select all
`Page 1 of ${totalPages}`;Code: Select all
};JS berechnet 6 Seiten
Druckvorschau zeigt 9 Seiten
Browser-Paginierung ≠ DOM-Höhe
Zahlen falsch
Versuch 5 – Paged.js
Paged.js funktioniert korrekt in Chrome, aber:
Erfordert zusätzliche CSS-Hacks für Firefox
Erhöht die Komplexität
Kein wirklich nativer Browserdruck
Frage
Gibt es eine native Möglichkeit, Folgendes zuverlässig anzuzeigen:
Seite />Firefox ist der einzige Browser mit vollständiger CSS-Paged-Media-Unterstützung
Chromium-Browser können Seite />Windows / macOS
Nativer Browserdruck (Strg + P)
Was ich suche
Bestätigung von Browsereinschränkungen oder
Eine bewährte browserübergreifende Problemumgehung
Offizielle Spezifikationen/Browserfehler willkommen
Mobile version