2010-07-14 4 views
5

Ich habe gelesen Landscape printing from HTML, aber mein Problem ist spezifischer. Und bevor ich eine Niederlage kassiere und eine andere Karriere in Betracht ziehe, dachte ich, ich würde hier posten.Landschaftsdruck von IE8

Dies ist meine Situation:

Ich bin eine Stundenplananzeige und Druckprogramm in HTML zu schreiben. Der Benutzer klickt auf verschiedene Optionen wie Raum, Datum usw. Anschließend wird ein AJAX-Aufruf durchgeführt, um die Daten abzurufen und die Stundenplanblöcke werden mittels Javascript absolut positioniert. Die Breite des Stundenplans ist mehr als die Höhe des Stundenplans. Also muss ich im Querformat drucken, um die Größe auf der Seite zu maximieren.

Erstens, @media print{@page {size: landscape}} einfach nur funktioniert unter keinen Umständen, ich habe es versucht.

Das funktioniert so: filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);.

Ich habe versucht, die CSS ImageTransform auf die HTML- oder BODY-Elemente anzuwenden, mit unterschiedlichen Ergebnissen.

Bei Anwendung auf das HTML-Element scheint es, als ob die Seite als Hochformat gerendert wird (dies ist die Standardeinstellung für Benutzer in meiner Organisation), und dann um 90 Grad gedreht. Das hilft mir natürlich nicht.

Wenn zum Körper Elemente angelegt, funktioniert alles, außer für Elemente, die entweder relativ oder absolut positioniert (was immer noch erscheinen Portrait) sind. Ich kann die absolute Positionierung nicht aufgeben, ohne von Grund auf neu zu schreiben, was ich nicht den Luxus habe.

Was soll ich tun?

+0

Was hast du gemacht? – misterManSam

+2

Sie könnten ein PDF für jeden Stundenplan bereitstellen. Z.B. siehe hier: http://stackoverflow.com/questions/3953821/printing-landscape-html-pdf-using-abcpdf – Kerstomaat

+0

PDF ist für den Druck von Dokumenten gemacht ... HTML ist nicht. –

Antwort

0

Aufgrund der Macken in IE8 müssen Sie den Filter (Filter: progid: DXImageTransform.Microsoft.BasicImage (Rotation = 3);) auf jedes Element, das absolut positioniert ist, erneut anwenden.

+1

Ich werde die Antwort akzeptieren, wie es offensichtlich logisch scheint, dass dies funktionieren würde . Aber ich habe keine Möglichkeit, das auf der ursprünglichen Software zu testen, wie ich die Frage vor vier Jahren stellte. –

+0

Ja, ich weiß, es ist ein bisschen spät! Bit ist gerade über dieses Thema gestolpert und dachte, ich würde es für jeden anderen, der das gleiche Problem hat, beantworten ... Wir müssen IE8 immer noch bei der Firma unterstützen, die ich für unsere E-Commerce-Site arbeite. – Sutty1000