lib/squib/graphics/save_doc.rb in squib-0.9.0 vs lib/squib/graphics/save_doc.rb in squib-0.10.0

- old
+ new

@@ -11,40 +11,41 @@ card_width = @width - 2 * sheet.trim card_height = @height - 2 * sheet.trim @progress_bar.start("Saving PDF to #{file}", range.size) do |bar| range.each do |i| card = @cards[i] - cc.translate(x,y) + cc.translate(x, y) cc.rectangle(sheet.trim, sheet.trim, card_width, card_height) cc.clip case card.backend.downcase.to_sym when :memory cc.set_source(card.cairo_surface, 0, 0) cc.paint when :svg card.cairo_surface.finish cc.save - cc.scale(0.8,0.8) # I really don't know why I needed to do this at all. But 0.8 is the magic number to get this to scale right + cc.scale(0.8, 0.8) # I really don't know why I needed to do this at all. But 0.8 is the magic number to get this to scale right cc.render_rsvg_handle(RSVG::Handle.new_from_file(card.svgfile), nil) cc.restore else abort "No such back end supported for save_pdf: #{backend}" end bar.increment cc.reset_clip - cc.translate(-x,-y) - x += card.width + sheet.gap - 2*sheet.trim + cc.translate(-x, -y) + x += card.width + sheet.gap - 2 * sheet.trim if x > (sheet.width - card_width - sheet.margin) x = sheet.margin - y += card.height + sheet.gap - 2*sheet.trim + 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 + x, y = sheet.margin, sheet.margin end end end end + cc.target.finish end # :nodoc: # @api private def render_sheet(range, batch, sheet) @@ -88,12 +89,12 @@ # @param height The height of the surface prior to the trim # :nodoc: # @api private def trim(surface, trim, width, height) if trim > 0 - tmp = Cairo::ImageSurface.new(width-2*trim, height-2*trim) + tmp = Cairo::ImageSurface.new(width - 2 * trim, height - 2 * trim) cc = Cairo::Context.new(tmp) - cc.set_source(surface,-1*trim, -1*trim) + cc.set_source(surface, -1 * trim, -1 * trim) cc.paint surface = tmp end surface end