Ciao a tutti,
come da titolo, come faccio a stampare da programma un file html? (Quando la lancio mi trovo la stampa del codice.)
Grazie. Ciao.
Ciao a tutti,
come da titolo, come faccio a stampare da programma un file html? (Quando la lancio mi trovo la stampa del codice.)
Grazie. Ciao.
Inserisci nella tua form un componente WebBrowser (Libreria Microsoft Internet Control) e lo rendi invisibile. Poi utilizzando il metodo Navigate2 carichi la pagina e con il metodo execWB esegui la stampa del documento caricato. Per sapere se il documento è caricato puoi gestire l'evento NavigateComplete2.
Spero di essere stato abbastanza chiaro.codice:Dim Caricato As Boolean Private Sub Form_Load() WebBrowser1.Navigate2 ("c:\prova.htm") End Sub Private Sub Command1_Click() If Caricato Then WebBrowser1.ExecWB OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER End If End Sub Private Sub WebBrowser1_NavigateComplete2(ByVal pDisp As Object, URL As Variant) Caricato = True End Sub
Ciao
lupusinfabula
Programmatore VB, ASP, Delphi.
Sei stato chiarissimo e di grande aiuto!!!!!!!! :quote:
Ti ringrazio tantissimo.
Ma un'ultima precisazione:
Il caricamento della pagina e la sua stampa sono all'interno della stessa funzione ed accade che la stampa viene eseguita quando la pagina nn è stata ancora caricata. Come faccio a fermare il programma lasciandogli il tempo di caricare la pagina per poi stamparla automaticamente????
Cmq sia ancora mille grazie!!!!!
Con riferimento all'esempio precedente:
puoi dichiarare una variabile globale (Dim Caricato as Boolean) e impostarla a true nell'evento NavigateComplete2.
Nella funzione che stampa:
Ciaocodice:'Metti a false Caricato Caricato = False WebBrowser1.Navigate2 "c:\prova.htm" while not caricato DoEvents 'serve a intercettare gli eventi scatenati 'Quindi il ciclo prosegue fino a quando non viene 'eseguito WebBrowser1_NavigateComplete2 wend 'All'uscita esegui la stampa WebBrowser1.execWB ..........
lupusinfabula
Programmatore VB, ASP, Delphi.
Ok ti ringrazio nuovamente, ma un nuovo dubbio m assale.
Sul codice che hai scritto all'interno del while DoEvents è il linguaggio vb6, come si fà in vb.net????
ùdovrebbe essere l'istruzione DoEvents in vb.net, ma non funziona.codice:System.Windows.Forms.Application.DoEvents()
Come si può quindi fare?
Basta, ho risolto, grazie Boldan.
Come al solito la soluzione era + semplice di quello che ci si aspettava. Bastava mettere l'istruzione di stampa all'interno dell'evento NavigateComplete2.
Grazie ancora Boldan!!!!!
:quote:
Bene!!
Io ho provato così (utilizzando DoEvents):
Comunque le due soluzioni danno lo stesso risultato.codice:Dim Caricato As Boolean Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click AxWebBrowser1.Navigate2("c:\prova.htm") Caricato = False While Not Caricato Application.DoEvents() End While AxWebBrowser1.ExecWB(SHDocVw.OLECMDID.OLECMDID_PRINT, SHDocVw.OLECMDEXECOPT.OLECMDEXECOPT_DONTPROMPTUSER) End Sub Private Sub AxWebBrowser1_NavigateComplete2(ByVal sender As Object, ByVal e As AxSHDocVw.DWebBrowserEvents2_NavigateComplete2Event) Handles AxWebBrowser1.NavigateComplete2 Caricato = True End Sub
Ciao
lupusinfabula
Programmatore VB, ASP, Delphi.
io l'ho usato ma mi spariscono i colori in stampa. eppure la stampante e' impostata per usarli....qualche idea???? hellpppp
-------------------------
CENTROCANOA.COM