Paginieren eines HTML-Dokuments zum Drucken mit WebKit-basierten Browsern

8

Der Internet Explorer verfügt über eine Druckvorlage -Engine , wo ich DEVICERECT element verwenden kann, um eine physische Seite darzustellen, und dann LAYOUTRECT element als rechteckige Ansicht verwenden, um das HTML-Dokument in die Seite zu leiten und die Seitennumerierung zu steuern. Dies verhindert, dass Zeilen in der Mitte zwischen benachbarten Seiten abgeschnitten werden. Dieser Mechanismus wird im Detail hier beschrieben.

Bietet WebKit eine ähnliche Funktion? Was macht PhantomJS konkret? Ich suche nach etwas, das erlauben würde, ein existierendes HTML-Dokument zu paginieren, das keine vordefinierten Seitenumbrüche hat, und es paginiert als ein neues transformiertes HTML- oder PDF-Dokument anzusehen, ohne dass Zeilen in der Mitte abgeschnitten werden.

>     
Noseratio 08.10.2013, 13:29
quelle

2 Antworten

11

Die Browser-Engine sollte sich um alles kümmern und Sie können es mit einem Stylesheet für media="print" unterstützen.

Um beispielsweise Seitenumbrüche zu erzwingen, so dass jede Überschrift der Ebene 1 oder 2 ( <h1> oder <h2> ) am Anfang einer neuen Seite platziert wird, verwenden Sie page-break-before :

%Vor%

In Chrome, IE & amp; Opera können Sie Witwen und Waisenkinder , aber es ist noch nicht in WebKit gelandet, also könntest du jetzt

verwenden %Vor%

um Seitenumbrüche in Absätzen zu vermeiden.

Sie können sogar die Ränder für erste, linke und rechte Seiten separat steuern.

Phantoms render() verwendet Stylesheets für Druckmedien, wenn die Ausgabe eine PDF-Datei ist. rasterize.js Beispiel sieht wie eine fertige Drucklösung aus.

    
pawel 18.10.2013, 10:00
quelle
2

Diese Funktion funktioniert gut.

%Vor%

Dadurch wird die gesamte Tabelle in mehrere Abschnitte aufgeteilt ...

Hier ist die Geige

Code aus diesem Artikel und diese Seite .

    
Sridhar R 25.10.2013 06:00
quelle