Seite 1 von 2

Webgadget und window.print

Verfasst: 11.01.2018 09:18
von TroaX
Ich habe über die SuFu jetzt nichts gefunden. Daher stelle ich mal direkt die Frage.

Ich habe gerade kein Linux zur Hand. Müsste dennoch wissen, ob es funktioniert. Unter Windows (IE-Gadget) kann ich mit der Javascript-Funktion window.print() den Druckdialog starten und die im Gadget angezeigte Seite ausdrucken. Geht das auch unter Linux mit dem Webkit-Gadget oder gibt es da systemseitige einschränkungen?

Re: Webgadget und window.print

Verfasst: 11.01.2018 11:36
von NicTheQuick
Hast du einen Code-Schnipsel, damit ich jetzt nicht selbst was basteln muss? Ich befasse mich mit dem WebGadget normalerweise nicht, aber ich teste es gerne für dich.

Re: Webgadget und window.print

Verfasst: 11.01.2018 12:14
von Kukulkan
Vermutlich noch aktuell:

How to print WebGadget in Linux?
http://www.purebasic.fr/english/viewtop ... 15&t=48664

Re: Webgadget und window.print

Verfasst: 11.01.2018 12:20
von TroaX

Code: Alles auswählen

OpenWindow(0,50,50,800,600,"WebPrintTest")
WebGadget(1,0,0,800,600,"")
SetGadgetText(1,"javascript:window.print()")

Repeat
  Event = WindowEvent()
Until Event = #PB_Event_CloseWindow
@Kukulkan: LOL Wieso sagst du nicht einfach, das es funkltioniert :lol: Danke :)

Re: Webgadget und window.print

Verfasst: 11.01.2018 12:48
von NicTheQuick
Also bei mir friert nur das Fenster ein und dann stürzt es ab. Also scheint nicht zu funktionieren.

Re: Webgadget und window.print

Verfasst: 11.01.2018 12:54
von TroaX
NicTheQuick hat geschrieben:Also bei mir friert nur das Fenster ein und dann stürzt es ab. Also scheint nicht zu funktionieren.
Hmm jetzt stellt sich die Frage, ob es daran liegt, das man es über die URL aufruft oder ob sich über einen Link eines eingebetteten HTML auch besteht.

Könntest du es noch einmal ohne SetGadgetText() testen und auf der Seite links einmal auf "Druckversion" klicken?

Code: Alles auswählen

OpenWindow(0,50,50,800,600,"WebPrintTest")
WebGadget(1,0,0,800,600,"https://de.wikipedia.org/wiki/JavaScript")

Repeat
  Event = WindowEvent()
Until Event = #PB_Event_CloseWindow
Wenn es dann auch einfriert, dann liegt es am JS des Gadgets und dann muss ich eine andere Lösung suchen.

Re: Webgadget und window.print

Verfasst: 11.01.2018 13:01
von NicTheQuick
Ach, weißt du was. Mein WebGadget öffnet sich gar nicht. Da merkt man mal wie selten ich das nutze. :-D Vielleicht fehlt mir noch irgendeine Bibliothek dafür. Muss mal schnell schauen, dann melde ich mich wieder.

Re: Webgadget und window.print

Verfasst: 11.01.2018 13:05
von Kukulkan
TroaX hat geschrieben:@Kukulkan: LOL Wieso sagst du nicht einfach, das es funkltioniert :lol: Danke :)
Weil der Thread zeigt, dass es auch anders geht. Ich zeige dort einen Workaround:
I currently solved it that way:
1) use body-text to replace "</html>" with "<script>window.print();</script></html>"
2) save the message body again (same filename)
3) force the webgadget to reload using SetGadgetText(webMessageID, "file:///" + strBodyFile.s)
Der geht bei uns zuverlässig seit langem und über alle Plattformen. Du könntest das abwandeln und ähnliches versuchen.

Re: Webgadget und window.print

Verfasst: 11.01.2018 13:13
von TroaX
Mir ging es im Grunde ja nur darum, ob window.print() beim Webgadget unter Linux überhaupt geht. Und so wie es aussieht geht es wohl.

Am schönsten wäre noch, wenn ich jetzt noch einen Weg finde, wie ich aus PB heraus das Absenden eines Formulares plattformunabhängig triggern kann. Dann kann ich mich mal an meine Idee machen ^^

Re: Webgadget und window.print

Verfasst: 12.01.2018 11:22
von #NULL

Code: Alles auswählen

...
WebGadget(1,0,0,800,600,"https://de.wikipedia.org/wiki/JavaScript")
...
Die 'Druckversion' öffnet bei mir im WebGadget nur die Seite als druckbare Version, aber kein Dialog. Firefox öffnet einen Dialog zur Druckerauswahl, QupZilla (QtWebEngine/Chrome) öffnet die Druckvorschau.

Code: Alles auswählen

WebGadget(1,0,0,800,600,"")
SetGadgetText(1,"javascript:window.print()")
zeigt mir eine Fehlerseite an:

Code: Alles auswählen

Unable to load page

Problem occurred while loading the URL javascript:window.print()

Die Adresse kann nicht angezeigt werden

[Try again]
Test mit einer lokalen Datei:

Code: Alles auswählen

<!DOCTYPE html>
<html>
	<head>
		<script type="text/javascript">
			//alert("js");
			window.print();
		</script>
	</head>
	
	<body>
		<h1>aaaaaaaaaaa</h1>
	</body>
</html>

Code: Alles auswählen

OpenWindow(0,50,50,800,600,"WebPrintTest")
WebGadget(1,0,0,800,600,"http://localhost/test.html")

Repeat
  Event = WindowEvent()
Until Event = #PB_Event_CloseWindow
..zeigt die Seite an, löst aber ebenfalls nix Druck aus. Der alert() macht bei mir auch nix.