vb.net - Saving pdf document from webbrowser control -


i'm navigating webbrowser control url this; http://www.who.int/cancer/modules/team%20building.pdf

it's shown in webbrowser control. want download pdf file computer. tried many ways;

dim filepath string filepath = "d:\temp1.pdf" dim client webclient = new webclient() client.downloadfilecompleted += new asynccompletedeventhandler(client_downloadfilecompleted); client.downloadfileasync(webbrowserex1.url, filepath) 

this 1 downloads pdf there nothing in file.

also tried with

objwebclient.downloadfile() 

nothing changed.

i tried show save or print dialog;

webbrowserex1.showsaveasdialog() webbrowserex1.showprintdialog() 

but didnt show dialog. maybe last 1 because doesnt wait load the pdf webbrowser completely.

when try html files there no problem dowload, in .pdf file, think didn't manage wait file loaded pdf browser. function(s);

 private sub waitforpageload(byval adimno string)     if adimno = "1"         addhandler webbrowserex1.documentcompleted, new webbrowserdocumentcompletedeventhandler(addressof pagewaiter)         while not pageready             application.doevents()         end while         pageready = false     end if  end sub  private sub pagewaiter(byval sender object, byval e webbrowserdocumentcompletedeventargs)     if webbrowserex1.readystate = webbrowserreadystate.complete         pageready = true         removehandler webbrowserex1.documentcompleted, new webbrowserdocumentcompletedeventhandler(addressof pagewaiter)     end if end sub 

are not working situation. mean gets infinite loop.

so knows how wait load pdf save computer.

you test url when document completed fires , if .pdf, following navigate back, example.

    private sub form1_load(byval sender system.object, byval e system.eventargs) handles mybase.load     webbrowserex1.navigate("http://www.who.int/cancer/modules/team%20building.pdf") end sub  private sub webbrowserex1_documentcompleted(byval sender object, byval e system.windows.forms.webbrowserdocumentcompletedeventargs) handles webbrowserex1.documentcompleted      if webbrowserex1.url.tostring.contains(".pdf")          using webclient = new webclient()             dim bytes = webclient.downloaddata(webbrowserex1.url.tostring) 'again variable here              file.writeallbytes(path.combine(environment.getfolderpath(environment.specialfolder.desktop), "test.pdf"), bytes) 'save desktop or specialfolder. list readily available user folders         end using   'webbrowserex1.goback() 'could send browser page      end if    end sub 

you need make filename "test" variable instead of static string or else overwrite same file each time. perhaps:

 webbrowserex1.documenttitle.tostring & ".pdf" 

instead, save file pdf named webpage title. problem there if page contains illegal characters (that windows doesnt let save with) throw exception should handled.


Comments

Popular posts from this blog

Change php variable from jquery value using ajax (same page) -

Pull out data related to my apps from Android Play Store and iOS App Store -

How can I fetch data from a web server in an android application? -