Alex: Druck-Popup -> Inhalt einfügen

Hallo,

ich bin langsam am verzweifeln und Google spuckt auch nichts gescheites mehr aus.

Ich bin gerade an einem Administrationstool am arbeiten.
Jetzt erstellt mir das tool eine Abrechnung. Diese soll natürlich auch kompfortabel ausgedruckt werden können. Ich habe mir gedacht, dass ich also am besten nur die Abrechnung in ein Popup schreibe und es dann ohne die ganze NAvigation... gedruckt werden kann.

1. Gibts es da vielleicht noch eine einfachere/bessere lösung? (Es muss nicht massentauglich sein, die paar leute die darauf Zugriff haben haben Javascript aktiviert)

2. Hier mein eigentliches Problem:
wenn ich das Popup volgendermaßen aufrufe:
<button onClick="javascript:
if (abrechnung_window = window.open('abrechnung.html','', 'width=600px, height=700px, scrollbars=auto'))
{
abrechnung_window.document.body.innerHTML = '<div align=right><img src=http://www.zillertal-aktiv.at/mail_vorlage/logo.gif border=0></div><br>' + document.getElementById('abrechnung').innerHTML;
abrechnung_window.document.title = 'Abrechnung vom <?=date("d.m.Y");?>'; }">
Drucken
</button>

Sehe ich ganz kurz meine eingefügte Abrechnung aber wenn er dann fertig ist mit laden kommt nur die HTML Seite die ich im Popup aufrufe (abrechnung.html) und nicht mehr der Inhalt den ich reinschreiben will.
Diese HTML seite sollte eigentlich nur das Template für die Seite sein.

Ich habe es auf diese Weise versucht, weil es vorher (als ich keine abrechnung.html eingebunden habe) Probleme bei den Style angaben gab. -> Firefox hat sie nicht richtig ausgefürt als ich den Inhalt eingefügt habe.

Wenn ich versuche etwas mit document.write() in die Seite einzufügen lädt diese ewig...

Hoffe ich habe mich einigermaßen klar ausgedrückt und ihr könnt mir helfen.
Vielen Dank,
Alex

  1. Moin,

    » 1. Gibts es da vielleicht noch eine einfachere/bessere lösung? (Es muss nicht massentauglich sein, die paar leute die darauf Zugriff haben haben Javascript aktiviert)

    Ja: Ein CSS für print. In diesem blendest du die für die Druckausgabe nicht relevanten Teile per display:none einfach aus. Zusätzlicher Vorteil: Den Rest kannst du papiergerecht formatieren.

    Wenn man dann auf drucken geht, formatiert der Browser die Seite mittels des CSS für Druck. Meiner Meinung nach die bequemste Lösung.

    Testen kannst du das ganze über die Druckvorschau.

    Gruß

    Stareagle

    1. Hallo,

      danke für deine Antwort. Diese Möglichkeit ist auch nicht schlecht - nur möchte ich dann auch noch etwas im Inhalt ändern und villeicht wäre das Popup dann doch nicht schlecht.
      Ich hoffe ich grige es hin dass der Inhalt da reinkommt.

      Danke
      Alex

      1. danke für deine Antwort. Diese Möglichkeit ist auch nicht schlecht - nur möchte ich dann auch noch etwas im Inhalt ändern und villeicht wäre das Popup dann doch nicht schlecht.

        Eventuell hilft dir dieser Ansatz weiter:
        http://test.anaboe.net/druckvorschau.html

        Siechfred

  2. Hallo Alex,

    ich hab das Ganze vor Ewigkeiten mal so gemacht, um das Popup mit php zu füllen (ja, ich weiß, ist alter Käse, aber funktioniert ;)):

    Möchten Sie Ihre Bestellung noch einmal einsehen? Klicken Sie <a href="#" onclick="showpopup();">hier</a>.
    <script language="javascript" type="text/javascript">
    <!--
    function showpopup() {
    msgWindow=window.open('','Bestellung','width=400,height=600,resizable=yes,scrollbars=yes');
    msgWindow.document.open();
    msgWindow.document.write('<html>');
    msgWindow.document.write('<head>');
    msgWindow.document.write('<title>Ihre Bestellung</title>');
    msgWindow.document.write('<style type="text/css">');
    msgWindow.document.write('<!--');
    msgWindow.document.write('body{font-family:verdana,arial,sans-serif;font-size:12px;background-color:#F2F3F5;}');
    msgWindow.document.write('.button {background-color:#FFFFFF; width:140px; border:1px solid #98A3B5; font-size:11px; color:#000000; cursor:hand;cursor:pointer;}');
    msgWindow.document.write('-->');
    msgWindow.document.write('</style>');
    msgWindow.document.write('</head>');
    msgWindow.document.write('<body>');
    msgWindow.document.write('Sehr geehrter Herr Test,');
    msgWindow.document.write('<br>');
    msgWindow.document.write('Ihre Bestellung wurde erfolgreich ausgeführt.');
    msgWindow.document.write('<br>');
    msgWindow.document.write('Bestellung vom Dienstag, 18. Sept. 2007');
    msgWindow.document.write('<br>');
    msgWindow.document.write('Auftragsnummer: A72-180907-1616');
    [uswusf...]
    msgWindow.document.write('<br>');
    msgWindow.document.write('<form action="#" method="post">');
    msgWindow.document.write('<input type="button" class="button" value="Drucken" onClick="window.print();">');
    msgWindow.document.write('&nbsp;<input type="button" class="button" value="Fenster schließen" onClick="self.close();">');
    msgWindow.document.write('</form>');
    msgWindow.document.write('</body>');
    msgWindow.document.write('</html>');
    msgWindow.document.close();
    }
    //-->
    </script>