Ich habe einen HTML-Bericht, der wegen der vielen Spalten im Querformat gedruckt werden muss. Gibt es eine Möglichkeit, dies zu tun, ohne dass der Benutzer die Dokumenteinstellungen ändern muss?
Und was sind die Optionen unter den Browsern.
In Ihrem CSS können Sie die Eigenschaft @page wie unten gezeigt festlegen.
@media print{@page {size: landscape}}
Die @ Seite ist Teil der CSS 2.1-Spezifikation, dies size
wird jedoch nicht durch die Antwort auf die Frage hervorgehoben. Ist @Page {Größe: Landschaft} veraltet?::
CSS 2.1 gibt das Größenattribut nicht mehr an. Der aktuelle Arbeitsentwurf für das CSS3 Paged Media-Modul spezifiziert ihn (dies ist jedoch nicht Standard oder akzeptiert).
Wie bereits erwähnt, stammt die Größenoption aus dem CSS 3-Spezifikationsentwurf . Theoretisch kann sowohl die Seitengröße als auch die Ausrichtung festgelegt werden, obwohl in meinem Beispiel die Größe weggelassen wird.
Die Unterstützung ist sehr gemischt mit einem Fehlerbericht, der in Firefox abgelegt wurde wurde. Die meisten Browser unterstützen ihn nicht.
Es scheint in IE7 zu funktionieren, aber dies liegt daran, dass IE7 die letzte Auswahl von Quer- oder Hochformat in der Druckvorschau des Benutzers speichert (nur der Browser wird neu gestartet).
Dieser Beitrag werden einige Problemumgehungen mit JavaScript oder ActiveX vorgeschlagen, mit denen Schlüssel an den Browser des Benutzers gesendet werden, obwohl diese nicht ideal sind und auf der Änderung der Sicherheitseinstellungen des Browsers beruhen.
Alternativ können Sie den Inhalt anstelle der Seitenausrichtung drehen. Dies kann erreicht werden, indem ein Stil erstellt und auf den Körper angewendet wird, der diese beiden Linien enthält. Dies hat jedoch auch Nachteile, die viele Ausrichtungs- und Layoutprobleme verursachen.
<style type="text/css" media="print">
.page
{
-webkit-transform: rotate(-90deg);
-moz-transform:rotate(-90deg);
filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
}
</style>
Die letzte Alternative, die ich gefunden habe, besteht darin, eine Querformatversion in einem PDF zu erstellen. Sie können darauf hinweisen, wenn der Benutzer Drucken auswählt, wird das PDF gedruckt. Ich konnte dies jedoch nicht zum automatischen Drucken in IE7 bringen.
<link media="print" rel="Alternate" href="print.pdf">
Zusammenfassend lässt sich sagen, dass es in einigen Browsern mit der Option @page size relativ einfach ist. In vielen Browsern gibt es jedoch keinen sicheren Weg und dies hängt von Ihrem Inhalt und Ihrer Umgebung ab. Dies ist möglicherweise der Grund, warum Google Dokumente eine PDF-Datei erstellt, wenn Drucken ausgewählt ist, und dem Benutzer dann ermöglicht, diese zu öffnen und zu drucken.
@page size
Scheint nicht in allen modernen Browsern zu funktionieren, nur in Firefox. Chrome und Opera ignorieren dies, soweit ich gesehen habe.size: landscape
ist NICHT Teil von CSS2.1, obwohl@page
Regeln sind. Es ist jedoch Teil von CSS3. Versuchen Sie zur Bestätigung, den W3C CSS Validator zu verwenden, und geben Sie@page {size: landscape}
die Ergebnisse ein und vergleichen Sie sie mit "Profil", das auf Stufe 2.1 und Stufe 3 eingestellt ist.Meine Lösung:
Dies funktioniert in
IE
,Firefox
undChrome
quelle
class
Divs im Querformat und nicht auf der gesamten Seite angezeigt werden?Es reicht nicht aus, nur den Seiteninhalt zu drehen. Hier ist ein richtiges CSS, das in den meisten Browsern (Chrome, Firefox, IE9 +) funktioniert.
Setzen Sie zuerst den Text
margin
auf 0, da sonst die Seitenränder größer sind als die im Druckdialog festgelegten. Stellen Sie auch diebackground
Farbe ein, um Seiten zu visualisieren.margin
,border
undbackground
sind verpflichtet , Seiten sichtbar zu machen.padding
muss auf den erforderlichen Druckrand eingestellt werden. Im Druckdialog müssen Sie dieselben Ränder festlegen (in diesem Beispiel 10 mm).Die Größe der A4-Seite beträgt 210 mm x 297 mm. Sie müssen die Druckränder von der Größe abziehen. Und legen Sie die Größe des Seiteninhalts fest:
Ich verwende 276 mm anstelle von 277 mm, da verschiedene Browser die Seiten etwas unterschiedlich skalieren. Einige von ihnen drucken also Inhalte mit einer Höhe von 277 mm auf zwei Seiten. Die zweite Seite ist leer. Es ist sicherer, 276 mm zu verwenden.
Wir brauchen keine
margin
,border
,padding
,background
auf der gedruckten Seite, so entfernen Sie sie:Beachten Sie, dass der Ursprung der Transformation ist
0 0
! Auch der Inhalt von Landschaftsseiten muss um 276 mm nach unten verschoben werden!Auch wenn Sie eine Mischung aus Hoch- und Querformat-Seiten haben, verkleinert der IE die Seiten. Wir beheben dies, indem wir
-ms-zoom
1.665 einstellen . Wenn Sie den Wert auf 1,6666 oder ähnliches einstellen, wird der rechte Rand des Seiteninhalts manchmal abgeschnitten.Wenn Sie brauchen Unterstützung IE8- oder andere alte Browser Sie verwenden können
-webkit-transform
,-moz-transform
,filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3)
. Für ausreichend moderne Browser ist dies jedoch nicht erforderlich.Hier ist eine Testseite:
quelle
Zitiert aus dem CSS-Discuss Wiki
quelle
Versuchen Sie, dies Ihrem CSS hinzuzufügen:
quelle
Die
size
Eigenschaft ist, was Sie wie erwähnt suchen. Sie können Folgendes verwenden, um sowohl die Ausrichtung als auch die Größe Ihrer Seite beim Drucken festzulegen:Hier ist ein Link zur @ page-Dokumentation .
quelle
.css
Datei gespeichert werden. Wenn sie inline ist, hat die Standard-Boostrap-Deklaration (size: a3
) Vorrang.Möglicherweise können Sie die CSS 2 @ page-Regel verwenden , mit der Sie die Eigenschaft 'size' auf Querformat festlegen können .
quelle
Sie können auch den nicht standardmäßigen Nur-IE-CSS-Attribut- Schreibmodus verwenden
quelle
funktioniert nicht in Firefox 16.0.2, aber es funktioniert in Chrome
quelle
Ich habe ein leeres MS-Dokument mit Querformat erstellt und es dann im Editor geöffnet. Kopierte das Folgende und fügte es in meine HTML-Seite ein
Die Druckvorschau zeigt die Seiten im Querformat. Dies scheint auf IE und Chrome gut zu funktionieren, nicht auf FF getestet.
quelle
Ich habe einmal versucht, dieses Problem zu lösen, aber alle meine Nachforschungen haben mich zu ActiveX-Steuerelementen / Plug-Ins geführt. Es gibt keinen Trick, den die Browser (jedenfalls vor 3 Jahren) erlaubt haben, Druckeinstellungen (Anzahl der Kopien, Papiergröße) zu ändern.
Ich habe mich bemüht, den Benutzer sorgfältig zu warnen, dass er "Landschaft" auswählen muss, wenn der Druckdialog des Browsers angezeigt wird. Ich habe auch eine "Druckvorschau" -Seite erstellt, die viel besser funktioniert als die von IE6! Unsere Anwendung hatte in einigen Berichten sehr breite Datentabellen, und die Druckvorschau machte den Benutzern klar, wann die Tabelle vom rechten Rand des Papiers verschüttet werden würde (da IE6 auch das Drucken auf 2 Blatt nicht bewältigen konnte).
Und ja, die Leute benutzen immer noch IE6.
quelle
Wenn Sie möchten, dass dieser Stil auf eine Tabelle angewendet wird, erstellen Sie ein div-Tag mit dieser Stilklasse, fügen Sie das Tabellen-Tag in dieses div-Tag ein und schließen Sie das div-Tag am Ende.
Diese Tabelle wird nur im Querformat gedruckt und alle anderen Seiten werden nur im Hochformat gedruckt. Das Problem ist jedoch, dass wenn die Tabellengröße größer als die Seitenbreite ist, einige der Zeilen verloren gehen und manchmal auch Überschriften fehlen. Achtung.
Haben Sie einen guten Tag.
Vielen Dank, Naveen Mettapally.
quelle
Ich habe Denis 'Antwort ausprobiert und einige Probleme festgestellt (Hochformat-Seiten wurden nach dem Durchsuchen von Querformat-Seiten nicht richtig gedruckt). Hier ist meine Lösung:
quelle
Das hat auch bei mir funktioniert:
quelle
Wenn Sie vor dem Drucken Querformat auf dem Bildschirm anzeigen und drucken möchten, können Sie in Ihrem CSS die Breite auf 900 Pixel und die Höhe auf 612 Pixel einstellen.
OP erwähnte die Größe A4 nicht. Ich nehme an, es ist die Buchstabengröße in meinen Zahlen oben.
quelle
Sie können Folgendes versuchen:
quelle