Christopher Reitz: Breite Tabellen drucken im IE

Hallo,
ich habe ein Problem und bin mit meinem Latein leider am Ende, aber vielleicht kann mir ja jemand ein paar Tipps geben.

Also...
ich versuche für unsere Webanwendung eine schöne Druckansicht zu erstellen. Dafür habe ich eine eigene CSS-Datei print.css erstellt, welche unnötige Seitenelemente (gr. Header Grafik, etc) ausblendet und das Layout für den Druck minimalisiert und mit media=print eingebunden wurde.
Die Seite besteht aus einer 760px breiten Tabelle, welche auf den meisten Seiten ziemlich vollgestopft mit Formular Elementen ist.
Der Netscape schafft es die Tabelle beim drucken etwas zusammen zu schieben, damit alles auf das Papier kommt. Der IE ist da leider nicht so intelligent und schneidet einen Teil an der rechten Seite einfach ab.
Das ganze liegt wohl daran, dass der Netscape beim Drucken das Feature "Größe ändern" bietet, welche standardmäßig auf "Größe anpassen" steht, was den von mir gewünschten Effekt mit sich bringt. Der IE kann das scheinbar nicht(?).

Damit ihr euch das besser vorstellen könnt, habe ich Screenshots der Druckvorschau im jeweiligen Browser gemacht:

Netscape 7.1:
http://www.alcedis.com/cre/drucken_ns.gif

IE 6.0:
http://www.alcedis.com/cre/drucken_ie.gif

Weiß jemand eine Möglichkeit wie ich den IE dazu bewege mir das genauso sauber auszudrucken wie der Netscape, also das nichts seitlich abgeschnitten wird? Und das möglichst ohne an den Browsereinstellungen zu tweaken, dass kann man nämlich vom User nicht erwarten. Oder ist da nichts zu machen und ich muss mich damit abfinden, dass der IE hier einfach wieder mal nicht mitkommt...?

Viele Grüße,
Christopher Reitz

Alcedis GmbH

  1. Hallo,

    Die Seite besteht aus einer 760px breiten Tabelle

    Das duerfte das Problem sein.
    Verzichte auf die Breitenangabe und ueberlasse es dem Browser.

    Gemaess meinen Tests http://www.tiptom.ch/tests/druck/
    schneiden viele Browser bei 600px ab, d.h. mehr hat gar nicht Platz.

    Natuerlich sollten auch die einzelnen Zellen der Tabelle
    keine extrem langen Woerter enthalten, die dann eine
    gewisse Breite erzwingen.

    Und mit der Schriftgroesse koenntest Du auch noch ein wenig rumspielen.
    Versuchs z.B. mal mit font-size:0.9em oder font-size:11pt

    http://www.alcedis.com/cre/drucken_ns.gif
    http://www.alcedis.com/cre/drucken_ie.gif

    </faq/#Q-19>

    Auf die Druck-Vorschau ist nicht 100% Verlass.

    Es war hilfreich, dass Du die Screenshots online gestellt hast.
    Aber fuer das tatsaechliche Resultat sollte man meiner Erfahrung
    nach die Seiten tatsaechlich auf Papier ausdrucken.

    Gruesse,

    Thomas

    --
    Bitte keine Mails mit Fachfragen - dafuer gibt es das Forum!
    1. Verzichte auf die Breitenangabe und ueberlasse es dem Browser.

      Wenn ich das Width-Attribut aus der Rahmentabelle entferne ist das ganze Layout sehr unruhig und die Breite der Anwendung (es ist keine normale Website, sondern eine webbassierte Anwendung zur dokumentation medizinischer Patientendaten) verändert sich ständig. Es muss also in der Breite abgeriegelt werden, ausserdem ist der Ausdruck danach immer noch nicht besser.

      Gemaess meinen Tests http://www.tiptom.ch/tests/druck/
      schneiden viele Browser bei 600px ab, d.h. mehr hat gar nicht Platz.

      Bei so einem Bild ja, aber in meinem Fall ist es ja möglich, der Mozilla schafft es ja!

      Natuerlich sollten auch die einzelnen Zellen der Tabelle
      keine extrem langen Woerter enthalten, die dann eine
      gewisse Breite erzwingen.

      Auf sowas solche Dinge kann leider keine Rücksicht genommen werden, da der ganze Content von unserer Fachabteilung vorgegeben wird, wird sind nur für die Programmierung zuständig.

      Und mit der Schriftgroesse koenntest Du auch noch ein wenig rumspielen.
      Versuchs z.B. mal mit font-size:0.9em oder font-size:11pt

      11? Die font-size steht schon auf 8pt für den Druck.

      </faq/#Q-19>

      Sorry, hatte ich erst später gefunden die FAQ.

      Auf die Druck-Vorschau ist nicht 100% Verlass.

      Es war hilfreich, dass Du die Screenshots online gestellt hast.
      Aber fuer das tatsaechliche Resultat sollte man meiner Erfahrung
      nach die Seiten tatsaechlich auf Papier ausdrucken.

      Es entspricht aber dem was am Drucker raus kommt, hab schon desöfteren richtig gedruckt.

      1. Hallo Christopher,

        Verzichte auf die Breitenangabe und ueberlasse es dem Browser.

        Wenn ich das Width-Attribut aus der Rahmentabelle entferne ist das ganze Layout sehr unruhig und die Breite der Anwendung [...] verändert sich ständig.

        Ich meinte, dass Du im Stylesheet fuer's Medium "print" auf
        die fixe Breitenangabe verzichten koenntest.

        Wenn Du am Bildschirm unbedingt feste Breiten willst,
        kannst Du das ja im "screen" CSS angeben.

        Und manchmal muss man halt Prioritaeten setzen.
        Mir persoenlich waere Funktion (inkl. Druckbarkeit)
        viel wichtiger als "ruhiges Layout".
        Aber das ist Ansichts- und Geschmackssache.

        Bei so einem Bild ja, aber in meinem Fall ist es ja möglich, der Mozilla schafft es ja!

        Ja, Mozilla (hier 1.5/Linux) verkleinert tatsaechlich den ganzen Seiteninhalt.
        Und dies offenbar unabhaengig von der Option
        "Resize large images to fit in the browser window"
        die bei mir scheinbar nichts bewirkt.

        11? Die font-size steht schon auf 8pt für den Druck.

        Da ist wohl nichts mehr zu holen... ;-(

        [Druckvorschau != tatsaechlicher Audruck]
        Es entspricht aber dem was am Drucker raus kommt, hab schon desöfteren richtig gedruckt.

        OK, dann ist ja gut.

        Freundliche Gruesse,

        Thomas

        1. Ich meinte, dass Du im Stylesheet fuer's Medium "print" auf
          die fixe Breitenangabe verzichten koenntest.

          Wenn Du am Bildschirm unbedingt feste Breiten willst,
          kannst Du das ja im "screen" CSS angeben.

          Thanks!! Auf die Idee bin ich jetzt noch gar nicht gekommen, da wir die Table Eigenschaften nicht via CSS verwalten sondern über Config Variablen (wir benutzen die Smarty Template Engine). War auch irrtümlicherweise der Meinung, dass es nicht möglich ist die Width Angabe bei Tabellen via CSS anzugeben (Warum auch immer..). Hatte schonmal versucht davon wegzukommen und die Tabellen mit CSS Klassen zu steuern, aber da gab es Probleme, weil Mozilla und IE da sehr unterschiedlich auf diverse Border Angaben usw reagiert haben. Und wir sind hier immer so in einer Zwickmühle, laut Anforderungen reicht es zwar für den IE zu optimieren, aber wir Entwickler benutzen fast alle ausschließlich Mozilla bzw Netscape und da ist es selbstverständlich, dass es auch da immer 100% passen soll.

          Ich steuere jetzt nur mal die Breite der Rahmentabelle über eine CSS Klasse und setze sie in der print.css auf 600px runter und siehe da... alles sitzt, super!

          Jetzt kann ich Feierabend machen, das Problem wollte ich heute noch lösen :)

          Viele Grüße & schönes Wochenende,
          Christopher Reitz

        2. Hallo.

          11? Die font-size steht schon auf 8pt für den Druck.

          Da ist wohl nichts mehr zu holen... ;-(

          Meist wohl auch nichts mehr zu lesen.
          MfG, at