check_writer 0.4.3 → 0.4.4
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +2 -4
- data/Gemfile.lock +17 -17
- data/README.rdoc +7 -10
- data/Rakefile +0 -1
- data/VERSION +1 -1
- data/check_writer.gemspec +11 -33
- data/lib/check_writer/attribute_formatting.rb +3 -1
- data/lib/check_writer/check.rb +51 -25
- data/spec/assets/blank-0.12.0.pdf +177 -0
- data/spec/assets/two_in_one-0.12.0.pdf +0 -0
- data/spec/assets/void-0.12.0.pdf +0 -0
- data/spec/assets/with_second_signature_line-0.12.0.pdf +0 -0
- data/spec/assets/with_signature_image-0.12.0.pdf +0 -0
- data/spec/assets/with_stub_table_data-0.12.0.pdf +23 -24
- data/spec/assets/with_stubs-0.12.0.pdf +0 -0
- data/spec/assets/with_two_thirds_stub-0.12.0.pdf +0 -0
- data/spec/check_spec.rb +53 -2
- data/spec/spec_helper.rb +1 -1
- metadata +24 -62
- data/Appraisals +0 -11
- data/gemfiles/prawn0.12.0.gemfile +0 -14
- data/gemfiles/prawn0.12.0.gemfile.lock +0 -54
- data/gemfiles/prawn0.6.1.gemfile +0 -14
- data/gemfiles/prawn0.6.1.gemfile.lock +0 -55
- data/gemfiles/prawn0.6.3.gemfile +0 -14
- data/gemfiles/prawn0.6.3.gemfile.lock +0 -55
- data/spec/assets/test-0.6.1.pdf +0 -0
- data/spec/assets/test-0.6.3.pdf +0 -0
- data/spec/assets/two_in_one-0.6.1.pdf +0 -0
- data/spec/assets/two_in_one-0.6.3.pdf +0 -0
- data/spec/assets/with_second_signature_line-0.6.1.pdf +0 -0
- data/spec/assets/with_second_signature_line-0.6.3.pdf +0 -0
- data/spec/assets/with_signature_image-0.6.1.pdf +0 -0
- data/spec/assets/with_signature_image-0.6.3.pdf +0 -0
- data/spec/assets/with_stub_table_data-0.6.1.pdf +0 -939
- data/spec/assets/with_stub_table_data-0.6.3.pdf +0 -939
- data/spec/assets/with_stubs-0.6.1.pdf +0 -0
- data/spec/assets/with_stubs-0.6.3.pdf +0 -0
data/Gemfile
CHANGED
@@ -4,17 +4,15 @@ source "http://rubygems.org"
|
|
4
4
|
# gem "activesupport", ">= 2.3.5"
|
5
5
|
|
6
6
|
gem 'activesupport'
|
7
|
-
gem 'prawn'
|
7
|
+
gem 'prawn', '>= 0.12.0'
|
8
8
|
gem 'linguistics'
|
9
9
|
|
10
10
|
# Add dependencies to develop your gem here.
|
11
11
|
# Include everything needed to run rake, tests, features, etc.
|
12
12
|
group :development do
|
13
|
-
gem 'appraisal'
|
14
13
|
gem 'rake'
|
15
14
|
gem "jeweler", "~> 1.8.3"
|
16
|
-
gem 'appraisal'
|
17
15
|
gem "rspec", "~> 2.8.0"
|
18
16
|
gem "rdoc", "~> 3.12"
|
19
|
-
gem "bundler", "
|
17
|
+
gem "bundler", ">= 1.1.0"
|
20
18
|
end
|
data/Gemfile.lock
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
GEM
|
2
2
|
remote: http://rubygems.org/
|
3
3
|
specs:
|
4
|
+
Ascii85 (1.0.2)
|
4
5
|
activesupport (3.2.1)
|
5
6
|
i18n (~> 0.6)
|
6
7
|
multi_json (~> 1.0)
|
7
|
-
|
8
|
-
bundler
|
9
|
-
rake
|
8
|
+
afm (0.2.0)
|
10
9
|
diff-lcs (1.1.3)
|
11
10
|
git (1.2.5)
|
11
|
+
hashery (2.1.0)
|
12
12
|
i18n (0.6.0)
|
13
13
|
jeweler (1.8.3)
|
14
14
|
bundler (~> 1.0)
|
@@ -18,17 +18,16 @@ GEM
|
|
18
18
|
json (1.7.1)
|
19
19
|
linguistics (1.0.9)
|
20
20
|
multi_json (1.1.0)
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
prawn
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
rake (0.9.2.2)
|
21
|
+
pdf-reader (1.3.0)
|
22
|
+
Ascii85 (~> 1.0.0)
|
23
|
+
afm (~> 0.2.0)
|
24
|
+
hashery (~> 2.0)
|
25
|
+
ruby-rc4
|
26
|
+
ttfunk
|
27
|
+
prawn (0.12.0)
|
28
|
+
pdf-reader (>= 0.9.0)
|
29
|
+
ttfunk (~> 1.0.2)
|
30
|
+
rake (10.0.3)
|
32
31
|
rdoc (3.12)
|
33
32
|
json (~> 1.4)
|
34
33
|
rspec (2.8.0)
|
@@ -39,17 +38,18 @@ GEM
|
|
39
38
|
rspec-expectations (2.8.0)
|
40
39
|
diff-lcs (~> 1.1.2)
|
41
40
|
rspec-mocks (2.8.0)
|
41
|
+
ruby-rc4 (0.1.5)
|
42
|
+
ttfunk (1.0.3)
|
42
43
|
|
43
44
|
PLATFORMS
|
44
45
|
ruby
|
45
46
|
|
46
47
|
DEPENDENCIES
|
47
48
|
activesupport
|
48
|
-
|
49
|
-
bundler (~> 1.1.0)
|
49
|
+
bundler (>= 1.1.0)
|
50
50
|
jeweler (~> 1.8.3)
|
51
51
|
linguistics
|
52
|
-
prawn
|
52
|
+
prawn (>= 0.12.0)
|
53
53
|
rake
|
54
54
|
rdoc (~> 3.12)
|
55
55
|
rspec (~> 2.8.0)
|
data/README.rdoc
CHANGED
@@ -57,7 +57,7 @@ Here's an example[https://github.com/rylwin/check_writer/raw/master/spec/assets/
|
|
57
57
|
|
58
58
|
It is also possible to include additional data in the stubs in the form of a table. If +with_stubs+ is true,
|
59
59
|
then passing a 2D array to +stub_table_data+ will generate a table within each stub. To pass options to Prawn's
|
60
|
-
#table method, set +stub_table_options+ with a hash of options.
|
60
|
+
#table method, set +stub_table_options+ with a hash of options. You can also use +stub_table_lambda+ to provide a block that is sent to the #table method.
|
61
61
|
Example here[https://github.com/rylwin/check_writer/raw/master/spec/assets/with_stub_table_data-0.12.0.pdf].
|
62
62
|
|
63
63
|
Instead of just returning a PDF, you can access the Prawn PDF writer object
|
@@ -76,17 +76,14 @@ reference a JPG or PNG image. The recommended dimensions for a signature image a
|
|
76
76
|
|
77
77
|
If you need a second signature line on the check, +:second_signature_line+ to true.
|
78
78
|
|
79
|
-
==
|
79
|
+
== Void and Blank Checks
|
80
80
|
|
81
|
-
|
81
|
+
There are times where you may want to print a check that is clearly marked as a
|
82
|
+
void check. Setting +void+ to a truish value will place "void" in place of the
|
83
|
+
amount, check number, and the signature line.
|
82
84
|
|
83
|
-
|
84
|
-
|
85
|
-
Note that if you need modify the Gemfile and need to re-bundle, you will also have to reinstall the appraisal gemfiles as well. To do this, your must first remove the +:development+ group from the Gemfile (i.e., the gems in the development group need to be bundled along with the rest of the gems, so they cannot be isolated in the dev group). Once you have done this, run:
|
86
|
-
|
87
|
-
$ rake appraisal:install
|
88
|
-
|
89
|
-
After appraisal installs its gemfiles, you can revert your Gemfile to as it was before.
|
85
|
+
If you want the PDF to include everything except the lower one-third of the
|
86
|
+
page (the actual check part), set +blank+ to a truish value.
|
90
87
|
|
91
88
|
== Contributing to check_writer
|
92
89
|
|
data/Rakefile
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.4.
|
1
|
+
0.4.4
|
data/check_writer.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "check_writer"
|
8
|
-
s.version = "0.4.
|
8
|
+
s.version = "0.4.4"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Ryan Winograd"]
|
12
|
-
s.date = "
|
12
|
+
s.date = "2013-03-08"
|
13
13
|
s.description = "Ruby library for generating PDF checks that you can take to the bank"
|
14
14
|
s.email = "ryan@thewinograds.com"
|
15
15
|
s.extra_rdoc_files = [
|
@@ -19,7 +19,6 @@ Gem::Specification.new do |s|
|
|
19
19
|
s.files = [
|
20
20
|
".document",
|
21
21
|
".rspec",
|
22
|
-
"Appraisals",
|
23
22
|
"Gemfile",
|
24
23
|
"Gemfile.lock",
|
25
24
|
"LICENSE.txt",
|
@@ -27,34 +26,19 @@ Gem::Specification.new do |s|
|
|
27
26
|
"Rakefile",
|
28
27
|
"VERSION",
|
29
28
|
"check_writer.gemspec",
|
30
|
-
"gemfiles/prawn0.12.0.gemfile",
|
31
|
-
"gemfiles/prawn0.12.0.gemfile.lock",
|
32
|
-
"gemfiles/prawn0.6.1.gemfile",
|
33
|
-
"gemfiles/prawn0.6.1.gemfile.lock",
|
34
|
-
"gemfiles/prawn0.6.3.gemfile",
|
35
|
-
"gemfiles/prawn0.6.3.gemfile.lock",
|
36
29
|
"lib/check_writer.rb",
|
37
30
|
"lib/check_writer/attribute_formatting.rb",
|
38
31
|
"lib/check_writer/check.rb",
|
32
|
+
"spec/assets/blank-0.12.0.pdf",
|
39
33
|
"spec/assets/sample-signature.png",
|
40
34
|
"spec/assets/test-0.12.0.pdf",
|
41
|
-
"spec/assets/test-0.6.1.pdf",
|
42
|
-
"spec/assets/test-0.6.3.pdf",
|
43
35
|
"spec/assets/two_in_one-0.12.0.pdf",
|
44
|
-
"spec/assets/
|
45
|
-
"spec/assets/two_in_one-0.6.3.pdf",
|
36
|
+
"spec/assets/void-0.12.0.pdf",
|
46
37
|
"spec/assets/with_second_signature_line-0.12.0.pdf",
|
47
|
-
"spec/assets/with_second_signature_line-0.6.1.pdf",
|
48
|
-
"spec/assets/with_second_signature_line-0.6.3.pdf",
|
49
38
|
"spec/assets/with_signature_image-0.12.0.pdf",
|
50
|
-
"spec/assets/with_signature_image-0.6.1.pdf",
|
51
|
-
"spec/assets/with_signature_image-0.6.3.pdf",
|
52
39
|
"spec/assets/with_stub_table_data-0.12.0.pdf",
|
53
|
-
"spec/assets/with_stub_table_data-0.6.1.pdf",
|
54
|
-
"spec/assets/with_stub_table_data-0.6.3.pdf",
|
55
40
|
"spec/assets/with_stubs-0.12.0.pdf",
|
56
|
-
"spec/assets/
|
57
|
-
"spec/assets/with_stubs-0.6.3.pdf",
|
41
|
+
"spec/assets/with_two_thirds_stub-0.12.0.pdf",
|
58
42
|
"spec/check_spec.rb",
|
59
43
|
"spec/spec_helper.rb",
|
60
44
|
"vendor/GnuMICR-0.30/AUTHORS",
|
@@ -86,38 +70,32 @@ Gem::Specification.new do |s|
|
|
86
70
|
|
87
71
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
88
72
|
s.add_runtime_dependency(%q<activesupport>, [">= 0"])
|
89
|
-
s.add_runtime_dependency(%q<prawn>, [">= 0"])
|
73
|
+
s.add_runtime_dependency(%q<prawn>, [">= 0.12.0"])
|
90
74
|
s.add_runtime_dependency(%q<linguistics>, [">= 0"])
|
91
|
-
s.add_development_dependency(%q<appraisal>, [">= 0"])
|
92
75
|
s.add_development_dependency(%q<rake>, [">= 0"])
|
93
76
|
s.add_development_dependency(%q<jeweler>, ["~> 1.8.3"])
|
94
|
-
s.add_development_dependency(%q<appraisal>, [">= 0"])
|
95
77
|
s.add_development_dependency(%q<rspec>, ["~> 2.8.0"])
|
96
78
|
s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
|
97
|
-
s.add_development_dependency(%q<bundler>, ["
|
79
|
+
s.add_development_dependency(%q<bundler>, [">= 1.1.0"])
|
98
80
|
else
|
99
81
|
s.add_dependency(%q<activesupport>, [">= 0"])
|
100
|
-
s.add_dependency(%q<prawn>, [">= 0"])
|
82
|
+
s.add_dependency(%q<prawn>, [">= 0.12.0"])
|
101
83
|
s.add_dependency(%q<linguistics>, [">= 0"])
|
102
|
-
s.add_dependency(%q<appraisal>, [">= 0"])
|
103
84
|
s.add_dependency(%q<rake>, [">= 0"])
|
104
85
|
s.add_dependency(%q<jeweler>, ["~> 1.8.3"])
|
105
|
-
s.add_dependency(%q<appraisal>, [">= 0"])
|
106
86
|
s.add_dependency(%q<rspec>, ["~> 2.8.0"])
|
107
87
|
s.add_dependency(%q<rdoc>, ["~> 3.12"])
|
108
|
-
s.add_dependency(%q<bundler>, ["
|
88
|
+
s.add_dependency(%q<bundler>, [">= 1.1.0"])
|
109
89
|
end
|
110
90
|
else
|
111
91
|
s.add_dependency(%q<activesupport>, [">= 0"])
|
112
|
-
s.add_dependency(%q<prawn>, [">= 0"])
|
92
|
+
s.add_dependency(%q<prawn>, [">= 0.12.0"])
|
113
93
|
s.add_dependency(%q<linguistics>, [">= 0"])
|
114
|
-
s.add_dependency(%q<appraisal>, [">= 0"])
|
115
94
|
s.add_dependency(%q<rake>, [">= 0"])
|
116
95
|
s.add_dependency(%q<jeweler>, ["~> 1.8.3"])
|
117
|
-
s.add_dependency(%q<appraisal>, [">= 0"])
|
118
96
|
s.add_dependency(%q<rspec>, ["~> 2.8.0"])
|
119
97
|
s.add_dependency(%q<rdoc>, ["~> 3.12"])
|
120
|
-
s.add_dependency(%q<bundler>, ["
|
98
|
+
s.add_dependency(%q<bundler>, [">= 1.1.0"])
|
121
99
|
end
|
122
100
|
end
|
123
101
|
|
@@ -21,6 +21,7 @@ module CheckWriter
|
|
21
21
|
#
|
22
22
|
# amount = 1000 => $1,000.00
|
23
23
|
def formatted_amount
|
24
|
+
return "VOID" if void
|
24
25
|
separated_dollars = dollars.to_s.gsub(/(\d)(?=(\d\d\d)+(?!\d))/, "\\1,")
|
25
26
|
cents_string = (cents < 10) ? "0#{cents}" : cents
|
26
27
|
"$#{separated_dollars}.#{cents_string}"
|
@@ -30,7 +31,8 @@ module CheckWriter
|
|
30
31
|
#
|
31
32
|
# amount = 1.12 => One Dollar and Twelve Cents
|
32
33
|
def amount_in_words
|
33
|
-
|
34
|
+
return "VOID" if void
|
35
|
+
# Wrap cents in string before calling numwords to avoid
|
34
36
|
# SafeBuffer cannot modify string in place error
|
35
37
|
cents = "#{self.cents}".en.numwords
|
36
38
|
|
data/lib/check_writer/check.rb
CHANGED
@@ -5,22 +5,30 @@ module CheckWriter
|
|
5
5
|
|
6
6
|
include CheckWriter::AttributeFormatting
|
7
7
|
|
8
|
+
STUB_FORMATS = [:one_third, :two_thirds]
|
9
|
+
|
8
10
|
attr_accessor :number, :date,
|
9
11
|
:payee_name, :payor_name,
|
10
12
|
:payee_address, :payor_address,
|
11
13
|
:bank_name, :bank_address, :bank_fraction,
|
12
14
|
:routing_number, :account_number,
|
13
|
-
:amount, :memo,
|
15
|
+
:amount, :memo, :void, :blank,
|
14
16
|
:with_stubs, :stub_table_data, :stub_table_options,
|
17
|
+
:stub_table_lambda,
|
15
18
|
:second_signature_line,
|
16
|
-
:signature_image_file
|
19
|
+
:signature_image_file,
|
20
|
+
:stub_format
|
17
21
|
|
18
22
|
def initialize(attributes={})
|
19
23
|
attributes.reverse_merge!(
|
20
24
|
:date => Date.today,
|
25
|
+
:void => false,
|
26
|
+
:blank => false,
|
21
27
|
:with_stubs => false,
|
22
28
|
:stub_table_data => [],
|
23
|
-
:stub_table_options => {}
|
29
|
+
:stub_table_options => {},
|
30
|
+
:stub_table_lambda => nil,
|
31
|
+
:stub_format => :one_third
|
24
32
|
)
|
25
33
|
|
26
34
|
_assign_attributes(attributes)
|
@@ -43,6 +51,14 @@ module CheckWriter
|
|
43
51
|
@pdf
|
44
52
|
end
|
45
53
|
|
54
|
+
def stub_format=(val)
|
55
|
+
if !STUB_FORMATS.include?(val.to_sym)
|
56
|
+
raise "Invalid stub_format '#{val}'. Must be one of #{STUB_FORMATS}."
|
57
|
+
end
|
58
|
+
|
59
|
+
@stub_format = val
|
60
|
+
end
|
61
|
+
|
46
62
|
private
|
47
63
|
|
48
64
|
def _assign_attributes(attr)
|
@@ -56,7 +72,7 @@ module CheckWriter
|
|
56
72
|
|
57
73
|
if with_stubs
|
58
74
|
check_stub(true) # top 1/3 stub
|
59
|
-
check_stub(false) # middle 1/3 stub
|
75
|
+
check_stub(false) if stub_format == :one_third # middle 1/3 stub
|
60
76
|
end
|
61
77
|
|
62
78
|
@pdf.bounding_box [@pdf.bounds.left,@pdf.bounds.top - extra_top_margin_height - box_height*2 - between_box_height*2],
|
@@ -72,7 +88,20 @@ module CheckWriter
|
|
72
88
|
_payee_address
|
73
89
|
signature
|
74
90
|
micr
|
75
|
-
|
91
|
+
|
92
|
+
if void
|
93
|
+
if Gem::Version.new(Prawn::VERSION) >= Gem::Version.new("0.12.0")
|
94
|
+
@pdf.draw_text "VOID",
|
95
|
+
:at => [@pdf.bounds.left + 400, @pdf.bounds.top - 200],
|
96
|
+
:size => 40
|
97
|
+
else
|
98
|
+
@pdf.text "VOID",
|
99
|
+
:at => [@pdf.bounds.left + 400, @pdf.bounds.top - 200],
|
100
|
+
:size => 40
|
101
|
+
end
|
102
|
+
end # end void
|
103
|
+
|
104
|
+
end unless blank # end check bounding box
|
76
105
|
|
77
106
|
# calling stroke here seems to flush the writer. When we don't call stroke, some lines aren't output
|
78
107
|
@pdf.stroke
|
@@ -167,7 +196,7 @@ module CheckWriter
|
|
167
196
|
box_at = [@pdf.bounds.right - inches(2.5), @pdf.bounds.bottom + inches(0.7)]
|
168
197
|
sig_at = [@pdf.bounds.right - inches(2.5), @pdf.bounds.bottom + inches(0.7) + 40]
|
169
198
|
|
170
|
-
@pdf.image @signature_image_file, :at => sig_at if @signature_image_file
|
199
|
+
@pdf.image @signature_image_file, :scale => 0.25, :at => sig_at if @signature_image_file
|
171
200
|
|
172
201
|
second_sig_box_at = box_at.dup
|
173
202
|
second_sig_box_at[1] += inches(0.6)
|
@@ -194,7 +223,7 @@ module CheckWriter
|
|
194
223
|
def check_stub(top_stub=true)
|
195
224
|
check_number(!top_stub)
|
196
225
|
top = top_stub ? @pdf.bounds.top - extra_top_margin_height : @pdf.bounds.top - extra_top_margin_height - box_height - between_box_height
|
197
|
-
@pdf.bounding_box [@pdf.bounds.left, top], :width => @pdf.bounds.right - @pdf.bounds.left, :height =>
|
226
|
+
@pdf.bounding_box [@pdf.bounds.left, top], :width => @pdf.bounds.right - @pdf.bounds.left, :height => stub_height do
|
198
227
|
@pdf.stroke_bounds
|
199
228
|
|
200
229
|
stub_table
|
@@ -206,26 +235,14 @@ module CheckWriter
|
|
206
235
|
unless stub_table_data.empty?
|
207
236
|
width = @pdf.bounds.right - @pdf.bounds.left
|
208
237
|
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
238
|
+
opts = stub_table_options.reverse_merge(
|
239
|
+
:header => true,
|
240
|
+
:width => width
|
241
|
+
)
|
213
242
|
|
214
|
-
|
215
|
-
|
216
|
-
:border_style => :underline_header,
|
217
|
-
:width => width
|
218
|
-
)
|
219
|
-
|
220
|
-
@pdf.table(stub_table_data, opts)
|
221
|
-
|
222
|
-
stub_table_data.insert(0, headers)
|
243
|
+
if stub_table_lambda
|
244
|
+
@pdf.table(stub_table_data, opts, &stub_table_lambda)
|
223
245
|
else
|
224
|
-
opts = stub_table_options.reverse_merge(
|
225
|
-
:header => true,
|
226
|
-
:width => width
|
227
|
-
)
|
228
|
-
|
229
246
|
@pdf.table(stub_table_data, opts)
|
230
247
|
end
|
231
248
|
end
|
@@ -243,6 +260,15 @@ module CheckWriter
|
|
243
260
|
180 # 2.5in
|
244
261
|
end
|
245
262
|
|
263
|
+
def stub_height
|
264
|
+
case stub_format
|
265
|
+
when :one_third
|
266
|
+
box_height
|
267
|
+
when :two_thirds
|
268
|
+
box_height * 2.5
|
269
|
+
end
|
270
|
+
end
|
271
|
+
|
246
272
|
def between_box_height
|
247
273
|
54 # 3/4in
|
248
274
|
end
|
@@ -0,0 +1,177 @@
|
|
1
|
+
%PDF-1.3
|
2
|
+
%����
|
3
|
+
1 0 obj
|
4
|
+
<< /Creator <feff0050007200610077006e>
|
5
|
+
/Producer <feff0050007200610077006e>
|
6
|
+
>>
|
7
|
+
endobj
|
8
|
+
2 0 obj
|
9
|
+
<< /Type /Catalog
|
10
|
+
/Pages 3 0 R
|
11
|
+
>>
|
12
|
+
endobj
|
13
|
+
3 0 obj
|
14
|
+
<< /Type /Pages
|
15
|
+
/Count 1
|
16
|
+
/Kids [5 0 R]
|
17
|
+
>>
|
18
|
+
endobj
|
19
|
+
4 0 obj
|
20
|
+
<< /Length 1432
|
21
|
+
>>
|
22
|
+
stream
|
23
|
+
q
|
24
|
+
|
25
|
+
BT
|
26
|
+
484.008 733.884 Td
|
27
|
+
/F1.0 12 Tf
|
28
|
+
[<43686563> 20 <6b204e6f> 40 <2e203132333435>] TJ
|
29
|
+
ET
|
30
|
+
|
31
|
+
36.000 540.000 540.000 180.000 re
|
32
|
+
S
|
33
|
+
36.000 576.000 m
|
34
|
+
576.000 576.000 l
|
35
|
+
|
36
|
+
BT
|
37
|
+
44 561.384 Td
|
38
|
+
/F1.0 12 Tf
|
39
|
+
[<50> 40 <61> 30 <79> 20 <6f72> -30 <3a2050> 40 <61> 30 <79> 20 <6f7220436f6d70616e> 15 <79204e616d65>] TJ
|
40
|
+
ET
|
41
|
+
|
42
|
+
|
43
|
+
BT
|
44
|
+
44 547.512 Td
|
45
|
+
/F1.0 12 Tf
|
46
|
+
[<50> 40 <61> 30 <79> 20 <65653a204a6f686e20536d697468>] TJ
|
47
|
+
ET
|
48
|
+
|
49
|
+
432.000 576.000 m
|
50
|
+
432.000 540.000 l
|
51
|
+
|
52
|
+
BT
|
53
|
+
447.324 561.384 Td
|
54
|
+
/F1.0 12 Tf
|
55
|
+
[<416d6f756e74>] TJ
|
56
|
+
ET
|
57
|
+
|
58
|
+
|
59
|
+
BT
|
60
|
+
441.312 547.512 Td
|
61
|
+
/F1.0 12 Tf
|
62
|
+
[<24312c3030332e3233>] TJ
|
63
|
+
ET
|
64
|
+
|
65
|
+
504.000 576.000 m
|
66
|
+
504.000 540.000 l
|
67
|
+
|
68
|
+
BT
|
69
|
+
527.328 561.384 Td
|
70
|
+
/F1.0 12 Tf
|
71
|
+
[<44617465>] TJ
|
72
|
+
ET
|
73
|
+
|
74
|
+
|
75
|
+
BT
|
76
|
+
509.976 547.512 Td
|
77
|
+
/F1.0 12 Tf
|
78
|
+
[<30372f30352f32303132>] TJ
|
79
|
+
ET
|
80
|
+
|
81
|
+
|
82
|
+
BT
|
83
|
+
484.008 504.384 Td
|
84
|
+
/F1.0 12 Tf
|
85
|
+
[<43686563> 20 <6b204e6f> 40 <2e203132333435>] TJ
|
86
|
+
ET
|
87
|
+
|
88
|
+
36.000 306.000 540.000 180.000 re
|
89
|
+
S
|
90
|
+
36.000 342.000 m
|
91
|
+
576.000 342.000 l
|
92
|
+
|
93
|
+
BT
|
94
|
+
44 327.384 Td
|
95
|
+
/F1.0 12 Tf
|
96
|
+
[<50> 40 <61> 30 <79> 20 <6f72> -30 <3a2050> 40 <61> 30 <79> 20 <6f7220436f6d70616e> 15 <79204e616d65>] TJ
|
97
|
+
ET
|
98
|
+
|
99
|
+
|
100
|
+
BT
|
101
|
+
44 313.512 Td
|
102
|
+
/F1.0 12 Tf
|
103
|
+
[<50> 40 <61> 30 <79> 20 <65653a204a6f686e20536d697468>] TJ
|
104
|
+
ET
|
105
|
+
|
106
|
+
432.000 342.000 m
|
107
|
+
432.000 306.000 l
|
108
|
+
|
109
|
+
BT
|
110
|
+
447.324 327.384 Td
|
111
|
+
/F1.0 12 Tf
|
112
|
+
[<416d6f756e74>] TJ
|
113
|
+
ET
|
114
|
+
|
115
|
+
|
116
|
+
BT
|
117
|
+
441.312 313.512 Td
|
118
|
+
/F1.0 12 Tf
|
119
|
+
[<24312c3030332e3233>] TJ
|
120
|
+
ET
|
121
|
+
|
122
|
+
504.000 342.000 m
|
123
|
+
504.000 306.000 l
|
124
|
+
|
125
|
+
BT
|
126
|
+
527.328 327.384 Td
|
127
|
+
/F1.0 12 Tf
|
128
|
+
[<44617465>] TJ
|
129
|
+
ET
|
130
|
+
|
131
|
+
|
132
|
+
BT
|
133
|
+
509.976 313.512 Td
|
134
|
+
/F1.0 12 Tf
|
135
|
+
[<30372f30352f32303132>] TJ
|
136
|
+
ET
|
137
|
+
|
138
|
+
S
|
139
|
+
Q
|
140
|
+
|
141
|
+
endstream
|
142
|
+
endobj
|
143
|
+
5 0 obj
|
144
|
+
<< /Type /Page
|
145
|
+
/Parent 3 0 R
|
146
|
+
/MediaBox [0 0 612.0 792.0]
|
147
|
+
/Contents 4 0 R
|
148
|
+
/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
|
149
|
+
/Font << /F1.0 6 0 R
|
150
|
+
>>
|
151
|
+
>>
|
152
|
+
>>
|
153
|
+
endobj
|
154
|
+
6 0 obj
|
155
|
+
<< /Type /Font
|
156
|
+
/Subtype /Type1
|
157
|
+
/BaseFont /Helvetica
|
158
|
+
/Encoding /WinAnsiEncoding
|
159
|
+
>>
|
160
|
+
endobj
|
161
|
+
xref
|
162
|
+
0 7
|
163
|
+
0000000000 65535 f
|
164
|
+
0000000015 00000 n
|
165
|
+
0000000109 00000 n
|
166
|
+
0000000158 00000 n
|
167
|
+
0000000215 00000 n
|
168
|
+
0000001699 00000 n
|
169
|
+
0000001877 00000 n
|
170
|
+
trailer
|
171
|
+
<< /Size 7
|
172
|
+
/Root 2 0 R
|
173
|
+
/Info 1 0 R
|
174
|
+
>>
|
175
|
+
startxref
|
176
|
+
1974
|
177
|
+
%%EOF
|