Ich verwende ein separates Style-Sheet für den Druck. Ist es möglich, den rechten und linken Rand in der Formatvorlage festzulegen, die den Druckrand (d.h. den Rand auf dem Papier) bestimmt.
Vielen Dank!
Sie sollten "cm" oder "mm" als Einheit verwenden, wenn Sie für den Druck angeben. Die Verwendung von Pixeln führt dazu, dass der Browser es in etwas übersetzt, das dem Aussehen auf dem Bildschirm ähnelt. Die Verwendung von "cm" oder "mm" gewährleistet eine einheitliche Größe auf dem Papier.
body
{
margin: 25mm 25mm 25mm 25mm;
}
Für Schriftgrößen verwenden Sie pt
für das Druckmedium.
Beachten Sie, dass die Einstellung des Randes auf dem Textkörper im CSS-Stil nicht den Rand im Druckertreiber anpasst, der den druckbaren Bereich des Druckers definiert, oder den vom Browser kontrollierten Rand (der bei einigen Browsern in der Druckvorschau einstellbar sein kann)... Es wird nur der Rand auf dem Dokument innerhalb des druckbaren Bereichs eingestellt.
Sie sollten sich auch darüber im Klaren sein, dass IE7++ die Größe automatisch so anpasst, dass sie am besten passt, und dass alles falsch ist, auch wenn Sie cm
oder mm
verwenden. Um dieses Verhalten außer Kraft zu setzen, muss der Benutzer 'Druckvorschau' auswählen und dann die Druckgröße auf 100%
einstellen (Standard ist Shrink To Fit
).
Eine bessere Möglichkeit zur vollständigen Kontrolle der Druckränder ist die Verwendung der Direktive @page
, um den Papierrand zu setzen, der den Rand auf dem Papier außerhalb des HTML-Body-Elements beeinflusst, was normalerweise vom Browser kontrolliert wird. Siehe http://www.w3.org/TR/1998/REC-CSS2-19980512/page.html.
Dies funktioniert derzeit in allen gängigen Browsern außer Safari.
Im Internet Explorer ist der Rand in den Einstellungen für den Druck auf diesen Wert eingestellt, und wenn Sie die Vorschau verwenden, ist dies die Standardeinstellung, aber der Benutzer kann sie in der Vorschau ändern.
@page
{
size: auto; /* auto is the initial value */
/* this affects the margin in the printer settings */
margin: 25mm 25mm 25mm 25mm;
}
body
{
/* this affects the margin on the content before sending to printer */
margin: 0px;
}
Verwandte Antwort: Deaktivieren der Browser-Druckoptionen (Kopf- und Fußzeilen, Ränder) von Seiten
Ich persönlich würde vorschlagen, eine andere Maßeinheit als "Pixel" zu verwenden. Ich glaube nicht, dass Pixel in Bezug auf den Druck viel Relevanz haben; idealerweise würde man sie verwenden:
Ich bin sicher, es gibt noch andere, und einen ausgezeichneten Artikel über print-css finden Sie hier: Going to Print, von Eric Meyer.
Wenn Sie die Zielgröße des Papiers kennen, können Sie Ihren Inhalt in einem DIV mit dieser spezifischen Größe platzieren und einen Rand zu diesem DIV hinzufügen, um den Druckrand zu simulieren. Leider glaube ich nicht, dass Sie zusätzliche Kontrolle über die Druckfunktionalität haben, abgesehen von der Anzeige des Druckdialogfelds.