1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167
|
module PDF
class Inspector
module Graphics
class Line < Inspector
attr_accessor :points, :widths
def initialize
@points = []
@widths = []
end
def append_line(*params)
@points << params
end
def begin_new_subpath(*params)
@points << params
end
def set_line_width(params)
@widths << params
end
end
class Rectangle < Inspector
attr_reader :rectangles
def initialize
@rectangles = []
end
def append_rectangle(*params)
@rectangles << {
point: params[0..1],
width: params[2],
height: params[3]
}
end
end
class Curve < Inspector
attr_reader :coords
def initialize
@coords = []
end
def begin_new_subpath(*params)
@coords += params
end
def append_curved_segment(*params)
@coords += params
end
end
class Color < Inspector
attr_reader :stroke_color, :fill_color, :stroke_color_count,
:fill_color_count, :stroke_color_space_count, :color_space
def initialize
@stroke_color_count = 0
@fill_color_count = 0
@stroke_color_space_count = { DeviceCMYK: 0, DeviceRGB: 0 }
end
def set_color_for_stroking_and_special(*params)
@stroke_color_count += 1
@stroke_color = params
end
def set_color_for_nonstroking_and_special(*params)
@fill_color_count += 1
@fill_color = params
end
def set_stroke_color_space(*params)
@stroke_color_space_count[params[0]] += 1
@color_space = params[0]
end
end
class Dash < Inspector
attr_reader :stroke_dash, :stroke_dash_count
def initialize
@stroke_dash_count = 0
end
def set_line_dash(*params)
@stroke_dash_count += 1
@stroke_dash = params
end
end
class CapStyle < Inspector
attr_reader :cap_style, :cap_style_count
def initialize
@cap_style_count = 0
end
def set_line_cap_style(*params)
@cap_style_count += 1
@cap_style = params[0]
end
end
class JoinStyle < Inspector
attr_reader :join_style, :join_style_count
def initialize
@join_style_count = 0
end
def set_line_join_style(*params)
@join_style_count += 1
@join_style = params[0]
end
end
class Matrix < Inspector
attr_reader :matrices
def initialize
@matrices = []
end
def concatenate_matrix(*values)
@matrices << values
end
end
class State < Inspector
attr_reader :save_graphics_state_count, :restore_graphics_state_count
def initialize
@save_graphics_state_count = 0
@restore_graphics_state_count = 0
end
def save_graphics_state(*)
@save_graphics_state_count += 1
end
def restore_graphics_state(*)
@restore_graphics_state_count += 1
end
end
class Pattern < Inspector
attr_reader :patterns
def initialize
super
@patterns = {}
end
def page=(page)
page.patterns.each do |label, stream|
@patterns[label] = stream
end
end
end
end
end
end
|