Generate PDF document from SVG template in Django with Inkscape
In the last blog post, I show how to convert a svg vector image to a pdf file using Inkscape command line tool. We will go one step further, generate pdf document with provided data and SVG template in Django.
For example, we have a svg template which contains some tokens such as "{{username}}", "{{blah}}":
1/ open the svg template, get its content (it's xml), and close it.
svg_file = open("/path/to/data.svg", 'r')
svg_content = svg_file.read()
svg_file.close()
2/ Process content of the svg: replace pre-defined token (e.g. '{{username}}' ) with your data (e.g superman)
new_content = svg_content.replace("{{username}}", "superman")
If you pass variable to replace, make sure it is a string, not an Unicode object:
new_content = svg_content.replace("{{username}}", str(myusername))
3/ Create a new file with '.svg' extension (e.g data.svg), then write the processed data to that file
4/ Using the Inkscape command line tool to convert that svg file to pdf as in my previous blog post (http://iambusychangingtheworld.blogspot.com/2013/05/convert-svg-to-pdf-in-django-with.html)
5/ In Django view, read the pdf file and then render it in the template with embedded tag:
<embed src="{{ STATIC_URL }}account_info/new_created/data.pdf" width="100%" height="1150px" type="application/pdf">
For example, we have a svg template which contains some tokens such as "{{username}}", "{{blah}}":
1/ open the svg template, get its content (it's xml), and close it.
svg_file = open("/path/to/data.svg", 'r')
svg_content = svg_file.read()
svg_file.close()
2/ Process content of the svg: replace pre-defined token (e.g. '{{username}}' ) with your data (e.g superman)
new_content = svg_content.replace("{{username}}", "superman")
If you pass variable to replace, make sure it is a string, not an Unicode object:
new_content = svg_content.replace("{{username}}", str(myusername))
3/ Create a new file with '.svg' extension (e.g data.svg), then write the processed data to that file
4/ Using the Inkscape command line tool to convert that svg file to pdf as in my previous blog post (http://iambusychangingtheworld.blogspot.com/2013/05/convert-svg-to-pdf-in-django-with.html)
5/ In Django view, read the pdf file and then render it in the template with embedded tag:
<embed src="{{ STATIC_URL }}account_info/new_created/data.pdf" width="100%" height="1150px" type="application/pdf">
Comments
Post a Comment