snipt

Ctrl+h for KB shortcuts

Bash

merge print from svg template

#!/bin/bash
# Criado em:Mon 30/May/2011 hs 12:24
# Last Change: 2011 May 30 13:46:02
# vim:ft=sh:fdm=syntax:nu:
# Instituicao: none
# Proposito do script: Inkscape print merge
# Autor: Sérgio Luiz Araújo Silva
# site: http://vivaotux.blogspot.com
# twitter: http://www.twitter.com/voyeg3r

# REFERENCES:
# http://zkwarl.blogspot.com/2006/08/inkscape-tip-use-inkscape-on-command.html
# http://www.unixnotes.org/2007/06/14/incrementar-variavel-numerica-em-bash2/
# http://www.debianadmin.com/combine-multiple-pdfs-into-one-file-in-ubuntu-linux.html
# http://wiki.bash-hackers.org/scripting/style

# dependences gs and pdftk
NEEDED_COMMANDS="pdftk gs"
missing_counter=0
for needed_command in $NEEDED_COMMANDS; do
	if ! hash "$needed_command" >/dev/null 2>&1; then
		printf "Command not found in PATH: %s\n" "$needed_command" >&2
		((missing_counter++))
	fi
done
if ((missing_counter > 0)); then
	sudo apt-get install -y $NEEDED_COMMANDS
fi

# create directory to put all files
echo "Creating mergeprint directory"
mkdir mergeprint
cd mergeprint


count=1

for i in `echo {0001..0167}`; do
	echo "Creating file${i}.svg"
    cat  ../cartoes.svg > file${i}.svg
    echo "Changing merge fields to file${i}.svg"
	sed -i "s/label1/`printf \"%04d\" $count`/" file${i}.svg && count=$((count+1))
	sed -i "s/label2/`printf \"%04d\" $count`/" file${i}.svg && count=$((count+1))
	sed -i "s/label3/`printf \"%04d\" $count`/" file${i}.svg && count=$((count+1))
	sed -i "s/label4/`printf \"%04d\" $count`/" file${i}.svg && count=$((count+1))
	sed -i "s/label5/`printf \"%04d\" $count`/" file${i}.svg && count=$((count+1))
	sed -i "s/label6/`printf \"%04d\" $count`/" file${i}.svg && count=$((count+1))

	# to learn how export in onther formats read 'man inkscape'
	echo "exporting file${i}.svg to file${i}.pdf"
	inkscape -f file${i}.svg -A file${i}.pdf
done

cd ..
gs -dNOPAUSE -sDEVICE=pdfwrite -sOUTPUTFILE=combinedpdf.pdf -dBATCH ./mergeprint/*.pdf

echo "Removing work directory..."
rm -rf ./mergeprint
https://snipt.net/embed/f145f53ae18b8c03a60d08b3116feffa/
/raw/f145f53ae18b8c03a60d08b3116feffa/
f145f53ae18b8c03a60d08b3116feffa
bash
Bash
61
2019-08-18T04:36:00
True
False
False
/api/public/snipt/26854/
merge-print-from-svg-template
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><a href="#L-1"> 1</a> <a href="#L-2"> 2</a> <a href="#L-3"> 3</a> <a href="#L-4"> 4</a> <a href="#L-5"> 5</a> <a href="#L-6"> 6</a> <a href="#L-7"> 7</a> <a href="#L-8"> 8</a> <a href="#L-9"> 9</a> <a href="#L-10">10</a> <a href="#L-11">11</a> <a href="#L-12">12</a> <a href="#L-13">13</a> <a href="#L-14">14</a> <a href="#L-15">15</a> <a href="#L-16">16</a> <a href="#L-17">17</a> <a href="#L-18">18</a> <a href="#L-19">19</a> <a href="#L-20">20</a> <a href="#L-21">21</a> <a href="#L-22">22</a> <a href="#L-23">23</a> <a href="#L-24">24</a> <a href="#L-25">25</a> <a href="#L-26">26</a> <a href="#L-27">27</a> <a href="#L-28">28</a> <a href="#L-29">29</a> <a href="#L-30">30</a> <a href="#L-31">31</a> <a href="#L-32">32</a> <a href="#L-33">33</a> <a href="#L-34">34</a> <a href="#L-35">35</a> <a href="#L-36">36</a> <a href="#L-37">37</a> <a href="#L-38">38</a> <a href="#L-39">39</a> <a href="#L-40">40</a> <a href="#L-41">41</a> <a href="#L-42">42</a> <a href="#L-43">43</a> <a href="#L-44">44</a> <a href="#L-45">45</a> <a href="#L-46">46</a> <a href="#L-47">47</a> <a href="#L-48">48</a> <a href="#L-49">49</a> <a href="#L-50">50</a> <a href="#L-51">51</a> <a href="#L-52">52</a> <a href="#L-53">53</a> <a href="#L-54">54</a> <a href="#L-55">55</a> <a href="#L-56">56</a> <a href="#L-57">57</a> <a href="#L-58">58</a></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span id="L-1"><a name="L-1"></a><span class="ch">#!/bin/bash</span> </span><span id="L-2"><a name="L-2"></a><span class="c1"># Criado em:Mon 30/May/2011 hs 12:24</span> </span><span id="L-3"><a name="L-3"></a><span class="c1"># Last Change: 2011 May 30 13:46:02</span> </span><span id="L-4"><a name="L-4"></a><span class="c1"># vim:ft=sh:fdm=syntax:nu:</span> </span><span id="L-5"><a name="L-5"></a><span class="c1"># Instituicao: none</span> </span><span id="L-6"><a name="L-6"></a><span class="c1"># Proposito do script: Inkscape print merge</span> </span><span id="L-7"><a name="L-7"></a><span class="c1"># Autor: Sérgio Luiz Araújo Silva</span> </span><span id="L-8"><a name="L-8"></a><span class="c1"># site: http://vivaotux.blogspot.com</span> </span><span id="L-9"><a name="L-9"></a><span class="c1"># twitter: http://www.twitter.com/voyeg3r</span> </span><span id="L-10"><a name="L-10"></a> </span><span id="L-11"><a name="L-11"></a><span class="c1"># REFERENCES:</span> </span><span id="L-12"><a name="L-12"></a><span class="c1"># http://zkwarl.blogspot.com/2006/08/inkscape-tip-use-inkscape-on-command.html</span> </span><span id="L-13"><a name="L-13"></a><span class="c1"># http://www.unixnotes.org/2007/06/14/incrementar-variavel-numerica-em-bash2/</span> </span><span id="L-14"><a name="L-14"></a><span class="c1"># http://www.debianadmin.com/combine-multiple-pdfs-into-one-file-in-ubuntu-linux.html</span> </span><span id="L-15"><a name="L-15"></a><span class="c1"># http://wiki.bash-hackers.org/scripting/style</span> </span><span id="L-16"><a name="L-16"></a> </span><span id="L-17"><a name="L-17"></a><span class="c1"># dependences gs and pdftk</span> </span><span id="L-18"><a name="L-18"></a><span class="nv">NEEDED_COMMANDS</span><span class="o">=</span><span class="s2">&quot;pdftk gs&quot;</span> </span><span id="L-19"><a name="L-19"></a><span class="nv">missing_counter</span><span class="o">=</span>0 </span><span id="L-20"><a name="L-20"></a><span class="k">for</span> needed_command in <span class="nv">$NEEDED_COMMANDS</span><span class="p">;</span> <span class="k">do</span> </span><span id="L-21"><a name="L-21"></a> <span class="k">if</span> ! <span class="nb">hash</span> <span class="s2">&quot;</span><span class="nv">$needed_command</span><span class="s2">&quot;</span> &gt;/dev/null 2&gt;<span class="p">&amp;</span>1<span class="p">;</span> <span class="k">then</span> </span><span id="L-22"><a name="L-22"></a> <span class="nb">printf</span> <span class="s2">&quot;Command not found in PATH: %s\n&quot;</span> <span class="s2">&quot;</span><span class="nv">$needed_command</span><span class="s2">&quot;</span> &gt;<span class="p">&amp;</span>2 </span><span id="L-23"><a name="L-23"></a> <span class="o">((</span>missing_counter++<span class="o">))</span> </span><span id="L-24"><a name="L-24"></a> <span class="k">fi</span> </span><span id="L-25"><a name="L-25"></a><span class="k">done</span> </span><span id="L-26"><a name="L-26"></a><span class="k">if</span> <span class="o">((</span>missing_counter &gt; 0<span class="o">))</span><span class="p">;</span> <span class="k">then</span> </span><span id="L-27"><a name="L-27"></a> sudo apt-get install -y <span class="nv">$NEEDED_COMMANDS</span> </span><span id="L-28"><a name="L-28"></a><span class="k">fi</span> </span><span id="L-29"><a name="L-29"></a> </span><span id="L-30"><a name="L-30"></a><span class="c1"># create directory to put all files</span> </span><span id="L-31"><a name="L-31"></a><span class="nb">echo</span> <span class="s2">&quot;Creating mergeprint directory&quot;</span> </span><span id="L-32"><a name="L-32"></a>mkdir mergeprint </span><span id="L-33"><a name="L-33"></a><span class="nb">cd</span> mergeprint </span><span id="L-34"><a name="L-34"></a> </span><span id="L-35"><a name="L-35"></a> </span><span id="L-36"><a name="L-36"></a><span class="nv">count</span><span class="o">=</span>1 </span><span id="L-37"><a name="L-37"></a> </span><span id="L-38"><a name="L-38"></a><span class="k">for</span> i in <span class="sb">`</span><span class="nb">echo</span> <span class="o">{</span>0001..0167<span class="o">}</span><span class="sb">`</span><span class="p">;</span> <span class="k">do</span> </span><span id="L-39"><a name="L-39"></a> <span class="nb">echo</span> <span class="s2">&quot;Creating file</span><span class="si">${</span><span class="nv">i</span><span class="si">}</span><span class="s2">.svg&quot;</span> </span><span id="L-40"><a name="L-40"></a> cat ../cartoes.svg &gt; file<span class="si">${</span><span class="nv">i</span><span class="si">}</span>.svg </span><span id="L-41"><a name="L-41"></a> <span class="nb">echo</span> <span class="s2">&quot;Changing merge fields to file</span><span class="si">${</span><span class="nv">i</span><span class="si">}</span><span class="s2">.svg&quot;</span> </span><span id="L-42"><a name="L-42"></a> sed -i <span class="s2">&quot;s/label1/`printf \&quot;%04d\&quot; </span><span class="nv">$count</span><span class="s2">`/&quot;</span> file<span class="si">${</span><span class="nv">i</span><span class="si">}</span>.svg <span class="o">&amp;&amp;</span> <span class="nv">count</span><span class="o">=</span><span class="k">$((</span>count+1<span class="k">))</span> </span><span id="L-43"><a name="L-43"></a> sed -i <span class="s2">&quot;s/label2/`printf \&quot;%04d\&quot; </span><span class="nv">$count</span><span class="s2">`/&quot;</span> file<span class="si">${</span><span class="nv">i</span><span class="si">}</span>.svg <span class="o">&amp;&amp;</span> <span class="nv">count</span><span class="o">=</span><span class="k">$((</span>count+1<span class="k">))</span> </span><span id="L-44"><a name="L-44"></a> sed -i <span class="s2">&quot;s/label3/`printf \&quot;%04d\&quot; </span><span class="nv">$count</span><span class="s2">`/&quot;</span> file<span class="si">${</span><span class="nv">i</span><span class="si">}</span>.svg <span class="o">&amp;&amp;</span> <span class="nv">count</span><span class="o">=</span><span class="k">$((</span>count+1<span class="k">))</span> </span><span id="L-45"><a name="L-45"></a> sed -i <span class="s2">&quot;s/label4/`printf \&quot;%04d\&quot; </span><span class="nv">$count</span><span class="s2">`/&quot;</span> file<span class="si">${</span><span class="nv">i</span><span class="si">}</span>.svg <span class="o">&amp;&amp;</span> <span class="nv">count</span><span class="o">=</span><span class="k">$((</span>count+1<span class="k">))</span> </span><span id="L-46"><a name="L-46"></a> sed -i <span class="s2">&quot;s/label5/`printf \&quot;%04d\&quot; </span><span class="nv">$count</span><span class="s2">`/&quot;</span> file<span class="si">${</span><span class="nv">i</span><span class="si">}</span>.svg <span class="o">&amp;&amp;</span> <span class="nv">count</span><span class="o">=</span><span class="k">$((</span>count+1<span class="k">))</span> </span><span id="L-47"><a name="L-47"></a> sed -i <span class="s2">&quot;s/label6/`printf \&quot;%04d\&quot; </span><span class="nv">$count</span><span class="s2">`/&quot;</span> file<span class="si">${</span><span class="nv">i</span><span class="si">}</span>.svg <span class="o">&amp;&amp;</span> <span class="nv">count</span><span class="o">=</span><span class="k">$((</span>count+1<span class="k">))</span> </span><span id="L-48"><a name="L-48"></a> </span><span id="L-49"><a name="L-49"></a> <span class="c1"># to learn how export in onther formats read &#39;man inkscape&#39;</span> </span><span id="L-50"><a name="L-50"></a> <span class="nb">echo</span> <span class="s2">&quot;exporting file</span><span class="si">${</span><span class="nv">i</span><span class="si">}</span><span class="s2">.svg to file</span><span class="si">${</span><span class="nv">i</span><span class="si">}</span><span class="s2">.pdf&quot;</span> </span><span id="L-51"><a name="L-51"></a> inkscape -f file<span class="si">${</span><span class="nv">i</span><span class="si">}</span>.svg -A file<span class="si">${</span><span class="nv">i</span><span class="si">}</span>.pdf </span><span id="L-52"><a name="L-52"></a><span class="k">done</span> </span><span id="L-53"><a name="L-53"></a> </span><span id="L-54"><a name="L-54"></a><span class="nb">cd</span> .. </span><span id="L-55"><a name="L-55"></a>gs -dNOPAUSE -sDEVICE<span class="o">=</span>pdfwrite -sOUTPUTFILE<span class="o">=</span>combinedpdf.pdf -dBATCH ./mergeprint/*.pdf </span><span id="L-56"><a name="L-56"></a> </span><span id="L-57"><a name="L-57"></a><span class="nb">echo</span> <span class="s2">&quot;Removing work directory...&quot;</span> </span><span id="L-58"><a name="L-58"></a>rm -rf ./mergeprint </span></pre></div> </td></tr></table>
bash, inkscape, svg, tools