Convert HTML string to an image in Python [closed] Convert HTML string to an image in Python [closed] python python

Convert HTML string to an image in Python [closed]


webkit2png. The original version is OSX-only, but luckily there is a cross-platform fork:https://github.com/AdamN/python-webkit2png


To expand on vartec's answer to also explain how to use it...

Install webkit2png
The easiest way is probably to simply clone the github repo and run the setup.

mkdir python-webkit2pnggit clone https://github.com/adamn/python-webkit2png.git python-webkit2pngpython setup.py install

This requires python and git to already be installed.For cygwin, this will add webkit2png as a command to the path. I haven't tested this for other terminals/OS.

Run it
Say you have your website in the current directory. (I had a html file that was using a css stylesheet - but there's no need to think about the css file.)

webkit2png something.html -o something.png

Options
webkit2png -h informs us:

Options:  --version             show program's version number and exit  -h, --help            show this help message and exit  -x WIDTH HEIGHT, --xvfb=WIDTH HEIGHT                        Start an 'xvfb' instance with the given desktop size.  -g WIDTH HEIGHT, --geometry=WIDTH HEIGHT                        Geometry of the virtual browser window (0 means                        'autodetect') [default: (0, 0)].  -o FILE, --output=FILE                        Write output to FILE instead of STDOUT.  -f FORMAT, --format=FORMAT                        Output image format [default: png]  --scale=WIDTH HEIGHT  Scale the image to this size  --aspect-ratio=RATIO  One of 'ignore', 'keep', 'crop' or 'expand' [default:                        none]  -F FEATURE, --feature=FEATURE                        Enable additional Webkit features ('javascript',                        'plugins')  -c COOKIE, --cookie=COOKIE                        Add this cookie. Use multiple times for more cookies.                        Specification is value of a Set-Cookie HTTP response                        header.  -w SECONDS, --wait=SECONDS                        Time to wait after loading before the screenshot is                        taken [default: 0]  -t SECONDS, --timeout=SECONDS                        Time before the request will be canceled [default: 0]  -W, --window          Grab whole window instead of frame (may be required                        for plugins)  -T, --transparent     Render output on a transparent background (Be sure to                        have a transparent background defined in the html)  --style=STYLE         Change the Qt look and feel to STYLE (e.G. 'windows').  --encoded-url         Treat URL as url-encoded  -d DISPLAY, --display=DISPLAY                        Connect to X server at DISPLAY.  --debug               Show debugging information.  --log=LOGFILE         Select the log output file

Notable options are the setting of width and height.

Troubleshooting
Using cygwin, I encountered webkit2png: cannot connect to X server :0.0.To fix this (I had already performed export DISPLAY=0.0), I had to start an X-Server. On cygwin, this can be done by running startxwin in a second terminal. Make sure to install it first via the cygwin setup.