218
Ich habe ein Projekt, das eine HTML-Tabelle mit vielen Zeilen drucken muss.Umgang mit Seitenumbrüchen beim Drucken einer großen HTML-Tabelle
Mein Problem ist die Art, wie die Tabelle über mehrere Seiten gedruckt wird. Es wird manchmal eine Reihe in zwei Hälften schneiden und es unlesbar machen, weil eine Hälfte auf der blutenden Kante einer Seite steht und der Rest oben auf der nächsten Seite gedruckt wird. Die einzige plausible Lösung, die ich mir vorstellen kann, ist die Verwendung von gestapelten DIVs anstatt eines Tisches und erzwingt Seitenumbrüche, wenn nötig. Aber bevor ich die ganze Änderung durchging, dachte ich, ich könnte hier schon mal fragen.
Auf einer Tangente könnte es sich lohnen, der Tabelle einen '' hinzuzufügen, mit folgendem css' thead {display: table-header-group; } ', um den Tabellenkopf auf allen folgenden Seiten zu drucken (nützlich für lange Datentabellen). –
A
218
+1
+1
+14
5
+2
+0
+0
35
+0
+0
17
+2
+0
+1
9
+0
+0
+0
-2
4
0
1
-1
+0
0
Verwandte Themen
-
1. Stategies zum Drucken mehrseitiger HTML-Tabellen und Umgang mit Seitenumbrüchen
-
2. Drucken von CSS- und Seitenumbrüchen
-
3. Umgang mit großen Bildern
-
4. Logstash: Umgang mit großen Nachrichten
-
5. Umgang mit großen Mengen Telemetrie
-
6. Umgang mit großen Arrays mit array_diff
-
7. Umgang mit großen Datenmenge -Web API
-
8. Umgang mit großen Ausgangswerte von Schritt
-
9. MVVM: Umgang mit sehr großen View-Modellen
-
10. Umgang mit sehr großen Zeichnungsdateien in einer Android-Anwendung
-
11. Umgang mit großen Eingabedaten in einer Java-Anwendung
-
12. Umgang mit einer großen Anzahl von Pins in Bing Maps
-
13. Umgang mit großen Datenmengen in PHP/MySQL
-
14. Umgang mit großen Raster-Datasets in JavaScript
-
15. Umgang mit großen Zahlen in C++?
-
16. Umgang mit großen Dateien in Haskell
-
17. Umgang mit großen Zahlen in Haskell
-
18. Probleme beim Umgang mit Orientierungsänderungen
-
19. Umgang mit großen Datenmengen mit der Google Maps API
-
20. Extrem hohe Speicherbelegung - Umgang mit großen Bildern auf dem iPad?
-
21. Umgang mit großen Bitmaps in OpenGL ES und Android
-
22. Umgang mit "großen Daten Json Anfragen" mit mehreren Ajax Anfragen
-
23. Umgang mit großen Zahlen mit GMP-Stil Leistung in Go
-
24. Umgang mit sehr großen netCDF-Dateien in Python
-
25. Report Services: Steuern von Seitenumbrüchen in einer Tabelle
-
26. Umgang mit großen Datenpunkten in Leaflet und Knoten
-
27. Umgang mit verschiedenen Auflösungen beim Erstellen einer Galerie
-
28. Egit sehr langsam im Umgang mit großen Projekten
-
29. Umgang mit großen Dateiuploads auf ASP.NET Core 1.0
-
30. Umgang mit großen Ergebnismengen in SQL Server Analysis Services
Letzte Frage
-
1. So erhalten Sie Daten (Zeilen) von AWS RDS MySQL-Datenbankinstanz mit AWS SDK für .NET?
-
2. Wie kann ich NUnit3TestAdapter mit .Net Standard 2.0 arbeiten?
-
3. Wie lösche ich eine Datei, deren Pfad in Real Time DB ist?
-
4. Funktion gibt keine zurück, obwohl keine Werte vorhanden sind
-
5. So ändern Sie diese
-
6. nginx redirect:/*/to /*.html (hinzufügen .html zu url)
-
7. wenn getNumericValue zu verwenden ist
-
8. Xamarin Forms Lesen aus Textdatei Ergebnis ist Null
-
9. Wie können Artikel von zwei verschiedenen Arraylists in derselben RecyclerView angezeigt werden?
-
10. Hinzufügen von Gestenerkenner zu SKShapeNode Swift 4
-
1. Stategies zum Drucken mehrseitiger HTML-Tabellen und Umgang mit Seitenumbrüchen
-
2. Drucken von CSS- und Seitenumbrüchen
-
3. Umgang mit großen Bildern
-
4. Logstash: Umgang mit großen Nachrichten
-
5. Umgang mit großen Mengen Telemetrie
-
6. Umgang mit großen Arrays mit array_diff
-
7. Umgang mit großen Datenmenge -Web API
-
8. Umgang mit großen Ausgangswerte von Schritt
-
9. MVVM: Umgang mit sehr großen View-Modellen
-
10. Umgang mit sehr großen Zeichnungsdateien in einer Android-Anwendung
Antwort
Quelle
2009-11-19 14:31:42
Dies funktioniert nicht in allen Browsern. Es scheint in FireFox 3.6 Mac OS zu funktionieren. – daustin777
Leider scheint es nicht –
in FF4 @ W7 arbeitet Dies scheitert auch in WebKit-Browser (zB Safari und Chrome.) –
diese CSS-Eigenschaften verwenden:
Zum Beispiel:
via
Quelle
2009-11-19 14:26:00 marcgg
Es funktioniert in Tabellenzeilen? –
Ich bin mir nicht sicher, du musst das überprüfen. Wenn nicht, aufgeteilt in verschiedene Arrays und trennen Sie die Felder durch einen leeren div – marcgg
(oder auf dem „Tisch“ Element) – marcgg
Hinweis: bei Verwendung des page-break-after: immer für den Tag setzen erstellt einen Seitenumbruch nach dem letzten Bit der Tabelle und erstellt am Ende des Tages eine vollständig leere Seite Zeit! Um dies zu beheben, ändern Sie es einfach in page-break-after: auto. Es wird korrekt brechen und keine zusätzliche leere Seite erstellen.
Quelle
2011-10-14 05:07:46
Vielen Dank! Es ist das einzige, was funktioniert hat! – Maria
Funktioniert für mich auf Chrome und ist eine nette einfache CSS-Lösung. – Ryan
Ausbau von Sinan Unur Lösung:
Es scheint, dass page-break-inside: in einigen Browsern vermeiden nur in Betracht für Blockelemente genommen wird, nicht für die Zelle, Tabelle, Zeile weder Inline-Block.
Wenn Sie versuchen, anzuzeigen: Blockieren Sie das TR-Tag und verwenden Sie dort page-break-inside: vermeiden, es funktioniert, aber verwirrt mit Ihrem Tabellenlayout.
Quelle
2013-09-11 14:03:43 vicenteherrera
Hier ist eine einfache Möglichkeit, die divs dynamisch mit jquery hinzuzufügen: '$ (document) .ready (function() {$ ("table tbody th, Tabelle tbody td") wrapInner ("
");.});' –Danke @ Chrisbloom7, das kann sehr nützlich sein! ;-) – vicenteherrera
Danke an sinan ürün, vicenteherrera und Chrisbloom7. Ich habe die Kombination Ihrer Antworten angewendet und es funktioniert jetzt! –
Keine der Antworten hier funktionierte für mich in Chrome. AAverin auf GitHub hat some useful Javascript for this purpose erstellt und dies ist für mich:
Fügen Sie einfach die js, um Ihren Code und fügen Sie die Klasse ‚splitForPrint‘ auf den Tisch, und es wird die Tabelle in mehreren Seiten und fügen Sie den Tabellenkopf auf jeden ordentlich aufgeteilt Seite.
Quelle
2013-11-15 16:25:21 MDave
Haben Sie eine Probe, wie Sie dies anwenden? Ich habe versucht, meine Tabelle className als "splitForPrint" zuweisen, aber in der JS ist nirgends die Referenz des Elements mit dem Klassennamen 'splitForPrint'. Nur der Teil, wo 'var splitClassName = 'splitForPrint';' aber das ist es. –
Wurde abgelehnt, weil das Skript, mit dem Sie verlinkt sind, das Problem des OP nicht löst, ohne dass Sie sich dabei viel Mühe gegeben haben, und Sie haben keine Beispiele dafür geliefert, wie man das machen könnte. –
funktioniert nicht auf Chrome V39 auf Mac – sirjay
Die akzeptierte Antwort nicht in allen Browsern für mich arbeiten, aber folgende CSS hat bei mir funktioniert:
Die HTML-Struktur war:
In meinem Fall gab es einige zusätzliche Probleme mit der
thead tr
, aber dies löste das ursprüngliche Problem, die Tabellenzeilen vor dem Brechen zu halten.Wegen der Kopf Probleme, landete ich schließlich oben mit:
dies nicht Reihen verhindern, brechen; nur der Inhalt jeder Zelle.
Quelle
2015-04-01 19:20:14
Ich habe vor kurzem dieses Problem mit einer guten Lösung lösen.
Css:
Js:
wirkt wie ein Zauber!
Quelle
2015-06-30 15:25:53
Ich überprüfte viele Lösungen und jeder funktionierte nicht gut.
Also habe ich versucht, einen kleinen Trick und es funktioniert:
tfoot mit Stil:
position: fixed; bottom: 0px;
am unteren Rand der letzten Seite platziert wird, aber wenn Fußzeile zu hoch ist es von Inhalt von Tabelle überlappt.tfoot mit nur:
display: table-footer-group;
nicht überlappt wird, ist aber nicht auf der Unterseite der letzten Seite ...die beiden tfoot Lassen setzen:
One reserviert Platz auf nichtletzten Seiten, Platziert zweitens in Ihrer Fußzeile.
Quelle
2015-07-28 23:58:08
Ich endete nach @ Vicenteherreras Ansatz, mit einigen Verbesserungen (die möglicherweise Bootstrap 3 spezifisch sind).
Grundsätzlich; Wir können
tr
s odertd
nicht brechen, weil sie keine Elemente auf Blockebene sind. Also betten wirdiv
s in jeden ein und wenden unserepage-break-*
Regeln gegen diediv
an. Zweitens; Wir fügen am oberen Ende jedes dieser divs etwas Polsterung hinzu, um alle Styling-Artefakte zu kompensieren.Die margin und padding Anpassungen waren notwendig, eine Art von Jitter zu kompensieren, die eingeführt wurde (durch meine Vermutung - von Bootstrap). Ich bin mir nicht sicher, ob ich eine neue Lösung aus den anderen Antworten auf diese Frage präsentiere, aber ich denke, das wird vielleicht jemandem helfen.
Quelle
2016-06-22 17:15:32 Aaron
Ich habe alle oben genannten Vorschläge ausprobiert und fand einfache und funktionierende Cross-Browser-Lösung für dieses Problem. Für diese Lösung sind keine Stile oder Seitenumbrüche erforderlich. Für die Lösung sollte das Format der Tabelle wie:
Above-Format getestet und arbeitet in Quer Browsern
Quelle
2017-03-13 06:42:30
hat nicht für Chrome (mindestens) funktioniert – AriWais
Nun Jungs ... Die meisten der Lösungen hier oben hat für nicht funktioniert. Das ist also, wie die Dinge für mich gearbeitet ..
HTML
Der erste Satz des Kopfes als Dummy eines verwendet wird, so dass es keine fehlende obere Grenze im zweiten Kopf sein wird (dh original Kopf) während Seitenumbruch.
Quelle
2017-07-06 07:41:53 Aneesh
Verwandte Themen