prep 0.2.5 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/VERSION +1 -1
- data/examples/generate_image_sample.rb +11 -0
- data/examples/image_sample.yml +98 -0
- data/examples/qrimage.png +0 -0
- data/lib/core/group.rb +11 -0
- data/lib/core/image.rb +83 -0
- metadata +27 -22
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.3.0
|
@@ -0,0 +1,11 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
require File.join(File.dirname(__FILE__), "..", "lib", "prep")
|
3
|
+
|
4
|
+
prep = PREP::Core::Prep.new("image_sample.yml")
|
5
|
+
prep.generate("#{$0}.pdf",
|
6
|
+
{
|
7
|
+
:content => {
|
8
|
+
:title => "外部引き渡しタイトル文字列",
|
9
|
+
:normal_image => File.join(File.dirname(__FILE__), 'qrimage.png'),
|
10
|
+
}
|
11
|
+
})
|
@@ -0,0 +1,98 @@
|
|
1
|
+
page:
|
2
|
+
size: a4
|
3
|
+
orientation: portrait
|
4
|
+
margin:
|
5
|
+
top: 10
|
6
|
+
left: 10
|
7
|
+
bottom: 10
|
8
|
+
right: 10
|
9
|
+
header_height: 0
|
10
|
+
footer_height: 0
|
11
|
+
content:
|
12
|
+
type: group
|
13
|
+
title:
|
14
|
+
type: label
|
15
|
+
label: "タイトル文字列"
|
16
|
+
region:
|
17
|
+
x: 10
|
18
|
+
y: 10
|
19
|
+
width: 100
|
20
|
+
height: 20
|
21
|
+
color:
|
22
|
+
red: 0
|
23
|
+
green: 0
|
24
|
+
blue: 0
|
25
|
+
line01:
|
26
|
+
type: line
|
27
|
+
start:
|
28
|
+
x: 10
|
29
|
+
y: 10
|
30
|
+
end:
|
31
|
+
x: 100
|
32
|
+
y: 10
|
33
|
+
line02:
|
34
|
+
type: line
|
35
|
+
start:
|
36
|
+
x: 10
|
37
|
+
y: 10
|
38
|
+
end:
|
39
|
+
x: 110
|
40
|
+
y: 110
|
41
|
+
color:
|
42
|
+
red: 1
|
43
|
+
green: 0
|
44
|
+
blue: 0
|
45
|
+
rectangle01:
|
46
|
+
type: rectangle
|
47
|
+
region:
|
48
|
+
x: 120
|
49
|
+
y: 0
|
50
|
+
width: 10
|
51
|
+
height: 5
|
52
|
+
line_color:
|
53
|
+
red: 0
|
54
|
+
green: 0.3
|
55
|
+
blue: 0
|
56
|
+
line_width: 3
|
57
|
+
fill_color:
|
58
|
+
red: 0
|
59
|
+
green: 1
|
60
|
+
blue: 1
|
61
|
+
rectangle02:
|
62
|
+
type: rectangle
|
63
|
+
region:
|
64
|
+
x: 10
|
65
|
+
y: 10
|
66
|
+
width: 100
|
67
|
+
height: 100
|
68
|
+
line_width: 1
|
69
|
+
line_color:
|
70
|
+
red: 1
|
71
|
+
green: 0
|
72
|
+
blue: 0
|
73
|
+
fill_color:
|
74
|
+
red: 1
|
75
|
+
green: 1
|
76
|
+
blue: 1
|
77
|
+
rect1:
|
78
|
+
type: rectangle
|
79
|
+
region:
|
80
|
+
x: 0
|
81
|
+
y: 0
|
82
|
+
width: 10
|
83
|
+
height: 10
|
84
|
+
rect2:
|
85
|
+
type: rectangle
|
86
|
+
region:
|
87
|
+
x: 10
|
88
|
+
y: 10
|
89
|
+
width: 10
|
90
|
+
height: 10
|
91
|
+
normal_image:
|
92
|
+
type: image
|
93
|
+
image_path: "qrimage.png"
|
94
|
+
region:
|
95
|
+
x: 120
|
96
|
+
y: 70
|
97
|
+
width: 25
|
98
|
+
height: 25
|
Binary file
|
data/lib/core/group.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
1
2
|
# Group クラスのソースファイル
|
2
3
|
# Author:: maki-tetsu
|
3
4
|
# Date:: 2011/03/11
|
@@ -7,6 +8,7 @@ require File.join(File.dirname(__FILE__), "drawable")
|
|
7
8
|
require File.join(File.dirname(__FILE__), "label")
|
8
9
|
require File.join(File.dirname(__FILE__), "line")
|
9
10
|
require File.join(File.dirname(__FILE__), "rectangle")
|
11
|
+
require File.join(File.dirname(__FILE__), "image")
|
10
12
|
require File.join(File.dirname(__FILE__), "loop")
|
11
13
|
|
12
14
|
module PREP # nodoc
|
@@ -89,6 +91,15 @@ module PREP # nodoc
|
|
89
91
|
end
|
90
92
|
end
|
91
93
|
end
|
94
|
+
when "image"
|
95
|
+
klass = Image
|
96
|
+
unless @@allow_all
|
97
|
+
@drawables.values.each do |drawable|
|
98
|
+
if Loop === drawable
|
99
|
+
raise "Group already has Loop!!"
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|
92
103
|
when "group"
|
93
104
|
# global でのみグループ定義を許可
|
94
105
|
unless global
|
data/lib/core/image.rb
ADDED
@@ -0,0 +1,83 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
# Image クラスのソースファイル
|
3
|
+
# Author:: maki-tetsu
|
4
|
+
# Date:: 2011/09/12
|
5
|
+
# Copyright:: Copyright (c) 2011 maki-tetsu
|
6
|
+
|
7
|
+
require File.join(File.dirname(__FILE__), "drawable")
|
8
|
+
require File.join(File.dirname(__FILE__), "color")
|
9
|
+
require File.join(File.dirname(__FILE__), "region")
|
10
|
+
require File.join(File.dirname(__FILE__), "..", "mm2pixcel")
|
11
|
+
|
12
|
+
module PREP # nodoc
|
13
|
+
module Core # nodoc
|
14
|
+
# イメージ描画構成要素クラス
|
15
|
+
class Image < Drawable
|
16
|
+
@@default_values = {
|
17
|
+
:layer => 1,
|
18
|
+
:expand => false,
|
19
|
+
}
|
20
|
+
|
21
|
+
def initialize(identifier, values = { })
|
22
|
+
values = @@default_values.merge(key_string_to_symbol(values))
|
23
|
+
super(identifier, values[:layer])
|
24
|
+
|
25
|
+
@region = Region.new(values[:region][:x].mm2pixcel,
|
26
|
+
values[:region][:y].mm2pixcel,
|
27
|
+
values[:region][:width].mm2pixcel,
|
28
|
+
values[:region][:height].mm2pixcel)
|
29
|
+
@image_path = values[:image_path].to_s
|
30
|
+
@expand = values[:expand]
|
31
|
+
end
|
32
|
+
|
33
|
+
# イメージ描画領域の計算
|
34
|
+
def calculate_region(prep, region, value, stop_on_drawable = nil)
|
35
|
+
if self == stop_on_drawable
|
36
|
+
raise ReRenderJump.new(region)
|
37
|
+
end
|
38
|
+
|
39
|
+
puts "Calculate region for #{self.class}: #{self.identifier} region: #{region}" if ENV["DEBUG"]
|
40
|
+
ret_region = Region.new(0, 0,
|
41
|
+
region.width - (@region.x + @region.width),
|
42
|
+
region.height - (@region.y + @region.height))
|
43
|
+
return @region.x + @region.width, @region.y + @region.height
|
44
|
+
end
|
45
|
+
|
46
|
+
# イメージの描画
|
47
|
+
def draw(prep, region, value, stop_on_drawable = nil)
|
48
|
+
if self === stop_on_drawable
|
49
|
+
raise ReRenderJump.new(region)
|
50
|
+
end
|
51
|
+
STDERR.puts("Draw on #{self.class} #{self.identifier}") if ENV['DEBUG']
|
52
|
+
# 領域判定
|
53
|
+
calculate_region(prep, region, value)
|
54
|
+
|
55
|
+
# イメージファイルの指定があるか確認
|
56
|
+
if value.to_s != ""
|
57
|
+
# Load png image from specific file path
|
58
|
+
image_path = value.to_s
|
59
|
+
else
|
60
|
+
# Load png image from default path
|
61
|
+
image_path = @image_path.dup
|
62
|
+
end
|
63
|
+
begin
|
64
|
+
image_data = prep.pdf.load_png_image_from_file(image_path)
|
65
|
+
rescue => e
|
66
|
+
raise "Failed to load the PNG image from '#{image_path}'"
|
67
|
+
end
|
68
|
+
region_backup = @region.dup
|
69
|
+
if @expand_region
|
70
|
+
@region = @expand_region.dup
|
71
|
+
@expand_region = nil
|
72
|
+
end
|
73
|
+
pos_x, pos_y = calculate_pos(prep.current_page, region, @region.x, @region.y)
|
74
|
+
# draw png image
|
75
|
+
prep.current_page.draw_image(image_data,
|
76
|
+
pos_x, pos_y - @region.height,
|
77
|
+
@region.width, @region.height)
|
78
|
+
@region = region_backup
|
79
|
+
prep.current_page.drawed = true
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: prep
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
5
|
-
prerelease:
|
4
|
+
hash: 19
|
5
|
+
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version: 0.
|
8
|
+
- 3
|
9
|
+
- 0
|
10
|
+
version: 0.3.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Tetsuhisa MAKINO
|
@@ -15,11 +15,12 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-
|
18
|
+
date: 2011-09-20 00:00:00 +09:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
22
|
-
|
22
|
+
prerelease: false
|
23
|
+
name: hpdf
|
23
24
|
version_requirements: &id001 !ruby/object:Gem::Requirement
|
24
25
|
none: false
|
25
26
|
requirements:
|
@@ -32,10 +33,10 @@ dependencies:
|
|
32
33
|
- 8
|
33
34
|
version: 2.0.8
|
34
35
|
requirement: *id001
|
35
|
-
|
36
|
-
name: hpdf
|
36
|
+
type: :runtime
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
|
-
|
38
|
+
prerelease: false
|
39
|
+
name: rspec
|
39
40
|
version_requirements: &id002 !ruby/object:Gem::Requirement
|
40
41
|
none: false
|
41
42
|
requirements:
|
@@ -48,10 +49,10 @@ dependencies:
|
|
48
49
|
- 0
|
49
50
|
version: 2.3.0
|
50
51
|
requirement: *id002
|
51
|
-
prerelease: false
|
52
|
-
name: rspec
|
53
|
-
- !ruby/object:Gem::Dependency
|
54
52
|
type: :development
|
53
|
+
- !ruby/object:Gem::Dependency
|
54
|
+
prerelease: false
|
55
|
+
name: bundler
|
55
56
|
version_requirements: &id003 !ruby/object:Gem::Requirement
|
56
57
|
none: false
|
57
58
|
requirements:
|
@@ -64,10 +65,10 @@ dependencies:
|
|
64
65
|
- 0
|
65
66
|
version: 1.0.0
|
66
67
|
requirement: *id003
|
67
|
-
prerelease: false
|
68
|
-
name: bundler
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
68
|
type: :development
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
prerelease: false
|
71
|
+
name: jeweler
|
71
72
|
version_requirements: &id004 !ruby/object:Gem::Requirement
|
72
73
|
none: false
|
73
74
|
requirements:
|
@@ -80,10 +81,10 @@ dependencies:
|
|
80
81
|
- 2
|
81
82
|
version: 1.5.2
|
82
83
|
requirement: *id004
|
83
|
-
prerelease: false
|
84
|
-
name: jeweler
|
85
|
-
- !ruby/object:Gem::Dependency
|
86
84
|
type: :development
|
85
|
+
- !ruby/object:Gem::Dependency
|
86
|
+
prerelease: false
|
87
|
+
name: rcov
|
87
88
|
version_requirements: &id005 !ruby/object:Gem::Requirement
|
88
89
|
none: false
|
89
90
|
requirements:
|
@@ -94,8 +95,7 @@ dependencies:
|
|
94
95
|
- 0
|
95
96
|
version: "0"
|
96
97
|
requirement: *id005
|
97
|
-
|
98
|
-
name: rcov
|
98
|
+
type: :development
|
99
99
|
description: PREP is PDF Report generator depends on HPDF.
|
100
100
|
email: tim.makino@gmail.com
|
101
101
|
executables:
|
@@ -118,6 +118,7 @@ files:
|
|
118
118
|
- bin/prep-helper
|
119
119
|
- bin/prep-test
|
120
120
|
- examples/generate_group_sample.rb
|
121
|
+
- examples/generate_image_sample.rb
|
121
122
|
- examples/generate_sample.rb
|
122
123
|
- examples/generate_sample2.rb
|
123
124
|
- examples/generate_sample3.rb
|
@@ -126,6 +127,8 @@ files:
|
|
126
127
|
- examples/generate_sample6.rb
|
127
128
|
- examples/generate_sample_dataset.rb
|
128
129
|
- examples/group_sample.yml
|
130
|
+
- examples/image_sample.yml
|
131
|
+
- examples/qrimage.png
|
129
132
|
- examples/sample.yml
|
130
133
|
- examples/sample2.yml
|
131
134
|
- examples/sample3.yml
|
@@ -134,6 +137,7 @@ files:
|
|
134
137
|
- lib/core/color.rb
|
135
138
|
- lib/core/drawable.rb
|
136
139
|
- lib/core/group.rb
|
140
|
+
- lib/core/image.rb
|
137
141
|
- lib/core/label.rb
|
138
142
|
- lib/core/line.rb
|
139
143
|
- lib/core/loop.rb
|
@@ -179,12 +183,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
179
183
|
requirements: []
|
180
184
|
|
181
185
|
rubyforge_project:
|
182
|
-
rubygems_version: 1.
|
186
|
+
rubygems_version: 1.3.7
|
183
187
|
signing_key:
|
184
188
|
specification_version: 3
|
185
189
|
summary: PREP is PDF Report generator depends on HPDF.
|
186
190
|
test_files:
|
187
191
|
- examples/generate_group_sample.rb
|
192
|
+
- examples/generate_image_sample.rb
|
188
193
|
- examples/generate_sample.rb
|
189
194
|
- examples/generate_sample2.rb
|
190
195
|
- examples/generate_sample3.rb
|