Das Notes Forum

Domino 9 und frühere Versionen => ND9: Entwicklung => Thema gestartet von: thomas_k am 18.09.17 - 11:35:15

Titel: Geöffnete XPage mithilfe einer Druckmaske ausdrucken
Beitrag von: thomas_k am 18.09.17 - 11:35:15
Hallo zusammen!

Ich stehe wieder mal vor einem Problem und würde mich freuen, wenn mir jemand weiterhelfen kann.

In einer XPage möchte ich durch einen Klick auf einen Button diese XPage ausdrucken können. Jedoch nicht so, wie ich sie vor mir habe, sondern nur auf bestimmte wichtige Daten reduziert.
Hierfür habe ich schon eine eigene XPage erstellt, welche meine Druckmaske darstellen soll. Diese XPage wird beim onClick des Buttons aufgerufen, beim onClientLoad der Druckmaske wird eben diese mit "window.print()". ausgedruckt.
Das funktioniert soweit ganz gut, jedoch bleibt dann natürlich die Druckmaske geöffnet und meine ursprüngliche XPage ist geschlossen.
Das Ziel wäre logischerweise, dass nach dem Klick auf den Button wieder die erste XPage geöffnet ist, damit der User wieder normal weiterarbeiten kann.

Gibt's hierfür Tipps wie ich das realisieren kann?

LG
Titel: Re: Geöffnete XPage mithilfe einer Druckmaske ausdrucken
Beitrag von: Sven Hasselbach am 18.09.17 - 13:56:57
Eine typische Lösung hierfür wäre das öffnen eines zweiten Fensters, dass den Druckvorgang dann vornimmt.
Eine andere Herangehensweise wäre die Definition von CSS Styles mit @media-Querys für das Drucken:  https://www.w3schools.com/css/css3_mediaqueries.asp (https://www.w3schools.com/css/css3_mediaqueries.asp). Dann braucht man keine zweite XPage dafür erstellen.
Titel: Re: Geöffnete XPage mithilfe einer Druckmaske ausdrucken
Beitrag von: thomas_k am 18.09.17 - 14:06:01
Ich habs zurzeit schon so realisiert, dass ein zweites Fenster erstellt wird. Beim Öffnen dieses Fensters wird beim onClientLoad "window.print()" ausgeführt, dieser Ausdruck funktioniert auch.
Jedoch soll das zweite Fenster dann sofort wieder geschlossen werden und das erste soll dann wieder sichtbar sein
Titel: Re: Geöffnete XPage mithilfe einer Druckmaske ausdrucken
Beitrag von: Sven Hasselbach am 18.09.17 - 16:28:26
Mal ein window.close() im geöffneten Fenster probiert?
Ansonsten ist das Thema @media die wohl beste Option.
Titel: Re: Geöffnete XPage mithilfe einer Druckmaske ausdrucken
Beitrag von: thomas_k am 18.09.17 - 16:50:01
Ja, ich habe schon versucht, beim onClientLoad direkt nach dem "window.print()" ein "window.close()" einzufügen, jedoch bringt das nichts.
Wahrscheinlich gibt's eine bessere Stelle bzw einen besseren Zeitpunkt um den Close-Befehl auszuführen.
Leider hab ich das noch nicht rausgefunden, wo man das am Besten einfügt
Titel: Re: Geöffnete XPage mithilfe einer Druckmaske ausdrucken
Beitrag von: Sven Hasselbach am 18.09.17 - 17:51:40
Das könnte an der Browsersecurity liegen. Daher schau mal nach den @media-Querys
Titel: Re: Geöffnete XPage mithilfe einer Druckmaske ausdrucken
Beitrag von: thomas_k am 19.09.17 - 06:57:26
Ich öffne die XPages im Notesclient, nicht in einem Browser
Titel: Re: Geöffnete XPage mithilfe einer Druckmaske ausdrucken
Beitrag von: Sven Hasselbach am 19.09.17 - 07:24:47
Ja, und? Ist trotzdem ein Browser: https://de.wikipedia.org/wiki/XULRunner (https://de.wikipedia.org/wiki/XULRunner)
Titel: Re: Geöffnete XPage mithilfe einer Druckmaske ausdrucken
Beitrag von: gossifu am 28.09.17 - 15:15:21
Also wir haben das so gelöst, dass wir das Dokument als XHTML-Struktur exportiert habe und mit Apache FOP und iText 2.1.x (kostenfreu, für Seitenzahl und Wasserzeichen) gepaart
Titel: Re: Geöffnete XPage mithilfe einer Druckmaske ausdrucken
Beitrag von: Sven Hasselbach am 28.09.17 - 16:27:17
Oder POI4XPages mit ner netten Word Vorlage nehmen. Nur muss der User bei PDF Konvertierung das PDF je nach Browsereinstellung erst öffnen, bevor er drucken kann.

P.S.
Und wieviel Eurocent hat Deine Firma gespart, um eine der besten PDF Libraries kostenlos nutzen zu können? Gegengerechnet auf den zusätzlichen Tonerverbrauch für das Wasserzeichen? 😉