clarus 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +0 -1
- data/.rvmrc +1 -0
- data/Gemfile +2 -7
- data/Rakefile +4 -2
- data/clarus.gemspec +8 -3
- data/jars/{j2w-ejb-2.0_2011Jun06.jar → j2w-ejb-2.0.jar} +0 -0
- data/lib/clarus.rb +10 -3
- data/lib/clarus/document.rb +26 -27
- data/lib/clarus/heading.rb +18 -0
- data/lib/clarus/image.rb +38 -0
- data/lib/clarus/link.rb +13 -0
- data/lib/clarus/paragraph.rb +22 -0
- data/lib/clarus/paragraph_break.rb +7 -0
- data/lib/clarus/templates/document_template.erb +454 -0
- data/lib/clarus/templates/image_template.erb +23 -0
- data/lib/clarus/templates/link_template.erb +10 -0
- data/lib/clarus/templates/paragraph_fragment_template.erb +8 -0
- data/lib/clarus/templates/text_block_template.erb +6 -0
- data/lib/clarus/text_block.rb +20 -0
- data/lib/clarus/version.rb +1 -1
- data/spec/benchmark_test.rb +3 -5
- data/spec/clarus_spec.rb +3 -1
- data/spec/document_spec.rb +38 -30
- data/spec/image_spec.rb +18 -0
- data/spec/link_spec.rb +11 -0
- data/spec/output/.gitkeep +0 -0
- data/spec/output/add_bold_text.doc +12 -0
- data/spec/output/add_heading.doc +14 -0
- data/spec/output/add_image.doc +674 -0
- data/spec/output/add_link.doc +10 -0
- data/spec/output/add_paragraph_break.doc +465 -0
- data/spec/{fixtures/add_paragraph_break.doc → output/add_text.doc} +2 -15
- data/spec/output/add_text_document.doc +464 -0
- data/spec/output/add_underlined_text.doc +12 -0
- data/spec/output/encoded_image.txt +199 -0
- data/spec/output/indent.doc +12 -0
- data/spec/output/link_test.doc +10 -0
- data/spec/output/match_header.doc +426 -0
- data/spec/output/mixed_paragraph_text.doc +19 -0
- data/spec/output/paragraph_add_text.doc +12 -0
- data/spec/paragraph_spec.rb +36 -0
- data/spec/spec_helper.rb +6 -1
- metadata +126 -47
- data/spec/fixtures/add_image.doc +0 -1205
- data/spec/fixtures/add_text.doc +0 -25
data/.gitignore
CHANGED
data/.rvmrc
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
rvm use ruby-1.9.2-p180@clarus
|
data/Gemfile
CHANGED
data/Rakefile
CHANGED
data/clarus.gemspec
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
|
-
|
3
|
-
require "clarus/version"
|
2
|
+
require File.expand_path("../lib/clarus/version", __FILE__)
|
4
3
|
|
5
4
|
Gem::Specification.new do |s|
|
6
5
|
s.name = "clarus"
|
@@ -9,10 +8,16 @@ Gem::Specification.new do |s|
|
|
9
8
|
s.email = ["dan@revelationglobal.com"]
|
10
9
|
s.homepage = ""
|
11
10
|
s.summary = %q{Clarus is a way to create documents programmatically. Moof!}
|
12
|
-
s.description = %q{Clarus makes a
|
11
|
+
s.description = %q{Clarus makes a ruby library o create word 2003 compatible documents.}
|
13
12
|
|
14
13
|
s.rubyforge_project = "clarus"
|
15
14
|
|
15
|
+
s.add_dependency 'json'
|
16
|
+
s.add_dependency 'imagesize'
|
17
|
+
|
18
|
+
s.add_development_dependency 'rake'
|
19
|
+
s.add_development_dependency 'minitest'
|
20
|
+
|
16
21
|
s.files = `git ls-files`.split("\n")
|
17
22
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
18
23
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
Binary file
|
data/lib/clarus.rb
CHANGED
@@ -1,6 +1,13 @@
|
|
1
|
-
require '
|
2
|
-
|
3
|
-
require 'clarus/
|
1
|
+
require 'erubis'
|
2
|
+
|
3
|
+
require File.expand_path('../clarus/version', __FILE__)
|
4
|
+
require File.expand_path('../clarus/document', __FILE__)
|
5
|
+
require File.expand_path('../clarus/heading', __FILE__)
|
6
|
+
require File.expand_path('../clarus/paragraph', __FILE__)
|
7
|
+
require File.expand_path('../clarus/text_block', __FILE__)
|
8
|
+
require File.expand_path('../clarus/link', __FILE__)
|
9
|
+
require File.expand_path('../clarus/image', __FILE__)
|
10
|
+
require File.expand_path('../clarus/paragraph_break', __FILE__)
|
4
11
|
|
5
12
|
module Clarus
|
6
13
|
end
|
data/lib/clarus/document.rb
CHANGED
@@ -1,50 +1,49 @@
|
|
1
1
|
module Clarus
|
2
|
-
require File.dirname(__FILE__) + '/../../jars/j2w-ejb-2.0_2011Jun06'
|
3
|
-
require File.dirname(__FILE__) + '/../../jars/xstream-1.3.1'
|
4
|
-
|
5
2
|
class Document
|
6
|
-
import 'java.io.PrintWriter'
|
7
|
-
import 'java.io.File'
|
8
|
-
import 'word.api.interfaces.IDocument'
|
9
|
-
import 'word.w2004.Document2004'
|
10
|
-
import 'word.w2004.elements.BreakLine'
|
11
|
-
import 'word.w2004.elements.Heading1'
|
12
|
-
import 'word.w2004.elements.Image'
|
13
|
-
import 'word.w2004.elements.ImageLocation'
|
14
|
-
import 'word.w2004.elements.Paragraph'
|
15
|
-
import 'word.w2004.elements.Table'
|
16
|
-
|
17
3
|
def initialize
|
18
4
|
@doc = create_document
|
5
|
+
@items = []
|
19
6
|
end
|
20
7
|
|
21
|
-
def
|
22
|
-
|
8
|
+
def new_paragraph
|
9
|
+
paragraph = Clarus::Paragraph.new
|
10
|
+
yield(paragraph)
|
11
|
+
@items << paragraph
|
23
12
|
end
|
24
13
|
|
25
|
-
|
26
|
-
|
27
|
-
|
14
|
+
def new_heading
|
15
|
+
heading = Clarus::Heading.new
|
16
|
+
yield(heading)
|
17
|
+
@items << heading
|
28
18
|
end
|
29
19
|
|
30
|
-
def
|
31
|
-
@
|
20
|
+
def link(destination, text)
|
21
|
+
@items << Clarus::Link.new(destination, text)
|
32
22
|
end
|
33
23
|
|
34
24
|
def write_document(path)
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
25
|
+
File.open(path, "w") do |f|
|
26
|
+
result = stream_document
|
27
|
+
f.write(result)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def paragraph_break
|
32
|
+
@items << Clarus::ParagraphBreak.new
|
33
|
+
end
|
34
|
+
|
35
|
+
def image(uri)
|
36
|
+
@items << Clarus::Image.new(uri)
|
39
37
|
end
|
40
38
|
|
41
39
|
def stream_document
|
42
|
-
@doc.
|
40
|
+
@doc.result(:items => @items)
|
43
41
|
end
|
44
42
|
|
45
43
|
private
|
46
44
|
def create_document
|
47
|
-
|
45
|
+
document_template = File.read(File.expand_path('../templates/document_template.erb', __FILE__))
|
46
|
+
Erubis::Eruby.new(document_template)
|
48
47
|
end
|
49
48
|
end
|
50
49
|
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module Clarus
|
2
|
+
class Heading
|
3
|
+
def initialize
|
4
|
+
@style = '<w:pStyle w:val="Heading1" />'
|
5
|
+
@finished_text = ""
|
6
|
+
end
|
7
|
+
|
8
|
+
def add_text(text)
|
9
|
+
@finished_text.concat "<w:t>#{text}</w:t>\n"
|
10
|
+
end
|
11
|
+
|
12
|
+
def render
|
13
|
+
document_template = File.read(File.expand_path('../templates/paragraph_fragment_template.erb', __FILE__))
|
14
|
+
Erubis::Eruby.new(document_template).result(:style => @style, :finished_text => @finished_text)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
data/lib/clarus/image.rb
ADDED
@@ -0,0 +1,38 @@
|
|
1
|
+
require 'open-uri'
|
2
|
+
require 'base64'
|
3
|
+
require 'image_size'
|
4
|
+
|
5
|
+
module Clarus
|
6
|
+
class Image
|
7
|
+
def initialize(uri)
|
8
|
+
@image_path = uri
|
9
|
+
get_image_data
|
10
|
+
get_image_dimensions
|
11
|
+
end
|
12
|
+
|
13
|
+
def get_image_dimensions
|
14
|
+
@image_size = ImageSize.new(get_image_data)
|
15
|
+
end
|
16
|
+
|
17
|
+
def get_image_data
|
18
|
+
@image_data ||= open(@image_path).read
|
19
|
+
end
|
20
|
+
|
21
|
+
def encoded_image
|
22
|
+
@image_blob ||= Base64.encode64(get_image_data)
|
23
|
+
end
|
24
|
+
|
25
|
+
def render
|
26
|
+
document_template = File.read(File.expand_path('../templates/image_template.erb', __FILE__))
|
27
|
+
filename = File.basename(@image_path)
|
28
|
+
wordml_filename = "wordml://#{Time.now.to_i}#{filename}"
|
29
|
+
Erubis::Eruby.new(document_template).result(
|
30
|
+
:wordml_filename => wordml_filename,
|
31
|
+
:width => @image_size.width,
|
32
|
+
:height => @image_size.height,
|
33
|
+
:filename => filename,
|
34
|
+
:bindata => encoded_image
|
35
|
+
)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
data/lib/clarus/link.rb
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
module Clarus
|
2
|
+
class Link
|
3
|
+
def initialize(destination, text = nil)
|
4
|
+
@destination = destination
|
5
|
+
@text = text || destination
|
6
|
+
end
|
7
|
+
|
8
|
+
def render
|
9
|
+
document_template = File.read(File.expand_path('../templates/link_template.erb', __FILE__))
|
10
|
+
Erubis::Eruby.new(document_template).result(:text => @text, :destination => @destination)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module Clarus
|
2
|
+
class Paragraph
|
3
|
+
INDENT_CONSTANT = 540
|
4
|
+
|
5
|
+
def initialize(indent = 0)
|
6
|
+
@indent = INDENT_CONSTANT * indent
|
7
|
+
@style = ""
|
8
|
+
@items = []
|
9
|
+
end
|
10
|
+
|
11
|
+
def add_text(text, text_style = nil)
|
12
|
+
@items << TextBlock.new(text, text_style)
|
13
|
+
end
|
14
|
+
|
15
|
+
def render
|
16
|
+
document_template = File.read(File.expand_path('../templates/paragraph_fragment_template.erb', __FILE__))
|
17
|
+
Erubis::Eruby.new(document_template).result(:style => @style,
|
18
|
+
:items => @items,
|
19
|
+
:indent => @indent)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,454 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
2
|
+
<?mso-application progid="Word.Document"?>
|
3
|
+
<w:wordDocument
|
4
|
+
xmlns:aml="http://schemas.microsoft.com/aml/2001/core"
|
5
|
+
xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882"
|
6
|
+
xmlns:mo="http://schemas.microsoft.com/office/mac/office/2008/main"
|
7
|
+
xmlns:ve="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
8
|
+
xmlns:mv="urn:schemas-microsoft-com:mac:vml"
|
9
|
+
xmlns:o="urn:schemas-microsoft-com:office:office"
|
10
|
+
xmlns:v="urn:schemas-microsoft-com:vml"
|
11
|
+
xmlns:w10="urn:schemas-microsoft-com:office:word"
|
12
|
+
xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml"
|
13
|
+
xmlns:wx="http://schemas.microsoft.com/office/word/2003/auxHint"
|
14
|
+
xmlns:wsp="http://schemas.microsoft.com/office/word/2003/wordml/sp2"
|
15
|
+
xmlns:sl="http://schemas.microsoft.com/schemaLibrary/2003/core"
|
16
|
+
w:macrosPresent="no"
|
17
|
+
w:embeddedObjPresent="no"
|
18
|
+
w:ocxPresent="no"
|
19
|
+
xml:space="preserve">
|
20
|
+
<w:ignoreSubtree w:val="http://schemas.microsoft.com/office/word/2003/wordml/sp2"/>
|
21
|
+
<o:DocumentProperties>
|
22
|
+
<o:Title/>
|
23
|
+
<o:Subject/>
|
24
|
+
<o:Keywords/>
|
25
|
+
<o:Description/>
|
26
|
+
<o:Category/>
|
27
|
+
<o:Author/>
|
28
|
+
<o:LastAuthor/>
|
29
|
+
<o:Manager/>
|
30
|
+
<o:Company/>
|
31
|
+
<o:Revision>1</o:Revision>
|
32
|
+
<o:TotalTime>1</o:TotalTime>
|
33
|
+
<o:Created/>
|
34
|
+
<o:LastSaved/>
|
35
|
+
<o:Pages>1</o:Pages>
|
36
|
+
<o:Words>0</o:Words>
|
37
|
+
<o:Characters>0</o:Characters>
|
38
|
+
<o:Bytes>1</o:Bytes>
|
39
|
+
<o:Lines>1</o:Lines>
|
40
|
+
<o:Paragraphs>1</o:Paragraphs>
|
41
|
+
<o:CharactersWithSpaces>0</o:CharactersWithSpaces>
|
42
|
+
<o:Version>1</o:Version>
|
43
|
+
</o:DocumentProperties>
|
44
|
+
<w:fonts>
|
45
|
+
<w:defaultFonts w:ascii="Cambria" w:fareast="Cambria" w:h-ansi="Cambria" w:cs="Times New Roman"/>
|
46
|
+
<w:font w:name="Times New Roman">
|
47
|
+
<w:panose-1 w:val="02020603050405020304"/>
|
48
|
+
<w:charset w:val="00"/>
|
49
|
+
<w:family w:val="auto"/>
|
50
|
+
<w:pitch w:val="variable"/>
|
51
|
+
<w:sig w:usb-0="00000003" w:usb-1="00000000" w:usb-2="00000000" w:usb-3="00000000" w:csb-0="00000001" w:csb-1="00000000"/>
|
52
|
+
</w:font>
|
53
|
+
<w:font w:name="Calibri">
|
54
|
+
<w:panose-1 w:val="020F0502020204030204"/>
|
55
|
+
<w:charset w:val="00"/>
|
56
|
+
<w:family w:val="auto"/>
|
57
|
+
<w:pitch w:val="variable"/>
|
58
|
+
<w:sig w:usb-0="00000003" w:usb-1="00000000" w:usb-2="00000000" w:usb-3="00000000" w:csb-0="00000001" w:csb-1="00000000"/>
|
59
|
+
</w:font>
|
60
|
+
<w:font w:name="Cambria">
|
61
|
+
<w:panose-1 w:val="02040503050406030204"/>
|
62
|
+
<w:charset w:val="00"/>
|
63
|
+
<w:family w:val="auto"/>
|
64
|
+
<w:pitch w:val="variable"/>
|
65
|
+
<w:sig w:usb-0="00000003" w:usb-1="00000000" w:usb-2="00000000" w:usb-3="00000000" w:csb-0="00000001" w:csb-1="00000000"/>
|
66
|
+
</w:font>
|
67
|
+
</w:fonts>
|
68
|
+
<w:styles>
|
69
|
+
<w:versionOfBuiltInStylenames w:val="2"/>
|
70
|
+
<w:latentStyles w:defLockedState="off" w:latentStyleCount="276">
|
71
|
+
<w:lsdException w:name="Normal"/>
|
72
|
+
<w:lsdException w:name="heading 1"/>
|
73
|
+
<w:lsdException w:name="heading 2"/>
|
74
|
+
<w:lsdException w:name="heading 3"/>
|
75
|
+
<w:lsdException w:name="heading 4"/>
|
76
|
+
<w:lsdException w:name="heading 5"/>
|
77
|
+
<w:lsdException w:name="heading 6"/>
|
78
|
+
<w:lsdException w:name="heading 7"/>
|
79
|
+
<w:lsdException w:name="heading 8"/>
|
80
|
+
<w:lsdException w:name="heading 9"/>
|
81
|
+
<w:lsdException w:name="toc 1"/>
|
82
|
+
<w:lsdException w:name="toc 2"/>
|
83
|
+
<w:lsdException w:name="toc 3"/>
|
84
|
+
<w:lsdException w:name="toc 4"/>
|
85
|
+
<w:lsdException w:name="toc 5"/>
|
86
|
+
<w:lsdException w:name="toc 6"/>
|
87
|
+
<w:lsdException w:name="toc 7"/>
|
88
|
+
<w:lsdException w:name="toc 8"/>
|
89
|
+
<w:lsdException w:name="toc 9"/>
|
90
|
+
<w:lsdException w:name="caption"/>
|
91
|
+
<w:lsdException w:name="Title"/>
|
92
|
+
<w:lsdException w:name="Default Paragraph Font"/>
|
93
|
+
<w:lsdException w:name="Subtitle"/>
|
94
|
+
<w:lsdException w:name="Strong"/>
|
95
|
+
<w:lsdException w:name="Emphasis"/>
|
96
|
+
<w:lsdException w:name="Table Grid"/>
|
97
|
+
<w:lsdException w:name="Placeholder Text"/>
|
98
|
+
<w:lsdException w:name="No Spacing"/>
|
99
|
+
<w:lsdException w:name="Light Shading"/>
|
100
|
+
<w:lsdException w:name="Light List"/>
|
101
|
+
<w:lsdException w:name="Light Grid"/>
|
102
|
+
<w:lsdException w:name="Medium Shading 1"/>
|
103
|
+
<w:lsdException w:name="Medium Shading 2"/>
|
104
|
+
<w:lsdException w:name="Medium List 1"/>
|
105
|
+
<w:lsdException w:name="Medium List 2"/>
|
106
|
+
<w:lsdException w:name="Medium Grid 1"/>
|
107
|
+
<w:lsdException w:name="Medium Grid 2"/>
|
108
|
+
<w:lsdException w:name="Medium Grid 3"/>
|
109
|
+
<w:lsdException w:name="Dark List"/>
|
110
|
+
<w:lsdException w:name="Colorful Shading"/>
|
111
|
+
<w:lsdException w:name="Colorful List"/>
|
112
|
+
<w:lsdException w:name="Colorful Grid"/>
|
113
|
+
<w:lsdException w:name="Light Shading Accent 1"/>
|
114
|
+
<w:lsdException w:name="Light List Accent 1"/>
|
115
|
+
<w:lsdException w:name="Light Grid Accent 1"/>
|
116
|
+
<w:lsdException w:name="Medium Shading 1 Accent 1"/>
|
117
|
+
<w:lsdException w:name="Medium Shading 2 Accent 1"/>
|
118
|
+
<w:lsdException w:name="Medium List 1 Accent 1"/>
|
119
|
+
<w:lsdException w:name="Revision"/>
|
120
|
+
<w:lsdException w:name="List Paragraph"/>
|
121
|
+
<w:lsdException w:name="Quote"/>
|
122
|
+
<w:lsdException w:name="Intense Quote"/>
|
123
|
+
<w:lsdException w:name="Medium List 2 Accent 1"/>
|
124
|
+
<w:lsdException w:name="Medium Grid 1 Accent 1"/>
|
125
|
+
<w:lsdException w:name="Medium Grid 2 Accent 1"/>
|
126
|
+
<w:lsdException w:name="Medium Grid 3 Accent 1"/>
|
127
|
+
<w:lsdException w:name="Dark List Accent 1"/>
|
128
|
+
<w:lsdException w:name="Colorful Shading Accent 1"/>
|
129
|
+
<w:lsdException w:name="Colorful List Accent 1"/>
|
130
|
+
<w:lsdException w:name="Colorful Grid Accent 1"/>
|
131
|
+
<w:lsdException w:name="Light Shading Accent 2"/>
|
132
|
+
<w:lsdException w:name="Light List Accent 2"/>
|
133
|
+
<w:lsdException w:name="Light Grid Accent 2"/>
|
134
|
+
<w:lsdException w:name="Medium Shading 1 Accent 2"/>
|
135
|
+
<w:lsdException w:name="Medium Shading 2 Accent 2"/>
|
136
|
+
<w:lsdException w:name="Medium List 1 Accent 2"/>
|
137
|
+
<w:lsdException w:name="Medium List 2 Accent 2"/>
|
138
|
+
<w:lsdException w:name="Medium Grid 1 Accent 2"/>
|
139
|
+
<w:lsdException w:name="Medium Grid 2 Accent 2"/>
|
140
|
+
<w:lsdException w:name="Medium Grid 3 Accent 2"/>
|
141
|
+
<w:lsdException w:name="Dark List Accent 2"/>
|
142
|
+
<w:lsdException w:name="Colorful Shading Accent 2"/>
|
143
|
+
<w:lsdException w:name="Colorful List Accent 2"/>
|
144
|
+
<w:lsdException w:name="Colorful Grid Accent 2"/>
|
145
|
+
<w:lsdException w:name="Light Shading Accent 3"/>
|
146
|
+
<w:lsdException w:name="Light List Accent 3"/>
|
147
|
+
<w:lsdException w:name="Light Grid Accent 3"/>
|
148
|
+
<w:lsdException w:name="Medium Shading 1 Accent 3"/>
|
149
|
+
<w:lsdException w:name="Medium Shading 2 Accent 3"/>
|
150
|
+
<w:lsdException w:name="Medium List 1 Accent 3"/>
|
151
|
+
<w:lsdException w:name="Medium List 2 Accent 3"/>
|
152
|
+
<w:lsdException w:name="Medium Grid 1 Accent 3"/>
|
153
|
+
<w:lsdException w:name="Medium Grid 2 Accent 3"/>
|
154
|
+
<w:lsdException w:name="Medium Grid 3 Accent 3"/>
|
155
|
+
<w:lsdException w:name="Dark List Accent 3"/>
|
156
|
+
<w:lsdException w:name="Colorful Shading Accent 3"/>
|
157
|
+
<w:lsdException w:name="Colorful List Accent 3"/>
|
158
|
+
<w:lsdException w:name="Colorful Grid Accent 3"/>
|
159
|
+
<w:lsdException w:name="Light Shading Accent 4"/>
|
160
|
+
<w:lsdException w:name="Light List Accent 4"/>
|
161
|
+
<w:lsdException w:name="Light Grid Accent 4"/>
|
162
|
+
<w:lsdException w:name="Medium Shading 1 Accent 4"/>
|
163
|
+
<w:lsdException w:name="Medium Shading 2 Accent 4"/>
|
164
|
+
<w:lsdException w:name="Medium List 1 Accent 4"/>
|
165
|
+
<w:lsdException w:name="Medium List 2 Accent 4"/>
|
166
|
+
<w:lsdException w:name="Medium Grid 1 Accent 4"/>
|
167
|
+
<w:lsdException w:name="Medium Grid 2 Accent 4"/>
|
168
|
+
<w:lsdException w:name="Medium Grid 3 Accent 4"/>
|
169
|
+
<w:lsdException w:name="Dark List Accent 4"/>
|
170
|
+
<w:lsdException w:name="Colorful Shading Accent 4"/>
|
171
|
+
<w:lsdException w:name="Colorful List Accent 4"/>
|
172
|
+
<w:lsdException w:name="Colorful Grid Accent 4"/>
|
173
|
+
<w:lsdException w:name="Light Shading Accent 5"/>
|
174
|
+
<w:lsdException w:name="Light List Accent 5"/>
|
175
|
+
<w:lsdException w:name="Light Grid Accent 5"/>
|
176
|
+
<w:lsdException w:name="Medium Shading 1 Accent 5"/>
|
177
|
+
<w:lsdException w:name="Medium Shading 2 Accent 5"/>
|
178
|
+
<w:lsdException w:name="Medium List 1 Accent 5"/>
|
179
|
+
<w:lsdException w:name="Medium List 2 Accent 5"/>
|
180
|
+
<w:lsdException w:name="Medium Grid 1 Accent 5"/>
|
181
|
+
<w:lsdException w:name="Medium Grid 2 Accent 5"/>
|
182
|
+
<w:lsdException w:name="Medium Grid 3 Accent 5"/>
|
183
|
+
<w:lsdException w:name="Dark List Accent 5"/>
|
184
|
+
<w:lsdException w:name="Colorful Shading Accent 5"/>
|
185
|
+
<w:lsdException w:name="Colorful List Accent 5"/>
|
186
|
+
<w:lsdException w:name="Colorful Grid Accent 5"/>
|
187
|
+
<w:lsdException w:name="Light Shading Accent 6"/>
|
188
|
+
<w:lsdException w:name="Light List Accent 6"/>
|
189
|
+
<w:lsdException w:name="Light Grid Accent 6"/>
|
190
|
+
<w:lsdException w:name="Medium Shading 1 Accent 6"/>
|
191
|
+
<w:lsdException w:name="Medium Shading 2 Accent 6"/>
|
192
|
+
<w:lsdException w:name="Medium List 1 Accent 6"/>
|
193
|
+
<w:lsdException w:name="Medium List 2 Accent 6"/>
|
194
|
+
<w:lsdException w:name="Medium Grid 1 Accent 6"/>
|
195
|
+
<w:lsdException w:name="Medium Grid 2 Accent 6"/>
|
196
|
+
<w:lsdException w:name="Medium Grid 3 Accent 6"/>
|
197
|
+
<w:lsdException w:name="Dark List Accent 6"/>
|
198
|
+
<w:lsdException w:name="Colorful Shading Accent 6"/>
|
199
|
+
<w:lsdException w:name="Colorful List Accent 6"/>
|
200
|
+
<w:lsdException w:name="Colorful Grid Accent 6"/>
|
201
|
+
<w:lsdException w:name="Subtle Emphasis"/>
|
202
|
+
<w:lsdException w:name="Intense Emphasis"/>
|
203
|
+
<w:lsdexception w:name="Subtle Reference"/>
|
204
|
+
<w:lsdException w:name="Intense Reference"/>
|
205
|
+
<w:lsdException w:name="Book Title"/>
|
206
|
+
<w:lsdException w:name="Bibliography"/>
|
207
|
+
<w:lsdException w:name="TOC Heading"/>
|
208
|
+
</w:latentStyles>
|
209
|
+
<w:style w:type="paragraph" w:default="on" w:styleId="Normal">
|
210
|
+
<w:name w:val="Normal"/>
|
211
|
+
<w:rsid w:val="00D711DA"/>
|
212
|
+
<w:rPr>
|
213
|
+
<wx:font wx:val="Cambria"/>
|
214
|
+
<w:sz w:val="24"/>
|
215
|
+
<w:sz-cs w:val="24"/>
|
216
|
+
<w:lang w:val="EN-US" w:fareast="EN-US" w:bidi="AR-SA"/>
|
217
|
+
</w:rPr>
|
218
|
+
</w:style>
|
219
|
+
<w:style w:type="paragraph" w:styleId="Heading1">
|
220
|
+
<w:name w:val="heading 1"/>
|
221
|
+
<wx:uiName wx:val="Heading 1"/>
|
222
|
+
<w:basedOn w:val="Normal"/>
|
223
|
+
<w:next w:val="Normal"/>
|
224
|
+
<w:link w:val="Heading1Char"/>
|
225
|
+
<w:rsid w:val="00401F80"/>
|
226
|
+
<w:pPr>
|
227
|
+
<w:keepNext/>
|
228
|
+
<w:keepLines/>
|
229
|
+
<w:spacing w:before="480"/>
|
230
|
+
<w:outlineLvl w:val="0"/>
|
231
|
+
</w:pPr>
|
232
|
+
<w:rPr>
|
233
|
+
<w:rFonts w:ascii="Calibri" w:fareast="Times New Roman" w:h-ansi="Calibri"/>
|
234
|
+
<wx:font wx:val="Calibri"/>
|
235
|
+
<w:b/>
|
236
|
+
<w:b-cs/>
|
237
|
+
<w:color w:val="345A8A"/>
|
238
|
+
<w:sz w:val="32"/>
|
239
|
+
<w:sz-cs w:val="32"/>
|
240
|
+
</w:rPr>
|
241
|
+
</w:style>
|
242
|
+
<w:style w:type="paragraph" w:styleId="Heading2">
|
243
|
+
<w:name w:val="heading 2"/>
|
244
|
+
<wx:uiName wx:val="Heading 2"/>
|
245
|
+
<w:basedOn w:val="Normal"/>
|
246
|
+
<w:next w:val="Normal"/>
|
247
|
+
<w:link w:val="Heading2Char"/>
|
248
|
+
<w:rsid w:val="00401F80"/>
|
249
|
+
<w:pPr>
|
250
|
+
<w:keepNext/>
|
251
|
+
<w:keepLines/>
|
252
|
+
<w:spacing w:before="200"/>
|
253
|
+
<w:outlineLvl w:val="1"/>
|
254
|
+
</w:pPr>
|
255
|
+
<w:rPr>
|
256
|
+
<w:rFonts w:ascii="Calibri" w:fareast="Times New Roman" w:h-ansi="Calibri"/>
|
257
|
+
<wx:font wx:val="Calibri"/>
|
258
|
+
<w:b/>
|
259
|
+
<w:b-cs/>
|
260
|
+
<w:color w:val="4F81BD"/>
|
261
|
+
<w:sz w:val="26"/>
|
262
|
+
<w:sz-cs w:val="26"/>
|
263
|
+
</w:rPr>
|
264
|
+
</w:style>
|
265
|
+
<w:style w:type="character" w:styleId="Hyperlink">
|
266
|
+
<w:name w:val="Hyperlink"/>
|
267
|
+
<w:basedOn w:val="DefaultParagraphFont"/>
|
268
|
+
<w:rsid w:val="00A30FBB"/>
|
269
|
+
<w:rPr>
|
270
|
+
<w:color w:val="0000FF"/>
|
271
|
+
<w:u w:val="single"/>
|
272
|
+
</w:rPr>
|
273
|
+
</w:style>
|
274
|
+
<w:style w:type="paragraph" w:styleId="Heading3">
|
275
|
+
<w:name w:val="heading 3"/>
|
276
|
+
<wx:uiName wx:val="Heading 3"/>
|
277
|
+
<w:basedOn w:val="Normal"/>
|
278
|
+
<w:next w:val="Normal"/>
|
279
|
+
<w:link w:val="Heading3Char"/>
|
280
|
+
<w:rsid w:val="00401F80"/>
|
281
|
+
<w:pPr>
|
282
|
+
<w:keepNext/>
|
283
|
+
<w:keepLines/>
|
284
|
+
<w:spacing w:before="200"/>
|
285
|
+
<w:outlineLvl w:val="2"/>
|
286
|
+
</w:pPr>
|
287
|
+
<w:rPr>
|
288
|
+
<w:rFonts w:ascii="Calibri" w:fareast="Times New Roman" w:h-ansi="Calibri"/>
|
289
|
+
<wx:font wx:val="Calibri"/>
|
290
|
+
<w:b/>
|
291
|
+
<w:b-cs/>
|
292
|
+
<w:color w:val="4F81BD"/>
|
293
|
+
</w:rPr>
|
294
|
+
</w:style>
|
295
|
+
<w:style w:type="character" w:default="on" w:styleId="DefaultParagraphFont">
|
296
|
+
<w:name w:val="Default Paragraph Font"/>
|
297
|
+
</w:style>
|
298
|
+
<w:style w:type="table" w:default="on" w:styleId="TableNormal">
|
299
|
+
<w:name w:val="Normal Table"/>
|
300
|
+
<wx:uiName wx:val="Table Normal"/>
|
301
|
+
<w:rPr>
|
302
|
+
<wx:font wx:val="Cambria"/>
|
303
|
+
<w:lang w:val="EN-US" w:fareast="EN-US" w:bidi="AR-SA"/>
|
304
|
+
</w:rPr>
|
305
|
+
<w:tblPr>
|
306
|
+
<w:tblInd w:w="0" w:type="dxa"/>
|
307
|
+
<w:tblCellMar>
|
308
|
+
<w:top w:w="0" w:type="dxa"/>
|
309
|
+
<w:left w:w="108" w:type="dxa"/>
|
310
|
+
<w:bottom w:w="0" w:type="dxa"/>
|
311
|
+
<w:right w:w="108" w:type="dxa"/>
|
312
|
+
</w:tblCellMar>
|
313
|
+
</w:tblPr>
|
314
|
+
</w:style>
|
315
|
+
<w:style w:type="list" w:default="on" w:styleId="NoList">
|
316
|
+
<w:name w:val="No List"/>
|
317
|
+
</w:style>
|
318
|
+
<w:style w:type="character" w:styleId="Heading1Char">
|
319
|
+
<w:name w:val="Heading 1 Char"/>
|
320
|
+
<w:basedOn w:val="DefaultParagraphFont"/>
|
321
|
+
<w:link w:val="Heading1"/>
|
322
|
+
<w:rsid w:val="00401F80"/>
|
323
|
+
<w:rPr>
|
324
|
+
<w:rFonts w:ascii="Calibri" w:fareast="Times New Roman" w:h-ansi="Calibri" w:cs="Times New Roman"/>
|
325
|
+
<w:b/>
|
326
|
+
<w:b-cs/>
|
327
|
+
<w:color w:val="345A8A"/>
|
328
|
+
<w:sz w:val="32"/>
|
329
|
+
<w:sz-cs w:val="32"/>
|
330
|
+
<w:lang w:val="EN-US"/>
|
331
|
+
</w:rPr>
|
332
|
+
</w:style>
|
333
|
+
<w:style w:type="character" w:styleId="Heading2Char">
|
334
|
+
<w:name w:val="Heading 2 Char"/>
|
335
|
+
<w:basedOn w:val="DefaultParagraphFont"/>
|
336
|
+
<w:link w:val="Heading2"/>
|
337
|
+
<w:rsid w:val="00401F80"/>
|
338
|
+
<w:rPr>
|
339
|
+
<w:rFonts w:ascii="Calibri" w:fareast="Times New Roman" w:h-ansi="Calibri" w:cs="Times New Roman"/>
|
340
|
+
<w:b/>
|
341
|
+
<w:b-cs/>
|
342
|
+
<w:color w:val="4F81BD"/>
|
343
|
+
<w:sz w:val="26"/>
|
344
|
+
<w:sz-cs w:val="26"/>
|
345
|
+
<w:lang w:val="EN-US"/>
|
346
|
+
</w:rPr>
|
347
|
+
</w:style>
|
348
|
+
<w:style w:type="character" w:styleId="Heading3Char">
|
349
|
+
<w:name w:val="Heading 3 Char"/>
|
350
|
+
<w:basedOn w:val="DefaultParagraphFont"/>
|
351
|
+
<w:link w:val="Heading3"/>
|
352
|
+
<w:rsid w:val="00401F80"/>
|
353
|
+
<w:rPr>
|
354
|
+
<w:rFonts w:ascii="Calibri" w:fareast="Times New Roman" w:h-ansi="Calibri" w:cs="Times New Roman"/>
|
355
|
+
<w:b/>
|
356
|
+
<w:b-cs/>
|
357
|
+
<w:color w:val="4F81BD"/>
|
358
|
+
<w:lang w:val="EN-AU"/>
|
359
|
+
</w:rPr>
|
360
|
+
</w:style>
|
361
|
+
<w:style w:type="list" w:default="on" w:styleId="NoList">
|
362
|
+
<w:name w:val="No List"/>
|
363
|
+
</w:style>
|
364
|
+
<w:style w:type="paragraph" w:styleId="Header">
|
365
|
+
<w:name w:val="header"/>
|
366
|
+
<wx:uiName wx:val="Header"/>
|
367
|
+
<w:basedOn w:val="Normal"/>
|
368
|
+
<w:link w:val="HeaderChar"/>
|
369
|
+
<w:rsid w:val="00B5709B"/>
|
370
|
+
<w:pPr>
|
371
|
+
<w:tabs>
|
372
|
+
<w:tab w:val="center" w:pos="4320"/>
|
373
|
+
<w:tab w:val="right" w:pos="8640"/>
|
374
|
+
</w:tabs>
|
375
|
+
</w:pPr>
|
376
|
+
<w:rPr>
|
377
|
+
<wx:font wx:val="Cambria"/>
|
378
|
+
</w:rPr>
|
379
|
+
</w:style>
|
380
|
+
<w:style w:type="character" w:styleId="HeaderChar">
|
381
|
+
<w:name w:val="Header Char"/>
|
382
|
+
<w:basedOn w:val="DefaultParagraphFont"/>
|
383
|
+
<w:link w:val="Header"/>
|
384
|
+
<w:rsid w:val="00B5709B"/>
|
385
|
+
<w:rPr>
|
386
|
+
<w:sz w:val="24"/>
|
387
|
+
<w:sz-cs w:val="24"/>
|
388
|
+
</w:rPr>
|
389
|
+
</w:style>
|
390
|
+
<w:style w:type="paragraph" w:styleId="Footer">
|
391
|
+
<w:name w:val="footer"/>
|
392
|
+
<wx:uiName wx:val="Footer"/>
|
393
|
+
<w:basedOn w:val="Normal"/>
|
394
|
+
<w:link w:val="FooterChar"/>
|
395
|
+
<w:rsid w:val="00B5709B"/>
|
396
|
+
<w:pPr>
|
397
|
+
<w:tabs>
|
398
|
+
<w:tab w:val="center" w:pos="4320"/>
|
399
|
+
<w:tab w:val="right" w:pos="8640"/>
|
400
|
+
</w:tabs>
|
401
|
+
</w:pPr>
|
402
|
+
<w:rPr>
|
403
|
+
<wx:font wx:val="Cambria"/>
|
404
|
+
</w:rPr>
|
405
|
+
</w:style>
|
406
|
+
<w:style w:type="character" w:styleId="FooterChar">
|
407
|
+
<w:name w:val="Footer Char"/>
|
408
|
+
<w:basedOn w:val="DefaultParagraphFont"/>
|
409
|
+
<w:link w:val="Footer"/>
|
410
|
+
<w:rsid w:val="00B5709B"/>
|
411
|
+
<w:rPr>
|
412
|
+
<w:sz w:val="24"/>
|
413
|
+
<w:sz-cs w:val="24"/>
|
414
|
+
</w:rPr>
|
415
|
+
</w:style>
|
416
|
+
<w:style w:type="character" w:styleId="PageNumber">
|
417
|
+
<w:name w:val="page number"/>
|
418
|
+
<wx:uiName wx:val="Page Number"/>
|
419
|
+
<w:basedOn w:val="DefaultParagraphFont"/>
|
420
|
+
<w:rsid w:val="009F65CC"/>
|
421
|
+
</w:style>
|
422
|
+
</w:styles>
|
423
|
+
<w:docPr>
|
424
|
+
<w:view w:val="print"/>
|
425
|
+
<w:zoom w:percent="100"/>
|
426
|
+
<w:proofState w:spelling="clean" w:grammar="clean"/>
|
427
|
+
<w:defaultTabStop w:val="720"/>
|
428
|
+
<w:drawingGridHorizontalSpacing w:val="360"/>
|
429
|
+
<w:drawingGridVerticalSpacing w:val="360"/>
|
430
|
+
<w:displayHorizontalDrawingGridEvery w:val="0"/>
|
431
|
+
<w:displayVerticalDrawingGridEvery w:val="0"/>
|
432
|
+
<w:punctuationKerning/>
|
433
|
+
<w:characterSpacingControl w:val="DontCompress"/>
|
434
|
+
<w:allowPNG/>
|
435
|
+
<w:doNotSaveWebPagesAsSingleFile/>
|
436
|
+
<w:savePreviewPicture/>
|
437
|
+
<w:validateAgainstSchema/>
|
438
|
+
<w:saveInvalidXML w:val="off"/>
|
439
|
+
<w:ignoreMixedContent w:val="off"/>
|
440
|
+
<w:alwaysShowPlaceholderText w:val="off"/>
|
441
|
+
<w:compat>
|
442
|
+
<w:breakWrappedTables/>
|
443
|
+
<w:snapToGridInCell/>
|
444
|
+
<w:wrapTextWithPunct/>
|
445
|
+
<w:useAsianBreakRules/>
|
446
|
+
<w:dontGrowAutofit/>
|
447
|
+
</w:compat>
|
448
|
+
</w:docPr>
|
449
|
+
<w:body>
|
450
|
+
<% items.each do |item| %>
|
451
|
+
<%= item.render %>
|
452
|
+
<% end %>
|
453
|
+
</w:body>
|
454
|
+
</w:wordDocument>
|