webentwicklung-frage-antwort-db.com.de

Legen Sie die Papiergröße des Druckers über CSS fest

Die Standardgröße meines Druckers ist A4, und ich muss mit dem alten Nadeldrucker in der Größe 8.5inx5.5in Gehaltsabzug drucken. Ich habe versucht, jeden Abwicklungsabzug DIV in einer festen Höhe festzulegen.

width: 175.6mm;
height:123.7mm;
margin-left:auto;
margin-right:auto;

Es passt zwar perfekt zum Format der Lohnzettel, aber nach dem Drucken wird das Papier bis zum Ende weitergerollt, da alle Lohnzettel im Gegensatz zu A4 zusammengefügt werden. .__ Und ich möchte keine Änderungen an der Papiergröße des Druckers vornehmen.

@media print 
{
   @page
   {
    size: 8.5in 5.5in;
    size: portrait;
  }
}

die Druckvorschau von Google Chrome zeigt jedoch noch Folgendes:

enter image description here

Es ist tatsächlich möglich, dies zu tun, oder gibt es eine Möglichkeit, den Drucker dazu zu zwingen, den Druckvorgang nach dem Gehaltsabzug zu beenden, um zu verhindern, dass das Papier weiter rollt (was meiner Meinung nach nicht möglich sein sollte).

P.S. Ich verwende nur Google Chrome.

**Aktualisierte:

Ich habe festgestellt, dass sich das Papierformat ändert, nachdem ich "Als PDF speichern" gewählt habe. Wenn ich meinen Standarddrucker wieder auswähle, ist das Papierformat erneut falsch.

13
Irene Ling

vielleicht diese Arbeit.

@media print 
{
   @page
   {
    size: 8.5in 5.5in;
    size: landscape;
  }
}

oder

@media print 
{
   @page
   {
    size: 5.5in 8.5in ;
    size: landscape;
  }
}
6
pixparker

Bei meinem letzten Check wurde @media print von den großen Browsern sehr schlecht unterstützt. Ich hatte ein ähnliches Problem wie Sie und nach wochenlangen Versuchen musste ich aufgeben und in eine serverseitige PDF-Generierungsbibliothek (PDF4NET) gehen. Wenn Sie einen Satz von gedruckten Dokumenten benötigen, glaube ich nicht, dass HTML den Trick ausführen wird. 

4
imjosh

Heute verwende ich Chrome 32.0.1700.107 m

Der W3 CSS3-Standard für Seitengrößen funktioniert mit der Option "SPEICHERN ALS PDF" direkt aus Chrome in der Druckoberfläche. Denken Sie daran, dass die Verwendung eines Druckers in der Druckoberfläche von chrome sehr unterschiedlich ist, da er die Standardgröße des Druckers verwendet. Im Falle der Option SAVE AS PDF nimmt er jedoch die von CSS festgelegte Größe an.

Ich hatte jahrelang Probleme mit verschiedenen Schnittstellen und Durchstimmungslösungen für verschiedene Produkte (zum Beispiel: Generieren von PDFs direkt von einem Server, der in der Verarbeitung zu schwer war und im Code zu unordentlich war, oder den Benutzern mitzuteilen, dass sie die Windows-Druckschnittstelle verwenden sollen usw.). Dies ist eine großartige Lösung für mich und scheint definitiv zu sein! 

Jetzt ist es möglich, PDFs mit dem richtigen Papierformat zu erstellen, indem nur CSS3 in der Site verwendet wird und keine Drittanbieter-Software oder andere Tricks erforderlich sind.

In Ihrem Fall ist es die beste Lösung, einfach das im Drucker konfigurierte Standardpapierformat zu ändern. Dies wurde den Benutzern mit einem kleinen gleitenden Div empfohlen, der den Rat gab und für den Druck verborgen ist. Da Sie jedoch "keine Änderungen an der Papiergröße des Druckers vornehmen möchten", müssen Sie, wenn Sie keine Änderungen auf der Serverseite vornehmen möchten, einen weiteren Schritt von der Person aus ausführen: 1. Speichern Sie zunächst das PDF und senden Sie es aus dem soeben erstellten PDF an den Drucker.

4
DavidTaubmann

Es hat für mich genauso funktioniert

@page {
  size: <%= @size_card[0] %>cm  <%= @size_card[1] %>cm;
  margin: 0;
}

Ich habe versucht, wie Sie sagen, mit einer zweiten Größe für "Querformat" oder "Hochformat", aber es überschreibt das letzte, so dass es nicht nötig ist, da Sie bereits sagen, was Höhe und Breite ist.

1
Ramon Marques

Ich denke, der Browser hat eingeschränkten Zugriff auf die Einstellung des Druckers. Er wird sowohl vom Betriebssystem als auch vom Druckertreiber ausgeführt (indem Sie die Papierzufuhr als Traktorzuführung oder die Ränder als benutzerdefiniert auswählen).

1
RAJMOHAN