parent
eb13450468
commit
44b899181a
|
|
@ -9,6 +9,7 @@ Features:
|
|||
* `save_sheet` method now supports `rtl` or "right-to-left", for easier duplex printing of backs (#204, #208) by @sparr
|
||||
* `yaml` method for reading in data, much like `csv` and `xlsx` by @blinks
|
||||
* Layouts now support `*=` and `/=` operators in addition to `+=` and `-=` (#200).
|
||||
* `save_pdf` method also supports `rtl` by @vador
|
||||
|
||||
Compatibility:
|
||||
* DPI is correctly respected with font sizes now. To convert to Squib v0.14+, divide your old font sizes by 3. By @felixleong
|
||||
|
|
|
|||
|
|
@ -90,5 +90,10 @@ crop_stroke_width
|
|||
|
||||
Width of the crop mark lines. Has no effect if ``crop_marks`` is ``false``.
|
||||
|
||||
rtl
|
||||
default ``false``
|
||||
|
||||
whether to render columns right to left, used for duplex printing of card backs
|
||||
|
||||
Examples
|
||||
--------
|
||||
|
|
|
|||
|
|
@ -13,9 +13,12 @@ module Squib
|
|||
def render_pdf(range, sheet)
|
||||
cc = init_cc(sheet)
|
||||
cc.scale(POINTS_PER_IN / @deck.dpi, POINTS_PER_IN / @deck.dpi) # for bug #62
|
||||
x, y = sheet.margin, sheet.margin
|
||||
card_width = @deck.width - 2 * sheet.trim
|
||||
card_height = @deck.height - 2 * sheet.trim
|
||||
start_x_pos = sheet.rtl ? sheet.width - sheet.margin - card_width - 2 * sheet.trim : sheet.margin
|
||||
x_increment = (card_width + sheet.gap) * (sheet.rtl ? -1 : 1)
|
||||
y = sheet.margin
|
||||
x = start_x_pos
|
||||
track_progress(range, sheet) do |bar|
|
||||
range.each do |i|
|
||||
card = @deck.cards[i]
|
||||
|
|
@ -38,14 +41,16 @@ module Squib
|
|||
bar.increment
|
||||
cc.reset_clip
|
||||
cc.translate(-x, -y)
|
||||
draw_crop_marks(cc, x, y, sheet) if sheet.crop_marks
|
||||
x += card.width + sheet.gap - 2 * sheet.trim
|
||||
if x > (sheet.width - card_width - sheet.margin)
|
||||
x = sheet.margin
|
||||
|
||||
draw_crop_marks(cc, x, y, sheet)
|
||||
x += x_increment
|
||||
if (x > (sheet.width - card_width - sheet.margin)) or (x < sheet.margin)
|
||||
x = start_x_pos
|
||||
y += card.height + sheet.gap - 2 * sheet.trim
|
||||
if y > (sheet.height - card_height - sheet.margin)
|
||||
cc.show_page # next page
|
||||
x, y = sheet.margin, sheet.margin
|
||||
y = sheet.margin
|
||||
x = start_x_pos
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -22,4 +22,8 @@ Squib::Deck.new(cards: 8) do
|
|||
crop_stroke_dash: '5 5', crop_stroke_color: :red, crop_stroke_width: 4.0,
|
||||
crop_margin_left: '0.3in', crop_margin_right: '0.45in',
|
||||
crop_margin_top: '0.4in', crop_margin_bottom: '0.85in'
|
||||
|
||||
# Right to left printing for duplex
|
||||
save_pdf file: 'save_pdf-crops-rtl.pdf', crop_marks: true, rtl: true
|
||||
|
||||
end
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -1842,6 +1842,449 @@ cairo: set_dash([[5.0, 5.0]])
|
|||
cairo: set_line_width([4.0])
|
||||
cairo: stroke([])
|
||||
surface: finish([])
|
||||
cairo: scale([0.24, 0.24])
|
||||
cairo: translate([2400, 75])
|
||||
cairo: rectangle([0, 0, 825, 1125])
|
||||
cairo: clip([])
|
||||
cairo: set_source([MockDouble, 0, 0])
|
||||
cairo: paint([])
|
||||
cairo: reset_clip([])
|
||||
cairo: translate([-2400, -75])
|
||||
cairo: move_to([2400, 0])
|
||||
cairo: line_to([2400, 74])
|
||||
cairo: set_source_color([:black])
|
||||
cairo: set_dash([[]])
|
||||
cairo: set_line_width([1.5])
|
||||
cairo: stroke([])
|
||||
cairo: move_to([3225, 0])
|
||||
cairo: line_to([3225, 74])
|
||||
cairo: set_source_color([:black])
|
||||
cairo: set_dash([[]])
|
||||
cairo: set_line_width([1.5])
|
||||
cairo: stroke([])
|
||||
cairo: move_to([2400, 2550])
|
||||
cairo: line_to([2400, 2476])
|
||||
cairo: set_source_color([:black])
|
||||
cairo: set_dash([[]])
|
||||
cairo: set_line_width([1.5])
|
||||
cairo: stroke([])
|
||||
cairo: move_to([3225, 2550])
|
||||
cairo: line_to([3225, 2476])
|
||||
cairo: set_source_color([:black])
|
||||
cairo: set_dash([[]])
|
||||
cairo: set_line_width([1.5])
|
||||
cairo: stroke([])
|
||||
cairo: move_to([0, 75])
|
||||
cairo: line_to([74, 75])
|
||||
cairo: set_source_color([:black])
|
||||
cairo: set_dash([[]])
|
||||
cairo: set_line_width([1.5])
|
||||
cairo: stroke([])
|
||||
cairo: move_to([3300, 75])
|
||||
cairo: line_to([3226, 75])
|
||||
cairo: set_source_color([:black])
|
||||
cairo: set_dash([[]])
|
||||
cairo: set_line_width([1.5])
|
||||
cairo: stroke([])
|
||||
cairo: move_to([0, 1200])
|
||||
cairo: line_to([74, 1200])
|
||||
cairo: set_source_color([:black])
|
||||
cairo: set_dash([[]])
|
||||
cairo: set_line_width([1.5])
|
||||
cairo: stroke([])
|
||||
cairo: move_to([3300, 1200])
|
||||
cairo: line_to([3226, 1200])
|
||||
cairo: set_source_color([:black])
|
||||
cairo: set_dash([[]])
|
||||
cairo: set_line_width([1.5])
|
||||
cairo: stroke([])
|
||||
cairo: translate([1575, 75])
|
||||
cairo: rectangle([0, 0, 825, 1125])
|
||||
cairo: clip([])
|
||||
cairo: set_source([MockDouble, 0, 0])
|
||||
cairo: paint([])
|
||||
cairo: reset_clip([])
|
||||
cairo: translate([-1575, -75])
|
||||
cairo: move_to([1575, 0])
|
||||
cairo: line_to([1575, 74])
|
||||
cairo: set_source_color([:black])
|
||||
cairo: set_dash([[]])
|
||||
cairo: set_line_width([1.5])
|
||||
cairo: stroke([])
|
||||
cairo: move_to([2400, 0])
|
||||
cairo: line_to([2400, 74])
|
||||
cairo: set_source_color([:black])
|
||||
cairo: set_dash([[]])
|
||||
cairo: set_line_width([1.5])
|
||||
cairo: stroke([])
|
||||
cairo: move_to([1575, 2550])
|
||||
cairo: line_to([1575, 2476])
|
||||
cairo: set_source_color([:black])
|
||||
cairo: set_dash([[]])
|
||||
cairo: set_line_width([1.5])
|
||||
cairo: stroke([])
|
||||
cairo: move_to([2400, 2550])
|
||||
cairo: line_to([2400, 2476])
|
||||
cairo: set_source_color([:black])
|
||||
cairo: set_dash([[]])
|
||||
cairo: set_line_width([1.5])
|
||||
cairo: stroke([])
|
||||
cairo: move_to([0, 75])
|
||||
cairo: line_to([74, 75])
|
||||
cairo: set_source_color([:black])
|
||||
cairo: set_dash([[]])
|
||||
cairo: set_line_width([1.5])
|
||||
cairo: stroke([])
|
||||
cairo: move_to([3300, 75])
|
||||
cairo: line_to([3226, 75])
|
||||
cairo: set_source_color([:black])
|
||||
cairo: set_dash([[]])
|
||||
cairo: set_line_width([1.5])
|
||||
cairo: stroke([])
|
||||
cairo: move_to([0, 1200])
|
||||
cairo: line_to([74, 1200])
|
||||
cairo: set_source_color([:black])
|
||||
cairo: set_dash([[]])
|
||||
cairo: set_line_width([1.5])
|
||||
cairo: stroke([])
|
||||
cairo: move_to([3300, 1200])
|
||||
cairo: line_to([3226, 1200])
|
||||
cairo: set_source_color([:black])
|
||||
cairo: set_dash([[]])
|
||||
cairo: set_line_width([1.5])
|
||||
cairo: stroke([])
|
||||
cairo: translate([750, 75])
|
||||
cairo: rectangle([0, 0, 825, 1125])
|
||||
cairo: clip([])
|
||||
cairo: set_source([MockDouble, 0, 0])
|
||||
cairo: paint([])
|
||||
cairo: reset_clip([])
|
||||
cairo: translate([-750, -75])
|
||||
cairo: move_to([750, 0])
|
||||
cairo: line_to([750, 74])
|
||||
cairo: set_source_color([:black])
|
||||
cairo: set_dash([[]])
|
||||
cairo: set_line_width([1.5])
|
||||
cairo: stroke([])
|
||||
cairo: move_to([1575, 0])
|
||||
cairo: line_to([1575, 74])
|
||||
cairo: set_source_color([:black])
|
||||
cairo: set_dash([[]])
|
||||
cairo: set_line_width([1.5])
|
||||
cairo: stroke([])
|
||||
cairo: move_to([750, 2550])
|
||||
cairo: line_to([750, 2476])
|
||||
cairo: set_source_color([:black])
|
||||
cairo: set_dash([[]])
|
||||
cairo: set_line_width([1.5])
|
||||
cairo: stroke([])
|
||||
cairo: move_to([1575, 2550])
|
||||
cairo: line_to([1575, 2476])
|
||||
cairo: set_source_color([:black])
|
||||
cairo: set_dash([[]])
|
||||
cairo: set_line_width([1.5])
|
||||
cairo: stroke([])
|
||||
cairo: move_to([0, 75])
|
||||
cairo: line_to([74, 75])
|
||||
cairo: set_source_color([:black])
|
||||
cairo: set_dash([[]])
|
||||
cairo: set_line_width([1.5])
|
||||
cairo: stroke([])
|
||||
cairo: move_to([3300, 75])
|
||||
cairo: line_to([3226, 75])
|
||||
cairo: set_source_color([:black])
|
||||
cairo: set_dash([[]])
|
||||
cairo: set_line_width([1.5])
|
||||
cairo: stroke([])
|
||||
cairo: move_to([0, 1200])
|
||||
cairo: line_to([74, 1200])
|
||||
cairo: set_source_color([:black])
|
||||
cairo: set_dash([[]])
|
||||
cairo: set_line_width([1.5])
|
||||
cairo: stroke([])
|
||||
cairo: move_to([3300, 1200])
|
||||
cairo: line_to([3226, 1200])
|
||||
cairo: set_source_color([:black])
|
||||
cairo: set_dash([[]])
|
||||
cairo: set_line_width([1.5])
|
||||
cairo: stroke([])
|
||||
cairo: translate([2400, 1200])
|
||||
cairo: rectangle([0, 0, 825, 1125])
|
||||
cairo: clip([])
|
||||
cairo: set_source([MockDouble, 0, 0])
|
||||
cairo: paint([])
|
||||
cairo: reset_clip([])
|
||||
cairo: translate([-2400, -1200])
|
||||
cairo: move_to([2400, 0])
|
||||
cairo: line_to([2400, 74])
|
||||
cairo: set_source_color([:black])
|
||||
cairo: set_dash([[]])
|
||||
cairo: set_line_width([1.5])
|
||||
cairo: stroke([])
|
||||
cairo: move_to([3225, 0])
|
||||
cairo: line_to([3225, 74])
|
||||
cairo: set_source_color([:black])
|
||||
cairo: set_dash([[]])
|
||||
cairo: set_line_width([1.5])
|
||||
cairo: stroke([])
|
||||
cairo: move_to([2400, 2550])
|
||||
cairo: line_to([2400, 2476])
|
||||
cairo: set_source_color([:black])
|
||||
cairo: set_dash([[]])
|
||||
cairo: set_line_width([1.5])
|
||||
cairo: stroke([])
|
||||
cairo: move_to([3225, 2550])
|
||||
cairo: line_to([3225, 2476])
|
||||
cairo: set_source_color([:black])
|
||||
cairo: set_dash([[]])
|
||||
cairo: set_line_width([1.5])
|
||||
cairo: stroke([])
|
||||
cairo: move_to([0, 1200])
|
||||
cairo: line_to([74, 1200])
|
||||
cairo: set_source_color([:black])
|
||||
cairo: set_dash([[]])
|
||||
cairo: set_line_width([1.5])
|
||||
cairo: stroke([])
|
||||
cairo: move_to([3300, 1200])
|
||||
cairo: line_to([3226, 1200])
|
||||
cairo: set_source_color([:black])
|
||||
cairo: set_dash([[]])
|
||||
cairo: set_line_width([1.5])
|
||||
cairo: stroke([])
|
||||
cairo: move_to([0, 2325])
|
||||
cairo: line_to([74, 2325])
|
||||
cairo: set_source_color([:black])
|
||||
cairo: set_dash([[]])
|
||||
cairo: set_line_width([1.5])
|
||||
cairo: stroke([])
|
||||
cairo: move_to([3300, 2325])
|
||||
cairo: line_to([3226, 2325])
|
||||
cairo: set_source_color([:black])
|
||||
cairo: set_dash([[]])
|
||||
cairo: set_line_width([1.5])
|
||||
cairo: stroke([])
|
||||
cairo: translate([1575, 1200])
|
||||
cairo: rectangle([0, 0, 825, 1125])
|
||||
cairo: clip([])
|
||||
cairo: set_source([MockDouble, 0, 0])
|
||||
cairo: paint([])
|
||||
cairo: reset_clip([])
|
||||
cairo: translate([-1575, -1200])
|
||||
cairo: move_to([1575, 0])
|
||||
cairo: line_to([1575, 74])
|
||||
cairo: set_source_color([:black])
|
||||
cairo: set_dash([[]])
|
||||
cairo: set_line_width([1.5])
|
||||
cairo: stroke([])
|
||||
cairo: move_to([2400, 0])
|
||||
cairo: line_to([2400, 74])
|
||||
cairo: set_source_color([:black])
|
||||
cairo: set_dash([[]])
|
||||
cairo: set_line_width([1.5])
|
||||
cairo: stroke([])
|
||||
cairo: move_to([1575, 2550])
|
||||
cairo: line_to([1575, 2476])
|
||||
cairo: set_source_color([:black])
|
||||
cairo: set_dash([[]])
|
||||
cairo: set_line_width([1.5])
|
||||
cairo: stroke([])
|
||||
cairo: move_to([2400, 2550])
|
||||
cairo: line_to([2400, 2476])
|
||||
cairo: set_source_color([:black])
|
||||
cairo: set_dash([[]])
|
||||
cairo: set_line_width([1.5])
|
||||
cairo: stroke([])
|
||||
cairo: move_to([0, 1200])
|
||||
cairo: line_to([74, 1200])
|
||||
cairo: set_source_color([:black])
|
||||
cairo: set_dash([[]])
|
||||
cairo: set_line_width([1.5])
|
||||
cairo: stroke([])
|
||||
cairo: move_to([3300, 1200])
|
||||
cairo: line_to([3226, 1200])
|
||||
cairo: set_source_color([:black])
|
||||
cairo: set_dash([[]])
|
||||
cairo: set_line_width([1.5])
|
||||
cairo: stroke([])
|
||||
cairo: move_to([0, 2325])
|
||||
cairo: line_to([74, 2325])
|
||||
cairo: set_source_color([:black])
|
||||
cairo: set_dash([[]])
|
||||
cairo: set_line_width([1.5])
|
||||
cairo: stroke([])
|
||||
cairo: move_to([3300, 2325])
|
||||
cairo: line_to([3226, 2325])
|
||||
cairo: set_source_color([:black])
|
||||
cairo: set_dash([[]])
|
||||
cairo: set_line_width([1.5])
|
||||
cairo: stroke([])
|
||||
cairo: translate([750, 1200])
|
||||
cairo: rectangle([0, 0, 825, 1125])
|
||||
cairo: clip([])
|
||||
cairo: set_source([MockDouble, 0, 0])
|
||||
cairo: paint([])
|
||||
cairo: reset_clip([])
|
||||
cairo: translate([-750, -1200])
|
||||
cairo: move_to([750, 0])
|
||||
cairo: line_to([750, 74])
|
||||
cairo: set_source_color([:black])
|
||||
cairo: set_dash([[]])
|
||||
cairo: set_line_width([1.5])
|
||||
cairo: stroke([])
|
||||
cairo: move_to([1575, 0])
|
||||
cairo: line_to([1575, 74])
|
||||
cairo: set_source_color([:black])
|
||||
cairo: set_dash([[]])
|
||||
cairo: set_line_width([1.5])
|
||||
cairo: stroke([])
|
||||
cairo: move_to([750, 2550])
|
||||
cairo: line_to([750, 2476])
|
||||
cairo: set_source_color([:black])
|
||||
cairo: set_dash([[]])
|
||||
cairo: set_line_width([1.5])
|
||||
cairo: stroke([])
|
||||
cairo: move_to([1575, 2550])
|
||||
cairo: line_to([1575, 2476])
|
||||
cairo: set_source_color([:black])
|
||||
cairo: set_dash([[]])
|
||||
cairo: set_line_width([1.5])
|
||||
cairo: stroke([])
|
||||
cairo: move_to([0, 1200])
|
||||
cairo: line_to([74, 1200])
|
||||
cairo: set_source_color([:black])
|
||||
cairo: set_dash([[]])
|
||||
cairo: set_line_width([1.5])
|
||||
cairo: stroke([])
|
||||
cairo: move_to([3300, 1200])
|
||||
cairo: line_to([3226, 1200])
|
||||
cairo: set_source_color([:black])
|
||||
cairo: set_dash([[]])
|
||||
cairo: set_line_width([1.5])
|
||||
cairo: stroke([])
|
||||
cairo: move_to([0, 2325])
|
||||
cairo: line_to([74, 2325])
|
||||
cairo: set_source_color([:black])
|
||||
cairo: set_dash([[]])
|
||||
cairo: set_line_width([1.5])
|
||||
cairo: stroke([])
|
||||
cairo: move_to([3300, 2325])
|
||||
cairo: line_to([3226, 2325])
|
||||
cairo: set_source_color([:black])
|
||||
cairo: set_dash([[]])
|
||||
cairo: set_line_width([1.5])
|
||||
cairo: stroke([])
|
||||
cairo: show_page([])
|
||||
cairo: translate([2400, 75])
|
||||
cairo: rectangle([0, 0, 825, 1125])
|
||||
cairo: clip([])
|
||||
cairo: set_source([MockDouble, 0, 0])
|
||||
cairo: paint([])
|
||||
cairo: reset_clip([])
|
||||
cairo: translate([-2400, -75])
|
||||
cairo: move_to([2400, 0])
|
||||
cairo: line_to([2400, 74])
|
||||
cairo: set_source_color([:black])
|
||||
cairo: set_dash([[]])
|
||||
cairo: set_line_width([1.5])
|
||||
cairo: stroke([])
|
||||
cairo: move_to([3225, 0])
|
||||
cairo: line_to([3225, 74])
|
||||
cairo: set_source_color([:black])
|
||||
cairo: set_dash([[]])
|
||||
cairo: set_line_width([1.5])
|
||||
cairo: stroke([])
|
||||
cairo: move_to([2400, 2550])
|
||||
cairo: line_to([2400, 2476])
|
||||
cairo: set_source_color([:black])
|
||||
cairo: set_dash([[]])
|
||||
cairo: set_line_width([1.5])
|
||||
cairo: stroke([])
|
||||
cairo: move_to([3225, 2550])
|
||||
cairo: line_to([3225, 2476])
|
||||
cairo: set_source_color([:black])
|
||||
cairo: set_dash([[]])
|
||||
cairo: set_line_width([1.5])
|
||||
cairo: stroke([])
|
||||
cairo: move_to([0, 75])
|
||||
cairo: line_to([74, 75])
|
||||
cairo: set_source_color([:black])
|
||||
cairo: set_dash([[]])
|
||||
cairo: set_line_width([1.5])
|
||||
cairo: stroke([])
|
||||
cairo: move_to([3300, 75])
|
||||
cairo: line_to([3226, 75])
|
||||
cairo: set_source_color([:black])
|
||||
cairo: set_dash([[]])
|
||||
cairo: set_line_width([1.5])
|
||||
cairo: stroke([])
|
||||
cairo: move_to([0, 1200])
|
||||
cairo: line_to([74, 1200])
|
||||
cairo: set_source_color([:black])
|
||||
cairo: set_dash([[]])
|
||||
cairo: set_line_width([1.5])
|
||||
cairo: stroke([])
|
||||
cairo: move_to([3300, 1200])
|
||||
cairo: line_to([3226, 1200])
|
||||
cairo: set_source_color([:black])
|
||||
cairo: set_dash([[]])
|
||||
cairo: set_line_width([1.5])
|
||||
cairo: stroke([])
|
||||
cairo: translate([1575, 75])
|
||||
cairo: rectangle([0, 0, 825, 1125])
|
||||
cairo: clip([])
|
||||
cairo: set_source([MockDouble, 0, 0])
|
||||
cairo: paint([])
|
||||
cairo: reset_clip([])
|
||||
cairo: translate([-1575, -75])
|
||||
cairo: move_to([1575, 0])
|
||||
cairo: line_to([1575, 74])
|
||||
cairo: set_source_color([:black])
|
||||
cairo: set_dash([[]])
|
||||
cairo: set_line_width([1.5])
|
||||
cairo: stroke([])
|
||||
cairo: move_to([2400, 0])
|
||||
cairo: line_to([2400, 74])
|
||||
cairo: set_source_color([:black])
|
||||
cairo: set_dash([[]])
|
||||
cairo: set_line_width([1.5])
|
||||
cairo: stroke([])
|
||||
cairo: move_to([1575, 2550])
|
||||
cairo: line_to([1575, 2476])
|
||||
cairo: set_source_color([:black])
|
||||
cairo: set_dash([[]])
|
||||
cairo: set_line_width([1.5])
|
||||
cairo: stroke([])
|
||||
cairo: move_to([2400, 2550])
|
||||
cairo: line_to([2400, 2476])
|
||||
cairo: set_source_color([:black])
|
||||
cairo: set_dash([[]])
|
||||
cairo: set_line_width([1.5])
|
||||
cairo: stroke([])
|
||||
cairo: move_to([0, 75])
|
||||
cairo: line_to([74, 75])
|
||||
cairo: set_source_color([:black])
|
||||
cairo: set_dash([[]])
|
||||
cairo: set_line_width([1.5])
|
||||
cairo: stroke([])
|
||||
cairo: move_to([3300, 75])
|
||||
cairo: line_to([3226, 75])
|
||||
cairo: set_source_color([:black])
|
||||
cairo: set_dash([[]])
|
||||
cairo: set_line_width([1.5])
|
||||
cairo: stroke([])
|
||||
cairo: move_to([0, 1200])
|
||||
cairo: line_to([74, 1200])
|
||||
cairo: set_source_color([:black])
|
||||
cairo: set_dash([[]])
|
||||
cairo: set_line_width([1.5])
|
||||
cairo: stroke([])
|
||||
cairo: move_to([3300, 1200])
|
||||
cairo: line_to([3226, 1200])
|
||||
cairo: set_source_color([:black])
|
||||
cairo: set_dash([[]])
|
||||
cairo: set_line_width([1.5])
|
||||
cairo: stroke([])
|
||||
surface: finish([])
|
||||
surface: finish([])
|
||||
surface: finish([])
|
||||
surface: finish([])
|
||||
|
|
|
|||
Loading…
Reference in New Issue