9 changed files with 46 additions and 47 deletions
@ -1,15 +1,15 @@
|
||||
module Squib |
||||
class Deck |
||||
|
||||
def save(range: :all, format: :png) |
||||
def save(range: :all, format: :png, prefix: "card_") |
||||
format = [format].flatten |
||||
save_png(range: range) if format.include? :png |
||||
save_png(range: range, prefix: prefix) if format.include? :png |
||||
save_pdf if format.include? :pdf |
||||
end |
||||
|
||||
def save_png(range: :all) |
||||
def save_png(range: :all, dir: "_img", prefix: 'card_') |
||||
range = rangeify(range) |
||||
range.each { |i| @cards[i].save_png(i) } |
||||
range.each { |i| @cards[i].save_png(i, dir, prefix) } |
||||
end |
||||
|
||||
end |
||||
|
||||
@ -1,8 +1,8 @@
|
||||
module Squib |
||||
class Card |
||||
|
||||
def save_png(i, dir: '_img') |
||||
cairo_context.target.write_to_png("#{dir}/img_#{i}.png") |
||||
def save_png(i, dir, prefix) |
||||
cairo_context.target.write_to_png("#{dir}/#{prefix}#{i}.png") |
||||
end |
||||
|
||||
end |
||||
|
||||
@ -0,0 +1,16 @@
|
||||
#!/usr/bin/env ruby |
||||
require 'squib' |
||||
|
||||
Squib::Deck.new(width: 825, height: 1125, cards: 3) do |
||||
background color: [1.0,1.0,1.0] |
||||
|
||||
data = xlsx file: 'sample.xlsx', sheet: 0 |
||||
|
||||
text str: data['Name'], x: 250, y: 55, font: 'Arial 54' |
||||
text str: data['Level'], x: 65, y: 65, font: 'Arial 72' |
||||
text str: data['Description'], x: 65, y: 600, font: 'Arial 36' |
||||
|
||||
save format: :png, prefix: 'sample_excel_' |
||||
end |
||||
|
||||
puts "Done!" |
||||
Binary file not shown.
Loading…
Reference in new issue