I just uploaded inkscape_merge gem v0.1.0.
This is a script to merge SVG files with CSV data-files using Inkscape, to produce one outputfile (e.g. PDF) per data-row.
Script inspired by and based on Aurélio A. Heckert excellent InkscapeGenerator (wiki.colivre.net/Aurium/InkscapeGenerator)
Heckert’s original script unfortunately broke for me several times and I took the opportunity to rewrite it and make it more extendable for future.
Install the gem
gem install inkscape_merge
Create CSV data file with first row as a header. The values from this row are used as keys in the SVG file substitution.
Create SVG file that contains some variables in the form:
Where `name` is the name of a column in the CSV file created previously. These variables can be anywhere inside the SVG, from plain text nodes to color values. This script just brute-forcedly `gsubs` these values as text w/o any thought.
Run the script
The script requires at least three arguments:
- the input SVG file
- the input CSV file
- and the output file `pattern`
Note: output pattern undergoes the same substitutions as the SVG file, so to create easily unique file names. Additionally the output pattern can contain `%d` which is replaced with current row number.
inkscape_merge -f postcard.svg -d names.csv -o postcards/card_%d.pdf
This produces files like: