HTMLPrintDialog mit PB unter Windows
- TroaX
- Beiträge: 661
- Registriert: 08.03.2013 14:27
- Computerausstattung: PC: Ryzen 9 3950X, 96 GB RAM, RX6800XT, 2.5 TB SSD, 21:9 Display, Pop_OS! | Lappi: Ryzen 7 5800H, 16 GB RAM, 1 TB SSD, Pop_OS!
- Wohnort: NRW
- Kontaktdaten:
Re: HTMLPrintDialog mit PB unter Windows
Jopp. Den Thread habe ich komplett vergessen. habe aber auch seitdem kaum noch Zeit gehabt, irgendwas zu machen. Und das ganze gefrickel mit dem Schattenserver war mir dann auch nervig geworden. Mir kam es schlicht falsch vor, einen kleinen integrierten Webserver zu schreiben, der am Ende die Header-Daten ignoriert und nicht sauber validiert, ob alles richtig läuft. HTTP sieht im ersten Moment so schön einfach aus. Aber wenn man sowas zu Fuß schreiben muss, merkt man erst, wie nervig Fleißarbeit werden kann. Und der Nutzen stand dann dem Aufwand dann doch deutlichst hinten an.
PC: Ryzen 9 3950X | 96 GB RAM | RX6800XT | 2,5 TB NVMe | Pop_OS!
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Pop_OS!
NAS: Fritz.Box
Coding: Purebasic 6.04 | PHP | HTML | CSS | Javascript
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Pop_OS!
NAS: Fritz.Box
Coding: Purebasic 6.04 | PHP | HTML | CSS | Javascript
- TheCube
- Beiträge: 158
- Registriert: 20.07.2010 23:59
- Computerausstattung: Risen 3400G 16MB Win10-64Bit
- Wohnort: NRW
Re: HTMLPrintDialog mit PB unter Windows
Auf meinem recht langsamen Win7-32 Rechner (PB5.61) hatte ich einen seltsamen Effekt mit dem Codebeispiel.
Die Druckvorschau poppte meist nur kurz auf .. und ein Druckauswahlfenster kam nicht. (Mit und ohne Debugger.)
So ca. jedes 3-5 Mal starten klappte es dann doch noch.
Mein Workaround:
Delay (100) hinzufügen nach letzter Programmzeile HTMLPrintDialog(HTMLContent, "h1 { color: red; }")
Das PB-Program war wohl einfach zu schnell fertig und beendet.
Die Druckvorschau poppte meist nur kurz auf .. und ein Druckauswahlfenster kam nicht. (Mit und ohne Debugger.)
So ca. jedes 3-5 Mal starten klappte es dann doch noch.
Mein Workaround:
Delay (100) hinzufügen nach letzter Programmzeile HTMLPrintDialog(HTMLContent, "h1 { color: red; }")
Das PB-Program war wohl einfach zu schnell fertig und beendet.
- TroaX
- Beiträge: 661
- Registriert: 08.03.2013 14:27
- Computerausstattung: PC: Ryzen 9 3950X, 96 GB RAM, RX6800XT, 2.5 TB SSD, 21:9 Display, Pop_OS! | Lappi: Ryzen 7 5800H, 16 GB RAM, 1 TB SSD, Pop_OS!
- Wohnort: NRW
- Kontaktdaten:
Re: HTMLPrintDialog mit PB unter Windows
Oder statt:TheCube hat geschrieben:Mein Workaround:
Delay (100) hinzufügen nach letzter Programmzeile HTMLPrintDialog(HTMLContent, "h1 { color: red; }")
Das PB-Program war wohl einfach zu schnell fertig und beendet.
Code: Alles auswählen
Repeat
Event = WaitWindowEvent()
If Event = #PB_Event_Gadget
If EventGadget() = PrintDialog And EventType() = #PB_EventType_TitleChange
Break
EndIf
EndIf
Until Event = #PB_Event_CloseWindow
CloseWindow(Window)
Code: Alles auswählen
Repeat
Event = WaitWindowEvent()
If Event = #PB_Event_Gadget
If EventGadget() = PrintDialog And EventType() = #PB_EventType_TitleChange
If GetGadgetItemText(PrintDialog,#PB_Web_PageTitle) = "CLOSE"
break
EndIf
EndIf
EndIf
Until Event = #PB_Event_CloseWindow
CloseWindow(Window)
NACHTRAG: Die Variante macht auch mehr Sinn als die originale. Habe den Code im Startpost mal angepasst
PC: Ryzen 9 3950X | 96 GB RAM | RX6800XT | 2,5 TB NVMe | Pop_OS!
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Pop_OS!
NAS: Fritz.Box
Coding: Purebasic 6.04 | PHP | HTML | CSS | Javascript
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Pop_OS!
NAS: Fritz.Box
Coding: Purebasic 6.04 | PHP | HTML | CSS | Javascript
- TheCube
- Beiträge: 158
- Registriert: 20.07.2010 23:59
- Computerausstattung: Risen 3400G 16MB Win10-64Bit
- Wohnort: NRW
Re: HTMLPrintDialog mit PB unter Windows
Sehr schön ... und sehr viel besser funktionierend.
So grob jedes 10mal hab ich den Effekt zwar noch, besonders wenn Win7 nach dem Booten
noch mit sich selbst beschäftigt ist. Aber vielleicht ist ja auch einfach nur mein Murkssystem schuld.
So grob jedes 10mal hab ich den Effekt zwar noch, besonders wenn Win7 nach dem Booten
noch mit sich selbst beschäftigt ist. Aber vielleicht ist ja auch einfach nur mein Murkssystem schuld.
- TroaX
- Beiträge: 661
- Registriert: 08.03.2013 14:27
- Computerausstattung: PC: Ryzen 9 3950X, 96 GB RAM, RX6800XT, 2.5 TB SSD, 21:9 Display, Pop_OS! | Lappi: Ryzen 7 5800H, 16 GB RAM, 1 TB SSD, Pop_OS!
- Wohnort: NRW
- Kontaktdaten:
Re: HTMLPrintDialog mit PB unter Windows
Ist aber schon komisch. Denn die OnFocus-Eventmethode ist seit Jahren gängige Praxis bei Popups. Dies habe ich nur 1zu1 darauf übertragen. Ich suche da nochmal nach weiteren Kniffen, die vielleicht zuverlässiger funktionieren. So etwas darf und sollte nicht passieren. Mal sehen, was sich noch finden lässt. Das Hauptproblem ist aber definitiv der Javascript-Teil. Denn bei dir scheint das Setzen des Fokus auf das Dokument so lange zu dauern, dass das dadurch gefeuerte Event erst nach dem registrieren der Handlers vom IE abgearbeitet wird, wodurch es vorm Dialog zum Schließen des Fensters kommt.
PC: Ryzen 9 3950X | 96 GB RAM | RX6800XT | 2,5 TB NVMe | Pop_OS!
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Pop_OS!
NAS: Fritz.Box
Coding: Purebasic 6.04 | PHP | HTML | CSS | Javascript
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Pop_OS!
NAS: Fritz.Box
Coding: Purebasic 6.04 | PHP | HTML | CSS | Javascript
- TheCube
- Beiträge: 158
- Registriert: 20.07.2010 23:59
- Computerausstattung: Risen 3400G 16MB Win10-64Bit
- Wohnort: NRW
Re: HTMLPrintDialog mit PB unter Windows
Vielleicht ist das was du schreibst das sporadische Problem ... oder doch etwas vom Win-System.
Von meiner Seite aus muss da aber wirklich keine Zeit drauf verbraten werden:
Habe den Code zu einer .Exe gemacht (bisher immer aus PB heraus compiliert und gestartet)
und konnte den Fehler in 50 Starts nicht mehr provozieren.
Wer weiss welches Phantom wir da jagen ....
Edit
Kaum hier geschrieben und noch ein paar Mal probiert passierte der Fehler doch noch mal
Also .Exe-machen ändert doch nichts ...
Von meiner Seite aus muss da aber wirklich keine Zeit drauf verbraten werden:
Habe den Code zu einer .Exe gemacht (bisher immer aus PB heraus compiliert und gestartet)
und konnte den Fehler in 50 Starts nicht mehr provozieren.
Wer weiss welches Phantom wir da jagen ....
Edit
Kaum hier geschrieben und noch ein paar Mal probiert passierte der Fehler doch noch mal
Also .Exe-machen ändert doch nichts ...
- TroaX
- Beiträge: 661
- Registriert: 08.03.2013 14:27
- Computerausstattung: PC: Ryzen 9 3950X, 96 GB RAM, RX6800XT, 2.5 TB SSD, 21:9 Display, Pop_OS! | Lappi: Ryzen 7 5800H, 16 GB RAM, 1 TB SSD, Pop_OS!
- Wohnort: NRW
- Kontaktdaten:
Re: HTMLPrintDialog mit PB unter Windows
Keines! Ich weiß ja, was schuld daran istTheCube hat geschrieben:Wer weiss welches Phantom wir da jagen ....
Blöderweise funktioniert das onofterprint-Event im Gadget nicht, weswegen ich überhaupt diesen Kniff benutzen muss. Aber ich teste nachher einfach mal, statt dem Onload-Attribut einfach das blanke Javascript in den Kopfbereich zu packen. Mal sehen, was ich da für Möglichkeiten bekomme.
Auch wenn dir das jetzt nicht ganz so wichtig ist, kann ich solch Seiteneffekte nicht ausstehen und behebe sie lieber
PC: Ryzen 9 3950X | 96 GB RAM | RX6800XT | 2,5 TB NVMe | Pop_OS!
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Pop_OS!
NAS: Fritz.Box
Coding: Purebasic 6.04 | PHP | HTML | CSS | Javascript
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Pop_OS!
NAS: Fritz.Box
Coding: Purebasic 6.04 | PHP | HTML | CSS | Javascript