Ciao Massimo,
Davanti a Copy è sempre meglio mettere un Try pertanto il codice del pulsante Print sarà:
Public Sub Button1_Click()
Try Copy "./test.html" To User.Home &/ "test.html"
Wait 0.1
' wkhtmltopdf mio_documento.html output.pdf
Exec ["wkhtmltopdf", User.Home &/ "test.html", User.Home &/ "test.pdf"]
Catch
Debug "#ERROR:", Error.Code, Error.Text
End
:ciao:
Dimenticavo, per stampare si può anche usare la classe gb.desktop così:
Desktop.Open(User.Home &/ "test.html")
che apre il file html nel bowser predefinito e da lì si può anche stampare o creare un file PDF.
Visto che pare tu sia l'unico qui a usare il componente webview, non hai un suggerimento per Massimo?
Ahime' no, anche io a volte ho trovato difficolta'. Per esempio, recupero del testo usando quel metodo
s = webview.execjavascript("window.getSelection().toString();")
ma quando cercai di estrarre il nome del file immagine sotto il cursore del mouse mi trovai a chiedervi metodi alternativi. Io, se non fossi cosi' arugginito in js, vedendo che questa riga funziona, indagherei sul metodo di stampa in js e se ha qualche requisito, o per vedere se c'e' modo di ottenere una selezione da stampare: chiaro che la selezione dovrebbe essere probabilmente la pagina.
Grazie a tutti,
ho risolto in questo modo, non so se è il migliote ma funzionza):
Public Sub btnStampa_Click()
Dim pPrinter As New Printer
Dim sUrl As String
Dim sPdf As String = "/tmp/pagina.pdf"
Try Kill sPdf
If pPrinter.Configure() Then Return
If tabFattura.Index = 0 Then
sUrl = webCompleta.Url
Shell "chromium --headless --disable-gpu --no-sandbox --print-to-pdf=" & sPdf & " '" & sUrl & "'"
While Not Exist(sPdf)
Wait 0.1
Wend
Shell "lp " & sPdf
Endif
End
Buon Anno Nuovo a tutti!
Massimo