Ich erzeuge ein Dokument aus HTML. Gibt es eine Möglichkeit, die HTML-Seite als eine gedruckte Seite gerendert zu erzwingen?
Ich habe den Großteil der Seite mit den Tags <table>
und <div>
erstellt.
Nicht genau, aber Sie können ein Druck-Stylesheet verwenden:
%Vor%Um Schriftgrößen, Paddings usw. auf physikalische Einheiten wie "pt" (die niemals in einem Bildschirm-Stylesheet verwendet werden sollten) zu setzen, so dass es mehr oder weniger eine A4-Seite ist, wenn es in einem typischen gerendert wird Browser, mit typischen Schriftarten, mit einem folgenden Wind. Nichts ist garantiert, aber Sie können für den allgemeinen Fall optimieren.
Im Druck müssen Sie sich nicht so viele Gedanken über Schriftgrößeneinstellungen oder dpi-Einstellungen machen, aber Sie können immer noch nicht die Ränder des Browsers oder die tatsächliche Seitengröße (US Letter ist kleiner als A4) kontrollieren eine gute Menge wiggle Raum und testen Sie auf den wichtigsten Browsern.
Nein. Sie können nicht die Zoomstufe des Benutzers, die Druckereinstellungen, das Papierformat (verwendet er A4-Papier in Europa oder legal in den USA?) Und all die verschiedenen anderen Dinge, die die Druckerausgabe über HTML beeinflussen, steuern Das Beste, was Sie mit HTML tun können, ist, eine sehr einfache "druckerfreundliche" Seite zu erstellen und den Inhalt kurz zu halten. Alternativ können Sie ein PDF erstellen, mit dem Sie steuern können, wie es gedruckt wird.
Verwenden Sie PDF. Sie können viele Dinge wie Schriftgröße, Schriftart und viele andere Parameter erzwingen, aber jeder Browser kann entscheiden, dass sie sich nicht interessieren und verwenden, was auch immer sie wollen und so Ihre Vorbedingungen oder Entscheidungen verletzen. HTML ist nicht (wiederhole nach mir: ist NICHT) eine Darstellungssprache.
In vielen Fällen wird es meistens funktionieren, aber nichts ist sicher.
Nein, aber Sie können die Druckansicht viel flüssiger gestalten, indem Sie wie oben vorgeschlagen eine spezielle CSS-Datei für Druckmedien verwenden.
Dann könnten Sie zum Beispiel zumindest verhindern, dass sich eine Tabelle über 2 Seiten erstreckt "page-break-before: always;" .
Und schließlich könntest du auch verwenden "display: none;" zu Elementen, die nicht wie Anzeigen, Navigationsleisten, überflüssig sind usw., um die Seite selbst kürzer zu halten (hoffentlich kurz genug für eine einzelne Seite).
Aber keine Garantie.
Sicher. Sie haben ein paar Möglichkeiten:
Nein, es gibt keine Möglichkeit, den Druckertyp oder die Papiergröße zum Zeitpunkt des Renderns des HTML-Codes nicht zu kennen.
Mein einziger Vorschlag wäre, die Druckereigenschaften so einzustellen, dass der Inhalt zum Zeitpunkt des Druckens auf eine Seite skaliert wird.