Accepted answer

I believe this is similar to the questions asked here and here.

It seems like the most straight-forward solution (that only works on modern browsers) is to use data URIs.

This answer to first question I shared has a nice way of doing it. Then I assume you just hook up a button or a link to fire the download function.

Related Query