9 changed files with 46 additions and 47 deletions
@ -1,15 +1,15 @@ |
|||||||
module Squib |
module Squib |
||||||
class Deck |
class Deck |
||||||
|
|
||||||
def save(range: :all, format: :png) |
def save(range: :all, format: :png, prefix: "card_") |
||||||
format = [format].flatten |
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 |
save_pdf if format.include? :pdf |
||||||
end |
end |
||||||
|
|
||||||
def save_png(range: :all) |
def save_png(range: :all, dir: "_img", prefix: 'card_') |
||||||
range = rangeify(range) |
range = rangeify(range) |
||||||
range.each { |i| @cards[i].save_png(i) } |
range.each { |i| @cards[i].save_png(i, dir, prefix) } |
||||||
end |
end |
||||||
|
|
||||||
end |
end |
||||||
|
|||||||
@ -1,8 +1,8 @@ |
|||||||
module Squib |
module Squib |
||||||
class Card |
class Card |
||||||
|
|
||||||
def save_png(i, dir: '_img') |
def save_png(i, dir, prefix) |
||||||
cairo_context.target.write_to_png("#{dir}/img_#{i}.png") |
cairo_context.target.write_to_png("#{dir}/#{prefix}#{i}.png") |
||||||
end |
end |
||||||
|
|
||||||
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