2013-03-27 12 views
14

Il mio capo mi ha chiesto di aggiungere un pulsante "stampa" per un file HTML. Bene, window.print(). Ma questo non funziona perché il browser web incorporato nel software è stato sviluppato dalla mia stessa azienda. Potrebbe non supportare la stampa.Come supportare window.print() in un browser Web incorporato?

In ogni caso, devo sostenere questo.

Questo browser Web utilizzava WebKit e conoscevo solo un po 'di Qt e WebKit.

Come posso implementare questa funzione? Ad esempio, in che modo il browser web gestisce "window.print"?

+6

La sequenza di "window.print" per la porta QT è: window.print-> DOMWindow :: print -> Chrome :: print -> ChromeClient :: print (ChromClientQt.cpp) -> emit m_webPage-> printRequested Per impostazione predefinita, QWebPage :: printRequested non è connesso a nessun posto connettore. Dovresti aggiungere uno spazio come 'LauncherWindow :: print' do (Mostra una finestra di dialogo di anteprima e stampa usando QWebFrame :: print). Se il browser Web personalizzato non utilizza la porta QT, è necessario implementare la funzione 'stampa' per la porta. Spero che possa aiutarti. –

+2

Shen: Penso che il tuo commento meriti di essere promosso a una risposta completa. Come è la risposta giusta. – peppe

risposta

0

Considerare l'invio del contenuto dell'HTML/CSS (o di un collegamento) tramite AJAX a un server di stampa lato server, che quindi esegue il rendering dell'HTML e lo invia alla stampante di rete. Un'altra opzione è creare un plugin per browser con NSAPI (C++). Un'altra opzione è incorporare un'applet Java, che prende l'HTML, lo esegue il rendering e lo invia alla stampante.

+0

Come ho detto a @twodave, c'è una configurazione per far funzionare window.print in QT. Sarà la risposta alla taglia. –

0

Modificare il file HTML in modo che, se è presente un argomento di stringa di query come? Print = 1, chiamerà automaticamente window.print(). Quindi apri your-file.html? Print = 1 in un processo separato del browser.

+0

Nel webkit dell'obiettivo-c, è necessario impostare un delegato per far funzionare window.print(). Qt, presumibilmente, ha bisogno di qualcosa di simile per far funzionare anche window.print(). Ciò che è necessario è l'ansioso di questa domanda. –

+0

Ah, hai ragione. Devo aver letto male. Andando a sviare il ragazzo che ha avuto la risposta allora. – Dave

Problemi correlati