File: graphics.rb

package info (click to toggle)
ruby-pdf-inspector 1.1.0-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 176 kB
  • ctags: 77
  • sloc: ruby: 277; makefile: 2
file content (170 lines) | stat: -rw-r--r-- 3,851 bytes parent folder | download | duplicates (2)
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
168
169
170
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(*values)
          @save_graphics_state_count += 1
        end

        def restore_graphics_state(*values)
          @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