1.找到SVG文件的模板进行替换需要修改的内容,替换模板的需要修改的内容为具有特征的内容,

2.找到需要替换的CSV文件,读取内容,进行生成新的文件:

1-2脚本的书写:

require 'csv'
a = CSV.read("nan-ao.csv")
b = File.read("nan-ao.svg")
#puts a.inspect
csv_text = File.read('nan-ao.csv')
csv = CSV.parse(csv_text, :headers => true)
csv.each do |row|
  #puts row.to_hash
  #puts row['姓名']
  #puts row['编号']
  c = b.sub("###NAME###", row['姓名']).sub("###NUMBER###", row['编号'])
  #puts c
  current_file_name = "image/2021年9月20日南澳失联老人救援#{row['姓名']}-#{row['编号']}.svg"
  puts current_file_name
  File.write(current_file_name, c)
end

3.生成png jpg文件

脚本:
ffmpeg SVG>>jpg

Dir.entries('.').each do |e|
  if e.include? 'svg'
    command = %Q{ffmpeg -i "#{e}"  "#{e.sub('svg', 'jpg')}"}
    puts command
    `#{command}`
  end
end

ffmpeg png>>jpg

Dir.entries('.').each do |e|
  if e.include? 'png'
    command = %Q{ffmpeg -i "#{e}"  "#{e.sub('png', 'jpg')}"}
    puts command
    `#{command}`
  end
end    


>p>脚本:Inkscape svg>>png

 

Dir.glob('*.svg').each do |file|
  puts "== processing file: #{file}"
  inkscape = '/workspace/coding_tools/inkscape'
  command = "#{inkscape} -o #{file.sub('.svg', '')}.png -w 1080 #{file}"
  `#{command}`
end

Inkscape png>>jpg


<span class="hljs-constant">Dir</span>.glob(<span class="hljs-string">&#39;*.png&#39;</span>).each <span class="hljs-keyword">do</span> |file|
puts <span class="hljs-string">&quot;== processing file: <span class="hljs-subst">#{file}</span>&quot;</span>
command = <span class="hljs-string">&quot;mogrify -format jpg <span class="hljs-subst">#{file}</span>&quot;</span>
<span class="hljs-string">`<span class="hljs-subst">#{command}</span>`</span>
<span class="hljs-keyword">end</span>