wkhtmltopdf Log in to asp.net web app

前端 未结 4 1806
北恋
北恋 2021-01-12 09:18

Having a problem with wkhtmltopdf. I\'m using it to take pdf snapshots of pages on a website that has a username/password page. When the .exe runs, I end up with a snapsho

相关标签:
4条回答
  • 2021-01-12 09:49

    First, check the login form what post parameter it uses then try --post username xxx --post password xxx. Alternatively use wireshark and record the login process and see what parameters were posted.

    Once u are logged in use --cookie-jar

    See a better explanation here http://wkhtmltopdf.org/

    getting wkhtmltopdf to convert a protected page can be tricky. Use also --extended-help to see other parameters u can use to login. e.g. if the site is protected by basic authentication it should be fairly easy with --user --password

    0 讨论(0)
  • 2021-01-12 09:52

    If anyone's still looking for an answer, I'll write up a brief summary of what I did to get it working.

    First, inspect the page you want to log in to, for instance http:/www.example.com/login

    Look for the form surrounding the username/password inputs. In my case, I was logging into a rails form, so I also needed the authenticity token. Once you have the name and values of the log in inputs, you can make the first wkhtmltoimage call like this:

    wkhtmltoimage --cookie-jar my.jar --post username steve --post password iscool http://www.example.com/login dummy.jpg

    In my case of the rails form, I needed to pass the auth_token as a post parameter as well. Then, just re use that cookie jar when accessing the main page you want to view:

    wkhtmltoimage --cookie-jar my.jar http://example.com/myprofile screenshot.jpg

    0 讨论(0)
  • 2021-01-12 10:00

    The other way is to render view of website to html string and save temporarily to a local file. Then use wkhtmltopdf to convert that html file to PDF then remove that local file afterward. This way we do not need to handle the authentication of MVC.

    0 讨论(0)
  • 2021-01-12 10:01

    I had a similar issue with my application that works on ASP.Net forms authentication. I had to pass in the authentication cookie like this to get it to work.

    --cookie <name> <value>       
    

    Important catch is that no additional cookie must be passed apart from auth cookie. Because some cookies with cause authentication to fail and even if it doesn't it will slow up the wkhtml process because wkhtml will have to process each cookie passed to it

    0 讨论(0)
提交回复
热议问题