Olaf Borkmann: Ausdrucken von formatierten HTML-Seiten in Java

Hallo,

ich habe folgendes Problem zu lösen:

Ich möchte formatierte HTML-Dateien (z.B. Rechnungen) direkt auf einem Drucker ausgeben. Dazu sollte der Anwender im Browser nur noch seine Rechnungsdatensätze und ein entsprechendes Formular auswählen. Danach einen Print-Button drücken. Nach der anzeige des Standard Druckdialogs sollen die Daten dann ohne sie vorher im Browser anzuzeigen auf dem entsprechenden Drucker ausgegeben werden. Die generierte HTML-Datei muss an ein Java-Objekt zum ausdrucken übergeben werden. Hat jemand eine Idee wie soetwas funktioniert. Ich habe in diesem Forum auch schon von dem Programm SmartPrint gelesen und dies auch schon ausprobiert. Es lässt jedoch kein interaktives Drucken zu (korrigiert mich bitte wenn ich da falsch liege).

Es wäte toll wenn mir jemand helfen könnte.
Vielen Dank im vorraus,

Olaf

  1. Hallo

    Du willst mit Java drucken, hab ich das richtig verstanden?

    Also wenn das drucken dein Problem ist ich habe was auf Papier wie man einen Drucker unter Java zu drucken bringt.

    Aber soweit ich weiß kann man mit Java nur in Bildschirmauflösung drucken(72dpi).

    1. Hallo

      Du willst mit Java drucken, hab ich das richtig verstanden?

      Also wenn das drucken dein Problem ist ich habe was auf Papier wie man einen Drucker unter Java zu drucken bringt.

      Aber soweit ich weiß kann man mit Java nur in Bildschirmauflösung drucken(72dpi).

      Hi Raphael,

      das eigentliche drucken in Java ist nicht das Problem. Mein Problem ist wie bekomme ich die HTML Seite (so wie sie der Browser anzeigen wuerde) auf's Papier. Ich hatte mir schon überlegt ob man eine Instanz von dem aktuell offenen Web-Browser erzeugt und dann die Drucken Funktion anspricht (dies geht ja wohl mit dem JavaScript-Befehl self.print()). Allerdings darf der Browser nicht angezeigt werden.

      Gruss Olaf

      1. Hallo

        Da gibt‚s doch den HTMLEdiorKit in Swing damit kann man zumindest HTML-Siten darstellen, vielleicht kann man den noch für anderen Sachen benutzten.

        Ansonsten weiß ich auch nicht weiter.

        tschau

  2. Hi Olaf,

    wenn du bereit bist, auf Java zu verzichten [was eine gewisse Erleichterung sein dürfte ;-)], kannst du ein unsichtbaren Frame in deine Webseite definieren, wo die auszudruckende Webseite aufgebaut wird, und woraus der Druck angestoßen wird. Du machst also ein Frameset, mit zwei Frames. Der eine Frame füllt den gesamten Browser, der zweite hat eine Höhe (oder Breite) von "0".

    Der Benutzer wählt seine Daten und Formular im sichtbaren Frame aus, und klickt auf "Drucken". Der "Drucken"-Button ist in Wirklichkeit ein Submit-Button, der die ausgewählten Daten an den Server überträgt. Als target sollte der unsichtbare Frame definiert sein. Der unsichtbare Frame wird dann von einer entsprechend aufbereiteten Seite geflutet, der sich mit onload=self.print() automatisch ausdruckt.

    Wäre das was?
    Ulf