openxml-docx 0.9.0 → 0.10.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.
Files changed (211) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +4 -4
  3. data/examples/drawing-ml +134 -0
  4. data/examples/table +28 -0
  5. data/lib/openxml/docx.rb +9 -0
  6. data/lib/openxml/docx/attribute_builder.rb +17 -4
  7. data/lib/openxml/docx/elements/absolute_position_tab.rb +4 -19
  8. data/lib/openxml/docx/elements/bidi_embed.rb +1 -10
  9. data/lib/openxml/docx/elements/bidi_override.rb +1 -9
  10. data/lib/openxml/docx/elements/break.rb +3 -14
  11. data/lib/openxml/docx/elements/control.rb +5 -2
  12. data/lib/openxml/docx/elements/deleted_text.rb +1 -1
  13. data/lib/openxml/docx/elements/drawing.rb +9 -0
  14. data/lib/openxml/docx/elements/element.rb +2 -1
  15. data/lib/openxml/docx/elements/embed_bold.rb +25 -0
  16. data/lib/openxml/docx/elements/embed_bold_italic.rb +25 -0
  17. data/lib/openxml/docx/elements/embed_italic.rb +25 -0
  18. data/lib/openxml/docx/elements/embed_regular.rb +25 -0
  19. data/lib/openxml/docx/elements/family.rb +22 -0
  20. data/lib/openxml/docx/elements/font.rb +14 -0
  21. data/lib/openxml/docx/elements/grid_column.rb +2 -2
  22. data/lib/openxml/docx/elements/group_shape.rb +10 -0
  23. data/lib/openxml/docx/elements/markup_compatibility_alternate_content.rb +10 -0
  24. data/lib/openxml/docx/elements/markup_compatibility_choice.rb +13 -0
  25. data/lib/openxml/docx/elements/markup_compatibility_fallback.rb +10 -0
  26. data/lib/openxml/docx/elements/paper_source.rb +4 -2
  27. data/lib/openxml/docx/elements/section_properties.rb +9 -0
  28. data/lib/openxml/docx/elements/symbol.rb +4 -2
  29. data/lib/openxml/docx/elements/table.rb +1 -1
  30. data/lib/openxml/docx/elements/table_cell.rb +2 -1
  31. data/lib/openxml/docx/elements/table_row.rb +7 -5
  32. data/lib/openxml/docx/elements/text.rb +1 -10
  33. data/lib/openxml/docx/elements/vml_container.rb +10 -0
  34. data/lib/openxml/docx/elements/word_processing_drawing_anchor.rb +23 -0
  35. data/lib/openxml/docx/elements/word_processing_drawing_effect_extent.rb +16 -0
  36. data/lib/openxml/docx/elements/word_processing_drawing_extent.rb +14 -0
  37. data/lib/openxml/docx/elements/word_processing_drawing_nv_graphic_frame_properties.rb +11 -0
  38. data/lib/openxml/docx/elements/word_processing_drawing_object_nv_properties.rb +17 -0
  39. data/lib/openxml/docx/elements/word_processing_drawing_position_h.rb +23 -0
  40. data/lib/openxml/docx/elements/word_processing_drawing_position_offset.rb +10 -0
  41. data/lib/openxml/docx/elements/word_processing_drawing_position_v.rb +23 -0
  42. data/lib/openxml/docx/elements/word_processing_drawing_simple_position.rb +13 -0
  43. data/lib/openxml/docx/elements/word_processing_drawing_wrap_none.rb +10 -0
  44. data/lib/openxml/docx/elements/word_processing_shapes_body_properties.rb +58 -0
  45. data/lib/openxml/docx/elements/word_processing_shapes_shape.rb +12 -0
  46. data/lib/openxml/docx/elements/word_processing_shapes_shape_properties.rb +23 -0
  47. data/lib/openxml/docx/package.rb +73 -1
  48. data/lib/openxml/docx/parts/document.rb +6 -24
  49. data/lib/openxml/docx/parts/fonts.rb +35 -0
  50. data/lib/openxml/docx/parts/footer.rb +32 -0
  51. data/lib/openxml/docx/parts/header.rb +32 -0
  52. data/lib/openxml/docx/parts/settings.rb +6 -2
  53. data/lib/openxml/docx/parts/styles.rb +5 -6
  54. data/lib/openxml/docx/properties.rb +0 -1
  55. data/lib/openxml/docx/properties/alignment.rb +1 -1
  56. data/lib/openxml/docx/properties/base_property.rb +13 -0
  57. data/lib/openxml/docx/properties/border.rb +11 -9
  58. data/lib/openxml/docx/properties/color.rb +6 -4
  59. data/lib/openxml/docx/properties/column.rb +4 -2
  60. data/lib/openxml/docx/properties/columns.rb +6 -4
  61. data/lib/openxml/docx/properties/complex_property.rb +1 -1
  62. data/lib/openxml/docx/properties/conditional_formatting.rb +14 -12
  63. data/lib/openxml/docx/properties/document_grid.rb +4 -10
  64. data/lib/openxml/docx/properties/east_asian_layout.rb +6 -11
  65. data/lib/openxml/docx/properties/font.rb +18 -22
  66. data/lib/openxml/docx/properties/footer_reference.rb +21 -0
  67. data/lib/openxml/docx/properties/frame.rb +16 -47
  68. data/lib/openxml/docx/properties/header_reference.rb +21 -0
  69. data/lib/openxml/docx/properties/indentation.rb +11 -8
  70. data/lib/openxml/docx/properties/language.rb +5 -3
  71. data/lib/openxml/docx/properties/latent_styles.rb +9 -6
  72. data/lib/openxml/docx/properties/latent_styles_exception.rb +9 -6
  73. data/lib/openxml/docx/properties/line_numbering.rb +5 -11
  74. data/lib/openxml/docx/properties/manual_width.rb +4 -2
  75. data/lib/openxml/docx/properties/numbering.rb +4 -2
  76. data/lib/openxml/docx/properties/page_borders.rb +6 -19
  77. data/lib/openxml/docx/properties/page_margins.rb +10 -7
  78. data/lib/openxml/docx/properties/page_numbering.rb +66 -74
  79. data/lib/openxml/docx/properties/page_size.rb +5 -12
  80. data/lib/openxml/docx/properties/shading.rb +46 -52
  81. data/lib/openxml/docx/properties/spacing.rb +9 -14
  82. data/lib/openxml/docx/properties/table_border.rb +12 -10
  83. data/lib/openxml/docx/properties/table_cell_border.rb +12 -10
  84. data/lib/openxml/docx/properties/table_cell_margin.rb +6 -4
  85. data/lib/openxml/docx/properties/table_cell_spacing.rb +5 -3
  86. data/lib/openxml/docx/properties/table_cell_width.rb +5 -3
  87. data/lib/openxml/docx/properties/table_indent.rb +5 -3
  88. data/lib/openxml/docx/properties/table_layout.rb +2 -4
  89. data/lib/openxml/docx/properties/table_look.rb +8 -6
  90. data/lib/openxml/docx/properties/table_p_pr.rb +11 -30
  91. data/lib/openxml/docx/properties/table_row_height.rb +13 -0
  92. data/lib/openxml/docx/properties/table_width.rb +5 -3
  93. data/lib/openxml/docx/properties/underline.rb +13 -12
  94. data/lib/openxml/docx/properties/wafter.rb +5 -3
  95. data/lib/openxml/docx/properties/wbefore.rb +5 -3
  96. data/lib/openxml/docx/root_namespaces.rb +74 -0
  97. data/lib/openxml/docx/section.rb +2 -0
  98. data/lib/openxml/docx/style.rb +4 -4
  99. data/lib/openxml/docx/version.rb +1 -1
  100. data/lib/openxml/drawingml.rb +17 -0
  101. data/lib/openxml/drawingml/elements.rb +13 -0
  102. data/lib/openxml/drawingml/elements/adjust_values_list.rb +11 -0
  103. data/lib/openxml/drawingml/elements/blip_fill.rb +14 -0
  104. data/lib/openxml/drawingml/elements/extension.rb +13 -0
  105. data/lib/openxml/drawingml/elements/extension_list.rb +11 -0
  106. data/lib/openxml/drawingml/elements/extents.rb +14 -0
  107. data/lib/openxml/drawingml/elements/graphic.rb +10 -0
  108. data/lib/openxml/drawingml/elements/graphic_data.rb +12 -0
  109. data/lib/openxml/drawingml/elements/graphic_frame_locks.rb +17 -0
  110. data/lib/openxml/drawingml/elements/head_end.rb +28 -0
  111. data/lib/openxml/drawingml/elements/no_fill.rb +10 -0
  112. data/lib/openxml/drawingml/elements/non_visual_drawing_properties.rb +17 -0
  113. data/lib/openxml/drawingml/elements/non_visual_picture_drawing_properties.rb +12 -0
  114. data/lib/openxml/drawingml/elements/non_visual_picture_properties.rb +10 -0
  115. data/lib/openxml/drawingml/elements/offset.rb +14 -0
  116. data/lib/openxml/drawingml/elements/outline.rb +36 -0
  117. data/lib/openxml/drawingml/elements/picture.rb +10 -0
  118. data/lib/openxml/drawingml/elements/preset_geometry.rb +210 -0
  119. data/lib/openxml/drawingml/elements/round.rb +10 -0
  120. data/lib/openxml/drawingml/elements/shape_guide.rb +40 -0
  121. data/lib/openxml/drawingml/elements/solid_fill.rb +10 -0
  122. data/lib/openxml/drawingml/elements/srgb_color.rb +14 -0
  123. data/lib/openxml/drawingml/elements/tail_end.rb +28 -0
  124. data/lib/openxml/drawingml/elements/transform_effect.rb +18 -0
  125. data/lib/openxml/drawingml/elements/wordprocessing_shape_group.rb +11 -0
  126. data/lib/openxml/vml.rb +17 -0
  127. data/lib/openxml/vml/elements.rb +13 -0
  128. data/lib/openxml/vml/elements/group.rb +88 -0
  129. data/lib/openxml/vml/elements/rectangle.rb +115 -0
  130. data/lib/openxml/vml/elements/rounded_rectangle.rb +121 -0
  131. data/openxml-docx.gemspec +1 -1
  132. data/spec/elements/absolute_position_tab_spec.rb +15 -47
  133. data/spec/elements/bidi_embed_spec.rb +4 -8
  134. data/spec/elements/bidi_override_spec.rb +4 -8
  135. data/spec/elements/break_spec.rb +8 -31
  136. data/spec/elements/content_part_spec.rb +2 -2
  137. data/spec/elements/control_spec.rb +6 -6
  138. data/spec/elements/deleted_text_spec.rb +2 -2
  139. data/spec/elements/drawing_spec.rb +11 -0
  140. data/spec/elements/drawingml/adjust_values_list_spec.rb +8 -0
  141. data/spec/elements/drawingml/blip_fill_spec.rb +34 -0
  142. data/spec/elements/drawingml/extension_list_spec.rb +8 -0
  143. data/spec/elements/drawingml/extension_spec.rb +19 -0
  144. data/spec/elements/drawingml/extents_spec.rb +33 -0
  145. data/spec/elements/drawingml/graphic_data_spec.rb +19 -0
  146. data/spec/elements/drawingml/graphic_frame_locks_spec.rb +78 -0
  147. data/spec/elements/drawingml/graphic_spec.rb +8 -0
  148. data/spec/elements/drawingml/head_end_spec.rb +45 -0
  149. data/spec/elements/drawingml/no_fill_spec.rb +8 -0
  150. data/spec/elements/drawingml/non_visual_drawing_properties_spec.rb +63 -0
  151. data/spec/elements/drawingml/non_visual_picture_drawing_properties_spec.rb +18 -0
  152. data/spec/elements/drawingml/non_visual_picture_properties_spec.rb +8 -0
  153. data/spec/elements/drawingml/offset_spec.rb +32 -0
  154. data/spec/elements/drawingml/outline_spec.rb +58 -0
  155. data/spec/elements/drawingml/picture_spec.rb +8 -0
  156. data/spec/elements/drawingml/preset_geometry_spec.rb +19 -0
  157. data/spec/elements/drawingml/round_spec.rb +8 -0
  158. data/spec/elements/drawingml/shape_guide_spec.rb +49 -0
  159. data/spec/elements/drawingml/solid_fill_spec.rb +8 -0
  160. data/spec/elements/drawingml/srgb_color_spec.rb +20 -0
  161. data/spec/elements/drawingml/tail_end_spec.rb +44 -0
  162. data/spec/elements/drawingml/transform_effect_spec.rb +80 -0
  163. data/spec/elements/drawingml/wordprocessing_shape_group_spec.rb +12 -0
  164. data/spec/elements/group_shape_spec.rb +11 -0
  165. data/spec/elements/markup_compatibility_alternate_content_spec.rb +11 -0
  166. data/spec/elements/markup_compatibility_choice_spec.rb +22 -0
  167. data/spec/elements/markup_compatibility_fallback_spec.rb +11 -0
  168. data/spec/elements/section_properties_spec.rb +12 -0
  169. data/spec/elements/symbol_spec.rb +4 -7
  170. data/spec/elements/text_spec.rb +2 -2
  171. data/spec/elements/vml/group_spec.rb +542 -0
  172. data/spec/elements/vml/rectangle_spec.rb +739 -0
  173. data/spec/elements/vml/rounded_rectangle_spec.rb +656 -0
  174. data/spec/elements/vml_container_spec.rb +11 -0
  175. data/spec/elements/word_processing_drawing_anchor_spec.rb +40 -0
  176. data/spec/elements/word_processing_drawing_effect_extent_spec.rb +57 -0
  177. data/spec/elements/word_processing_drawing_extent_spec.rb +34 -0
  178. data/spec/elements/word_processing_drawing_nv_graphic_frame_properties_spec.rb +11 -0
  179. data/spec/elements/word_processing_drawing_object_nv_properties_spec.rb +67 -0
  180. data/spec/elements/word_processing_drawing_position_h_spec.rb +21 -0
  181. data/spec/elements/word_processing_drawing_position_v_spec.rb +21 -0
  182. data/spec/elements/word_processing_drawing_simple_position_spec.rb +34 -0
  183. data/spec/elements/word_processing_drawing_wrap_none_spec.rb +12 -0
  184. data/spec/elements/word_processing_shapes_body_properties_spec.rb +223 -0
  185. data/spec/elements/word_processing_shapes_shape_properties_spec.rb +21 -0
  186. data/spec/elements/word_processing_shapes_shape_spec.rb +23 -0
  187. data/spec/parts/footer_spec.rb +33 -0
  188. data/spec/parts/header_spec.rb +33 -0
  189. data/spec/properties/footer_reference_spec.rb +32 -0
  190. data/spec/properties/header_reference_spec.rb +32 -0
  191. data/spec/properties/page_numbering_spec.rb +1 -1
  192. data/spec/properties/{table_cell_fit_text.rb → table_cell_fit_text_spec.rb} +0 -0
  193. data/spec/properties/{table_cell_width.rb → table_cell_width_spec.rb} +0 -0
  194. data/spec/properties/table_layout_spec.rb +14 -12
  195. data/spec/properties/{table_row_height.rb → table_row_height_spec.rb} +0 -0
  196. data/spec/section_spec.rb +2 -0
  197. data/spec/spec_helper.rb +2 -0
  198. data/spec/support/data/elements/grid_column_element.xml +1 -1
  199. data/spec/support/data/elements/table_grid_element.xml +1 -1
  200. data/spec/support/data/parts/document_with_children_part.xml +2 -1
  201. data/spec/support/data/parts/document_with_multiple_sections_part.xml +1 -1
  202. data/spec/support/data/parts/document_with_one_section_part.xml +1 -1
  203. data/spec/support/data/parts/empty_document_part.xml +1 -1
  204. data/spec/support/data/parts/empty_footer_part.xml +1 -0
  205. data/spec/support/data/parts/empty_header_part.xml +1 -0
  206. data/spec/support/data/parts/footer_with_children_part.xml +1 -0
  207. data/spec/support/data/parts/header_with_children_part.xml +1 -0
  208. data/spec/support/element_test_macros.rb +58 -9
  209. metadata +126 -9
  210. data/lib/openxml/docx/properties/tr_height.rb +0 -19
  211. data/lib/openxml/docx/properties/width_property.rb +0 -17
@@ -0,0 +1,25 @@
1
+ module OpenXml
2
+ module Docx
3
+ module Elements
4
+ class EmbedBoldItalic < Element
5
+ namespace :w
6
+
7
+ with_namespace :w do
8
+ attribute :font_key, expects: :bracketed_guid, displays_as: :fontKey
9
+ attribute :subsetted, expects: :true_or_false
10
+ end
11
+
12
+ attribute :relationship_id, expects: :string, displays_as: :id, namespace: :r
13
+
14
+
15
+ private
16
+
17
+ def bracketed_guid(value)
18
+ guid_regex = /\{[0-9A-F]{8}\-[0-9A-F]{4}\-[0-9A-F]{4}\-[0-9A-F]{4}\-[0-9A-F]{12}\}/ # Regex taken from spec section 22.9.2.4
19
+ raise ArgumentError, "Not a validly-formatted GUID" unless value =~ guid_regex
20
+ end
21
+
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,25 @@
1
+ module OpenXml
2
+ module Docx
3
+ module Elements
4
+ class EmbedItalic < Element
5
+ namespace :w
6
+
7
+ with_namespace :w do
8
+ attribute :font_key, expects: :bracketed_guid, displays_as: :fontKey
9
+ attribute :subsetted, expects: :true_or_false
10
+ end
11
+
12
+ attribute :relationship_id, expects: :string, displays_as: :id, namespace: :r
13
+
14
+
15
+ private
16
+
17
+ def bracketed_guid(value)
18
+ guid_regex = /\{[0-9A-F]{8}\-[0-9A-F]{4}\-[0-9A-F]{4}\-[0-9A-F]{4}\-[0-9A-F]{12}\}/ # Regex taken from spec section 22.9.2.4
19
+ raise ArgumentError, "Not a validly-formatted GUID" unless value =~ guid_regex
20
+ end
21
+
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,25 @@
1
+ module OpenXml
2
+ module Docx
3
+ module Elements
4
+ class EmbedRegular < Element
5
+ namespace :w
6
+
7
+ with_namespace :w do
8
+ attribute :font_key, expects: :bracketed_guid, displays_as: :fontKey
9
+ attribute :subsetted, expects: :true_or_false
10
+ end
11
+
12
+ attribute :relationship_id, expects: :string, displays_as: :id, namespace: :r
13
+
14
+
15
+ private
16
+
17
+ def bracketed_guid(value)
18
+ guid_regex = /\{[0-9A-F]{8}\-[0-9A-F]{4}\-[0-9A-F]{4}\-[0-9A-F]{4}\-[0-9A-F]{12}\}/ # Regex taken from spec section 22.9.2.4
19
+ raise ArgumentError, "Not a validly-formatted GUID (#{value})" unless value =~ guid_regex
20
+ end
21
+
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,22 @@
1
+ module OpenXml
2
+ module Docx
3
+ module Elements
4
+ class Family < Element
5
+ namespace :w
6
+
7
+ with_namespace :w do
8
+ attribute :value, expects: :valid_font_family, displays_as: :val
9
+ end
10
+
11
+ private
12
+
13
+ def valid_font_family(value)
14
+ ok_values = %i(auto decorative modern roman script swiss) # From the spec section 17.18.30
15
+ message = "Invalid font family type (#{value}). Valid options are: #{ok_values.join(", ")}."
16
+ raise ArgumentError, message unless ok_values.inculde? value
17
+ end
18
+
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,14 @@
1
+ module OpenXml
2
+ module Docx
3
+ module Elements
4
+ class Font < Container
5
+ namespace :w
6
+
7
+ with_namespace :w do
8
+ attribute :font_name, expects: :string, displays_as: :name
9
+ end
10
+
11
+ end
12
+ end
13
+ end
14
+ end
@@ -2,9 +2,9 @@ module OpenXml
2
2
  module Docx
3
3
  module Elements
4
4
  class GridColumn < Element
5
- tag :gridColumn
5
+ tag :gridCol
6
6
 
7
- attribute :w, expects: :integer
7
+ attribute :w, expects: :integer, namespace: :w
8
8
 
9
9
  end
10
10
  end
@@ -0,0 +1,10 @@
1
+ module OpenXml
2
+ module Docx
3
+ module Elements
4
+ class GroupShape < Container
5
+ tag :grpSp
6
+
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,10 @@
1
+ module OpenXml
2
+ module Docx
3
+ module Elements
4
+ class MarkupCompatibilityAlternateContent < Container
5
+ tag :AlternateContent
6
+ namespace :mc
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,13 @@
1
+ module OpenXml
2
+ module Docx
3
+ module Elements
4
+ class MarkupCompatibilityChoice < Container
5
+ tag :Choice
6
+ namespace :mc
7
+
8
+ attribute :Required, expects: :string
9
+
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,10 @@
1
+ module OpenXml
2
+ module Docx
3
+ module Elements
4
+ class MarkupCompatibilityFallback < Container
5
+ tag :Fallback
6
+ namespace :mc
7
+ end
8
+ end
9
+ end
10
+ end
@@ -4,8 +4,10 @@ module OpenXml
4
4
  class PaperSource < ComplexProperty
5
5
  tag :paperSrc
6
6
 
7
- attribute :first, expects: :integer
8
- attribute :other, expects: :integer
7
+ with_namespace :w do
8
+ attribute :first, expects: :integer
9
+ attribute :other, expects: :integer
10
+ end
9
11
 
10
12
  end
11
13
  end
@@ -0,0 +1,9 @@
1
+ module OpenXml
2
+ module Docx
3
+ module Elements
4
+ class SectionProperties < Container
5
+ tag :sectPr
6
+ end
7
+ end
8
+ end
9
+ end
@@ -4,8 +4,10 @@ module OpenXml
4
4
  class Symbol < Element
5
5
  tag :sym
6
6
 
7
- attribute :font, expects: :string
8
- attribute :character, expects: :hex_digit_4, displays_as: :char
7
+ with_namespace :w do
8
+ attribute :font, expects: :string
9
+ attribute :character, expects: :hex_digit_4, displays_as: :char
10
+ end
9
11
 
10
12
  end
11
13
  end
@@ -10,7 +10,6 @@ module OpenXml
10
10
  value_property :alignment
11
11
  value_property :table_caption
12
12
  value_property :table_description
13
- value_property :table_layout
14
13
  value_property :table_overlap
15
14
  value_property :table_style
16
15
 
@@ -20,6 +19,7 @@ module OpenXml
20
19
  property :table_cell_margins
21
20
  property :table_cell_spacing
22
21
  property :table_indent
22
+ property :table_layout
23
23
  property :table_look
24
24
  property :table_p_pr
25
25
  property :table_width
@@ -4,7 +4,7 @@ module OpenXml
4
4
  class TableCell < Container
5
5
  tag :tc
6
6
 
7
- attribute :id
7
+ attribute :id, namespace: :w
8
8
 
9
9
  value_property :div_id
10
10
  value_property :grid_span
@@ -12,6 +12,7 @@ module OpenXml
12
12
  value_property :no_wrap
13
13
  value_property :table_cell_fit_text
14
14
  value_property :text_direction
15
+ value_property :v_align
15
16
 
16
17
  property :conditional_formatting
17
18
  property :headers
@@ -4,10 +4,12 @@ module OpenXml
4
4
  class TableRow < Container
5
5
  tag :tr
6
6
 
7
- attribute :rsidDel, expects: :valid_long_hex
8
- attribute :rsidR, expects: :valid_long_hex
9
- attribute :rsidRPr, expects: :valid_long_hex
10
- attribute :risdTr, expects: :valid_long_hex
7
+ with_namespace :w do
8
+ attribute :rsidDel, expects: :valid_long_hex
9
+ attribute :rsidR, expects: :valid_long_hex
10
+ attribute :rsidRPr, expects: :valid_long_hex
11
+ attribute :risdTr, expects: :valid_long_hex
12
+ end
11
13
 
12
14
  value_property :cant_split
13
15
  value_property :div_id
@@ -20,7 +22,7 @@ module OpenXml
20
22
 
21
23
  property :conditional_formatting
22
24
  property :table_cell_spacing
23
- property :tr_height
25
+ property :table_row_height
24
26
  property :w_after
25
27
  property :w_before
26
28
 
@@ -6,9 +6,7 @@ module OpenXml
6
6
 
7
7
  tag :t
8
8
 
9
- attribute :space, expects: :valid_space_preserve, namespace: :xml
10
-
11
- VALID_SPACE_PRESERVES = [:preserve, nil]
9
+ attribute :space, one_of: [:preserve, nil], namespace: :xml
12
10
 
13
11
  def initialize(text=nil)
14
12
  @text = text
@@ -17,13 +15,6 @@ module OpenXml
17
15
  def to_xml(xml)
18
16
  xml["w"].public_send(tag, text, xml_attributes)
19
17
  end
20
-
21
- private
22
-
23
- def valid_space_preserve(value)
24
- valid_in? value, VALID_SPACE_PRESERVES
25
- end
26
-
27
18
  end
28
19
  end
29
20
  end
@@ -0,0 +1,10 @@
1
+ module OpenXml
2
+ module Docx
3
+ module Elements
4
+ class VmlContainer < Container
5
+ tag :pict
6
+
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,23 @@
1
+ module OpenXml
2
+ module Docx
3
+ module Elements
4
+ class WordProcessingDrawingAnchor < Container
5
+ tag :anchor
6
+ namespace :wp
7
+
8
+ attribute :allowOverlap, expects: :true_or_false
9
+ attribute :behindDoc, expects: :true_or_false
10
+ attribute :distB, expects: :positive_integer
11
+ attribute :distL, expects: :positive_integer
12
+ attribute :distR, expects: :positive_integer
13
+ attribute :distT, expects: :positive_integer
14
+ attribute :hidden, expects: :true_or_false
15
+ attribute :layoutInCell, expects: :true_or_false
16
+ attribute :locked, expects: :true_or_false
17
+ attribute :relativeHeight, expects: :positive_integer
18
+ attribute :simplePos, expects: :true_or_false
19
+
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,16 @@
1
+ module OpenXml
2
+ module Docx
3
+ module Elements
4
+ class WordProcessingDrawingEffectExtent < Element
5
+ tag :effectExtent
6
+ namespace :wp
7
+
8
+ attribute :bottom_edge, expects: :integer, displays_as: :b
9
+ attribute :left_edge, expects: :integer, displays_as: :l
10
+ attribute :right_edge, expects: :integer, displays_as: :r
11
+ attribute :top_edge, expects: :integer, displays_as: :t
12
+
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,14 @@
1
+ module OpenXml
2
+ module Docx
3
+ module Elements
4
+ class WordProcessingDrawingExtent < Element
5
+ tag :extent
6
+ namespace :wp
7
+
8
+ attribute :extent_length, expects: :positive_integer, displays_as: :cx
9
+ attribute :extent_width, expects: :positive_integer, displays_as: :cy
10
+
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,11 @@
1
+ module OpenXml
2
+ module Docx
3
+ module Elements
4
+ class WordProcessingDrawingNvGraphicFrameProperties < Container
5
+ tag :cNvGraphicFramePr
6
+ namespace :wp
7
+
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,17 @@
1
+ module OpenXml
2
+ module Docx
3
+ module Elements
4
+ class WordProcessingDrawingObjectNvProperties < Element
5
+ tag :docPr
6
+ namespace :wp
7
+
8
+ attribute :description, expects: :string, displays_as: :descr
9
+ attribute :hidden, expects: :true_or_false
10
+ attribute :id, expects: :positive_integer
11
+ attribute :property_name, expects: :string, displays_as: :name
12
+ attribute :title, expects: :string
13
+
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,23 @@
1
+ module OpenXml
2
+ module Docx
3
+ module Elements
4
+ class WordProcessingDrawingPositionH < Container
5
+ tag :positionH
6
+ namespace :wp
7
+
8
+ attribute :relativeFrom, expects: :valid_relative_from
9
+
10
+ private
11
+
12
+ def valid_relative_from(value)
13
+ raise ArgumentError unless ok_values.include? value
14
+ end
15
+
16
+ def ok_values
17
+ %i(character column insideMargin leftMargin margin outsideMargin
18
+ page rightMargin)
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,10 @@
1
+ module OpenXml
2
+ module Docx
3
+ module Elements
4
+ class WordProcessingDrawingPositionOffset < Container
5
+ tag :posOffset
6
+ namespace :wp
7
+ end
8
+ end
9
+ end
10
+ end