clarus 0.0.4 → 0.0.5
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/.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>
|