add save_sheet rtl option for duplex printing
This commit is contained in:
committed by
Andy Meneely
parent
a55300f844
commit
695bd8fb77
@@ -40,6 +40,7 @@ module Squib
|
||||
trim_radius: 38,
|
||||
trim: 0,
|
||||
width: 3300,
|
||||
rtl: false,
|
||||
}
|
||||
end
|
||||
|
||||
|
||||
@@ -9,7 +9,8 @@ module Squib
|
||||
cc = Cairo::Context.new(Cairo::ImageSurface.new(sheet_width, sheet_height))
|
||||
num_this_sheet = 0
|
||||
sheet_num = 0
|
||||
x, y = sheet.margin, sheet.margin
|
||||
y = sheet.margin
|
||||
x = sheet.rtl ? (sheet_width - sheet.margin - sheet.gap - @width) : sheet.margin
|
||||
@progress_bar.start("Saving PNG sheet to #{batch.summary}", @cards.size + 1) do |bar|
|
||||
range.each do |i|
|
||||
if num_this_sheet >= (sheet.columns * sheet.rows) # new sheet
|
||||
@@ -18,16 +19,17 @@ module Squib
|
||||
new_sheet = false
|
||||
num_this_sheet = 0
|
||||
sheet_num += 1
|
||||
x, y = sheet.margin, sheet.margin
|
||||
y = sheet.margin
|
||||
x = sheet.rtl ? (sheet_width - sheet.margin - sheet.gap - @width) : sheet.margin
|
||||
cc = Cairo::Context.new(Cairo::ImageSurface.new(sheet_width, sheet_height))
|
||||
end
|
||||
surface = trim(@cards[i].cairo_surface, sheet.trim, @width, @height)
|
||||
cc.set_source(surface, x, y)
|
||||
cc.paint
|
||||
num_this_sheet += 1
|
||||
x += surface.width + sheet.gap
|
||||
x += (surface.width + sheet.gap) * (sheet.rtl ? -1 : 1)
|
||||
if num_this_sheet % sheet.columns == 0 # new row
|
||||
x = sheet.margin
|
||||
x = sheet.rtl ? (sheet_width - sheet.margin - sheet.gap - @width) : sheet.margin
|
||||
y += surface.height + sheet.gap
|
||||
end
|
||||
bar.increment
|
||||
|
||||
Reference in New Issue
Block a user