class Draught::Renderer::PdfContext

Attributes

height[R]
width[R]

Public Class Methods

new(width, height) click to toggle source
# File lib/draught/renderer.rb, line 12
def initialize(width, height)
  @width, @height = width, height
end

Public Instance Methods

document() click to toggle source
# File lib/draught/renderer.rb, line 16
def document
  @document ||= Prawn::Document.new(page_size: [width, height], margin: 0)
end
draw_closed_path(path) click to toggle source
# File lib/draught/renderer.rb, line 20
def draw_closed_path(path)
  points = path.points.dup
  close_and_stroke do
    self.line_width = 0.003
    move_to(*point_tuple(points.shift))
    points.each do |pointlike|
      draw_pointlike(pointlike)
    end
  end
end
draw_pointlike(pointlike) click to toggle source
# File lib/draught/renderer.rb, line 31
def draw_pointlike(pointlike)
  case pointlike
  when Draught::Curve
    pointlike.as_cubic_beziers.each do |cubic_bezier|
      draw_pointlike(cubic_bezier)
    end
  when Draught::CubicBezier
    curve_to(point_tuple(pointlike.end_point), {
      bounds: [
        point_tuple(pointlike.control_point_1),
        point_tuple(pointlike.control_point_2)
      ]
    })
  else
    line_to(*point_tuple(pointlike))
  end
end
point_tuple(point) click to toggle source
# File lib/draught/renderer.rb, line 49
def point_tuple(point)
  [point.x, point.y]
end