Problem mit Java Print

Hallo Leute

folgendes . Ich habe ein Programm welches auf einem Websphere Server läuft und die Clients es von dort aus aufrufen.

Wir arbeiten mit JSP´s und Struts (kein Java Swing)

Nun möchte ich eine Druckfunktion einbauen und dachte dieses ganz einfach über javax.print zu machen was jetzt leider Probleme bereitet.

Ich habe es lokal getestet was auch funktionierte ich habe in die JSP einen Button eingefügt mit der Aufschrift Drucken welcher eine ActionKlasse aufgerufen hat und in dieser Action Klasse habe ich den Druck ausgeführt und mittels eines JPrintDialogs einen Auswahldialog für den Drucker zur Verfügung gestellt.

Das hat wunderbar geklappt (aber das Programm habe ich ja auch lokal bei mir ausgeführt). Dann haben wir ausprobiert das Programm von einem anderen Rechner aus auszuführen was auch funktionierte nur leider erschien der Druckauswahldialog bei mir auf dem Rechner mit den Druckern die bei mir im System installiert sind und nicht die des anderen .

Gibt es eine Möglichkeit eine Druckfunktion einzubauen die auf Client Seite arbeitet? Das heisst ich rufe das System vom Server aus auf aber der Dialog erscheint bei mir auf dem Client und hat auch die Drucker die bei mir installiert sind .

Mir fehlt leider völlig der Ansatz und ich bin um jede Hilfe oder jedes Codestück dankbar .

Bitte helft mir

Hallo,

Wir arbeiten mit JSP´s und Struts (kein Java Swing)

also eine Webanwendung; der Client benutzt seinen Browser zum Zugriff.

Gibt es eine Möglichkeit eine Druckfunktion einzubauen die auf
Client Seite arbeitet? Das heisst ich rufe das System vom
Server aus auf aber der Dialog erscheint bei mir auf dem
Client und hat auch die Drucker die bei mir installiert sind.

Das geht schon vom Prinzip her nicht. Erstens kannst du bei Webanwendungen nur auf Anfragen der Clients reagieren und ihnen als Antwort Dokumente zurückschicken, die diese dann interpretieren, zweitens muss beim Client ja nicht einmal irgendeine Java-Laufzeitumgebung installiert sein.

Du könntest das Problem lösen, indem du ein Java-Applet einbindest, das dann auf Client-Seite läuft und die dortigen Drucker ansprechen kann (sofern es die Berechtigungen erhält). Voraussetzung wären installierte JREs + Browserplugins auf der Client-Seite.

Schöner finde ich aber die Lösung, dem Client eine HTML-Seite oder ein generiertes PDF-Dokument zu schicken, das dann einfach über den Browser oder PDF-Viewer ausgedruckt werden kann.

Gruß,

Andreas

Ok das mit den Applets habe ich schonmal gelesen allerdings habe ich versucht mal eines einzubauen und bekomme laufend Fehler :frowning: .

Das mit dem PDF klingt gar nicht so schlecht aber das setzt vorraus das ein PDF Viewer installiert ist richtig ??

Kann ich denn im Programms den PDF Viewer auf der Clientebene aufrufen ?

Also das er quasi das PDF erzeugt und sofort den Viewer startet damit der Benutzer die möglichkeit hat es auszudrucken ?

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Das mit dem PDF klingt gar nicht so schlecht aber das setzt
vorraus das ein PDF Viewer installiert ist richtig??

Richtig, das ist aber sehr viel wahrscheinlicher als ein Java-Plugin.

Kann ich denn im Programms den PDF Viewer auf der Clientebene
aufrufen ?

Jein, du schickst dem Client-Browser das PDF-Dokument (so ähnlich, wie du sonst HTML-Seiten zurückschickst, nur der Content Type ist ein anderer); er entscheidet, was damit zu tun ist, also ob es mit einem PDF-Plugin im Browser dargestellt werden kann, ob ein externen PDF-Viewer aufgerufen wird, ob dem Benutzer ein „Datei speichern unter“ angezeigt wird, etc.

Also das er quasi das PDF erzeugt und sofort den Viewer
startet damit der Benutzer die möglichkeit hat es auszudrucken?

Klar, sobald das PDF beim Benutzer im Viewer geöffnet ist, kann er es ausdrucken (oder es lassen, es speichern, es lesen, …)

Gruß,

Andreas

Jetzt muss ich mal ganz Blöd fragen habe ich einfluss darauf ob der Anwender das Pdf dann im Pdf Viewer angezeigt bekommt oder ob er einen Speichern unter Dialog angezeigt bekommt ?? Kann ich das irgendwie steuern ?

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Jetzt muss ich mal ganz Blöd fragen habe ich einfluss darauf
ob der Anwender das Pdf dann im Pdf Viewer angezeigt bekommt
oder ob er einen Speichern unter Dialog angezeigt bekommt ??
Kann ich das irgendwie steuern ?

Das ist eine Einstellung im Browser und kann vom Server aus nicht gesteuert werden. Wenn dort der MIME-typ für PDF schon mit dem Viewer verbunden ist wird nicht nochmal nachgefragt. Aber der Viewer seinerseits kann ja auch speichern.

Gruß
Torsten

Jetzt muss ich mal ganz Blöd fragen habe ich einfluss darauf
ob der Anwender das Pdf dann im Pdf Viewer angezeigt bekommt
oder ob er einen Speichern unter Dialog angezeigt bekommt ??
Kann ich das irgendwie steuern ?

Nein, kannst du nicht. (Und willst du auch nicht. Oder doch? Dann warum?)
Das ist eine Einstellungssache des Browsers; jedem Benutzer ist es überlassen, seinen Lieblings-PDF-Viewer zu verwenden. (Aber bei allen, die z.B. den Adobe-Reader installiert haben und sich um keine weiteren Einstellungen gekümmert haben, wird das PDF-Dokument automatisch darin geöffnet werden.)

Andreas

Ok danke für die Hilfe ich werde mein Glück versuchen :wink: