openxml-pptx 0.2.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.
- checksums.yaml +7 -0
- data/.gitignore +9 -0
- data/.travis.yml +6 -0
- data/Gemfile +8 -0
- data/Gemfile.lock +92 -0
- data/Guardfile +16 -0
- data/LICENSE.txt +21 -0
- data/README.md +46 -0
- data/Rakefile +6 -0
- data/bin/build_fixtures +10 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/bin/zipflip +56 -0
- data/lib/openxml/pptx.rb +52 -0
- data/lib/openxml/pptx/elements.rb +12 -0
- data/lib/openxml/pptx/package.rb +33 -0
- data/lib/openxml/pptx/parts.rb +12 -0
- data/lib/openxml/pptx/parts/image.rb +32 -0
- data/lib/openxml/pptx/parts/presentation.rb +142 -0
- data/lib/openxml/pptx/parts/presentation_properties.rb +38 -0
- data/lib/openxml/pptx/parts/slide.rb +87 -0
- data/lib/openxml/pptx/parts/slide_layout.rb +88 -0
- data/lib/openxml/pptx/parts/slide_master.rb +132 -0
- data/lib/openxml/pptx/parts/theme.rb +61 -0
- data/lib/openxml/pptx/properties.rb +21 -0
- data/lib/openxml/pptx/properties/background.rb +19 -0
- data/lib/openxml/pptx/properties/background_properties.rb +30 -0
- data/lib/openxml/pptx/properties/background_reference.rb +23 -0
- data/lib/openxml/pptx/properties/blip_fill.rb +11 -0
- data/lib/openxml/pptx/properties/color_mapping.rb +11 -0
- data/lib/openxml/pptx/properties/color_mapping_override.rb +11 -0
- data/lib/openxml/pptx/properties/common_slide_data.rb +21 -0
- data/lib/openxml/pptx/properties/connection_shape.rb +16 -0
- data/lib/openxml/pptx/properties/content_part.rb +13 -0
- data/lib/openxml/pptx/properties/control.rb +36 -0
- data/lib/openxml/pptx/properties/control_list.rb +14 -0
- data/lib/openxml/pptx/properties/custom_show.rb +18 -0
- data/lib/openxml/pptx/properties/custom_show_list.rb +14 -0
- data/lib/openxml/pptx/properties/customer_data.rb +13 -0
- data/lib/openxml/pptx/properties/customer_data_container.rb +12 -0
- data/lib/openxml/pptx/properties/customer_data_list.rb +14 -0
- data/lib/openxml/pptx/properties/data_tags.rb +13 -0
- data/lib/openxml/pptx/properties/default_text_style.rb +24 -0
- data/lib/openxml/pptx/properties/embedded_font.rb +18 -0
- data/lib/openxml/pptx/properties/embedded_font_list.rb +14 -0
- data/lib/openxml/pptx/properties/extension.rb +14 -0
- data/lib/openxml/pptx/properties/extension_list.rb +14 -0
- data/lib/openxml/pptx/properties/font.rb +32 -0
- data/lib/openxml/pptx/properties/font_reference.rb +12 -0
- data/lib/openxml/pptx/properties/font_reference_bold.rb +13 -0
- data/lib/openxml/pptx/properties/font_reference_bold_italic.rb +13 -0
- data/lib/openxml/pptx/properties/font_reference_italic.rb +13 -0
- data/lib/openxml/pptx/properties/font_reference_regular.rb +13 -0
- data/lib/openxml/pptx/properties/graphic_frame.rb +20 -0
- data/lib/openxml/pptx/properties/group_shape_properties.rb +34 -0
- data/lib/openxml/pptx/properties/handout_master_id.rb +18 -0
- data/lib/openxml/pptx/properties/handout_master_id_list.rb +14 -0
- data/lib/openxml/pptx/properties/non_visual_connection_shape_drawing_properties.rb +18 -0
- data/lib/openxml/pptx/properties/non_visual_connection_shape_properties.rb +16 -0
- data/lib/openxml/pptx/properties/non_visual_drawing_properties.rb +30 -0
- data/lib/openxml/pptx/properties/non_visual_graphic_frame_drawing_properties.rb +15 -0
- data/lib/openxml/pptx/properties/non_visual_graphic_frame_properties.rb +16 -0
- data/lib/openxml/pptx/properties/non_visual_group_shape_drawing_properties.rb +15 -0
- data/lib/openxml/pptx/properties/non_visual_group_shape_properties.rb +16 -0
- data/lib/openxml/pptx/properties/non_visual_picture_properties.rb +16 -0
- data/lib/openxml/pptx/properties/non_visual_picutre_drawing_properties.rb +18 -0
- data/lib/openxml/pptx/properties/non_visual_properties.rb +29 -0
- data/lib/openxml/pptx/properties/non_visual_shape_drawing_properties.rb +18 -0
- data/lib/openxml/pptx/properties/non_visual_shape_properties.rb +16 -0
- data/lib/openxml/pptx/properties/notes_master_id.rb +18 -0
- data/lib/openxml/pptx/properties/notes_master_id_list.rb +14 -0
- data/lib/openxml/pptx/properties/notes_size.rb +14 -0
- data/lib/openxml/pptx/properties/photo_album.rb +19 -0
- data/lib/openxml/pptx/properties/picture.rb +30 -0
- data/lib/openxml/pptx/properties/placeholder.rb +20 -0
- data/lib/openxml/pptx/properties/shape.rb +34 -0
- data/lib/openxml/pptx/properties/shape_group.rb +18 -0
- data/lib/openxml/pptx/properties/shape_properties.rb +11 -0
- data/lib/openxml/pptx/properties/shape_style.rb +11 -0
- data/lib/openxml/pptx/properties/shape_tree.rb +13 -0
- data/lib/openxml/pptx/properties/shapes_container.rb +18 -0
- data/lib/openxml/pptx/properties/simple_boolean_property.rb +16 -0
- data/lib/openxml/pptx/properties/simple_property_container_property.rb +14 -0
- data/lib/openxml/pptx/properties/slide_id.rb +29 -0
- data/lib/openxml/pptx/properties/slide_id_list.rb +14 -0
- data/lib/openxml/pptx/properties/slide_layout_id.rb +26 -0
- data/lib/openxml/pptx/properties/slide_layout_id_list.rb +14 -0
- data/lib/openxml/pptx/properties/slide_list.rb +14 -0
- data/lib/openxml/pptx/properties/slide_master_id.rb +29 -0
- data/lib/openxml/pptx/properties/slide_master_id_list.rb +14 -0
- data/lib/openxml/pptx/properties/slide_reference.rb +15 -0
- data/lib/openxml/pptx/properties/slide_size.rb +16 -0
- data/lib/openxml/pptx/properties/smart_tags.rb +15 -0
- data/lib/openxml/pptx/properties/text_body.rb +11 -0
- data/lib/openxml/pptx/properties/text_style_body.rb +11 -0
- data/lib/openxml/pptx/properties/text_style_other.rb +11 -0
- data/lib/openxml/pptx/properties/text_style_title.rb +11 -0
- data/lib/openxml/pptx/properties/text_styles.rb +17 -0
- data/lib/openxml/pptx/properties/transform.rb +11 -0
- data/lib/openxml/pptx/properties/transparent_container_property.rb +14 -0
- data/lib/openxml/pptx/relatable_part.rb +100 -0
- data/lib/openxml/pptx/version.rb +5 -0
- data/openxml-pptx.gemspec +33 -0
- metadata +258 -0
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
require "openxml/pptx/properties/embedded_font"
|
|
2
|
+
|
|
3
|
+
module OpenXml
|
|
4
|
+
module Pptx
|
|
5
|
+
module Properties
|
|
6
|
+
class EmbeddedFontList < OpenXml::Properties::ContainerProperty
|
|
7
|
+
namespace :p
|
|
8
|
+
tag :embeddedFontLst
|
|
9
|
+
child_class :embedded_font
|
|
10
|
+
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
module OpenXml
|
|
2
|
+
module Pptx
|
|
3
|
+
module Properties
|
|
4
|
+
class Font < OpenXml::Properties::ComplexProperty
|
|
5
|
+
namespace :p
|
|
6
|
+
tag :font
|
|
7
|
+
|
|
8
|
+
# TODO: Add charset, panose, and pitchFamily attributes
|
|
9
|
+
attribute :typeface, expects: :string, required: true
|
|
10
|
+
|
|
11
|
+
def initialize(value)
|
|
12
|
+
super()
|
|
13
|
+
raise ArgumentError, invalid_message unless value.is_a?(String)
|
|
14
|
+
self.typeface = value
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def invalid_message
|
|
18
|
+
"Invalid font: value must be a string indicating the typeface"
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
private
|
|
22
|
+
|
|
23
|
+
# Overridden since typeface _can_ be a zero-length string
|
|
24
|
+
def string(value)
|
|
25
|
+
message = "Invalid typeface: must be a string"
|
|
26
|
+
raise ArgumentError, message unless value.is_a?(String)
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
module OpenXml
|
|
2
|
+
module Pptx
|
|
3
|
+
module Properties
|
|
4
|
+
class GraphicFrame < OpenXml::Properties::ComplexProperty
|
|
5
|
+
include OpenXml::ContainsProperties
|
|
6
|
+
namespace :p
|
|
7
|
+
tag :graphicFrame
|
|
8
|
+
|
|
9
|
+
attribute :bw_mode, one_of: OpenXml::Pptx::ST_BlackWhiteMode
|
|
10
|
+
|
|
11
|
+
property :non_visual_graphic_frame_properties, required: true
|
|
12
|
+
property :transform, required: true
|
|
13
|
+
property :graphic, klass: OpenXml::DrawingML::Properties::Graphic, required: true
|
|
14
|
+
|
|
15
|
+
property :extension_list
|
|
16
|
+
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
module OpenXml
|
|
2
|
+
module Pptx
|
|
3
|
+
module Properties
|
|
4
|
+
class GroupShapeProperties < OpenXml::Properties::ComplexProperty
|
|
5
|
+
include OpenXml::ContainsProperties
|
|
6
|
+
include OpenXml::RenderWhenEmpty
|
|
7
|
+
namespace :p
|
|
8
|
+
tag :grpSpPr
|
|
9
|
+
|
|
10
|
+
attribute :bw_mode, one_of: OpenXml::Pptx::ST_BlackWhiteMode
|
|
11
|
+
|
|
12
|
+
property :transform, klass: OpenXml::DrawingML::Properties::GroupTransform
|
|
13
|
+
|
|
14
|
+
property_choice do
|
|
15
|
+
value_property :no_fill, klass: OpenXml::DrawingML::Properties::FillNone
|
|
16
|
+
property :solid_fill, klass: OpenXml::DrawingML::Properties::FillSolid
|
|
17
|
+
property :gradient_fill, klass: OpenXml::DrawingML::Properties::FillGradient
|
|
18
|
+
property :pattern_fill, klass: OpenXml::DrawingML::Properties::FillPattern
|
|
19
|
+
property :blip_fill, klass: OpenXml::DrawingML::Properties::FillBlip
|
|
20
|
+
value_property :inherit_group_fill, klass: OpenXml::DrawingML::Properties::FillGroup
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
property_choice do
|
|
24
|
+
property :effect_list, klass: OpenXml::DrawingML::Properties::EffectList
|
|
25
|
+
property :effect_dag, klass: OpenXml::DrawingML::Properties::EffectDag
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
property :scene_3d, klass: OpenXml::DrawingML::Properties::Scene3d
|
|
29
|
+
property :extension_list, klass: OpenXml::DrawingML::Properties::ExtensionList
|
|
30
|
+
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
module OpenXml
|
|
2
|
+
module Pptx
|
|
3
|
+
module Properties
|
|
4
|
+
class HandoutMasterId < OpenXml::Properties::ComplexProperty
|
|
5
|
+
include OpenXml::ContainsProperties
|
|
6
|
+
namespace :p
|
|
7
|
+
tag :handoutMasterId
|
|
8
|
+
|
|
9
|
+
with_namespace :r do
|
|
10
|
+
attribute :rid, displays_as: :id, expects: :string, required: true
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
property :extension_list
|
|
14
|
+
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
require "openxml/pptx/properties/handout_master_id"
|
|
2
|
+
|
|
3
|
+
module OpenXml
|
|
4
|
+
module Pptx
|
|
5
|
+
module Properties
|
|
6
|
+
class HandoutMasterIdList < OpenXml::Properties::ContainerProperty
|
|
7
|
+
namespace :p
|
|
8
|
+
tag :handoutMasterIdLst
|
|
9
|
+
child_class :handout_master_id
|
|
10
|
+
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
module OpenXml
|
|
2
|
+
module Pptx
|
|
3
|
+
module Properties
|
|
4
|
+
class NonVisualConnectionShapeDrawingProperties < SimplePropertyContainerProperty
|
|
5
|
+
include OpenXml::RenderWhenEmpty
|
|
6
|
+
namespace :p
|
|
7
|
+
tag :cNvCxnSpPr
|
|
8
|
+
|
|
9
|
+
property :connection_shape_locks, klass: OpenXml::DrawingML::Properties::ConnectionShapeLocks
|
|
10
|
+
property :connection_start, klass: OpenXml::DrawingML::Properties::ConnectionStart
|
|
11
|
+
property :connection_end, klass: OpenXml::DrawingML::Properties::ConnectionEnd
|
|
12
|
+
|
|
13
|
+
property :extension_list, klass: OpenXml::DrawingML::Properties::ExtensionList
|
|
14
|
+
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
module OpenXml
|
|
2
|
+
module Pptx
|
|
3
|
+
module Properties
|
|
4
|
+
class NonVisualConnectionShapeProperties < SimplePropertyContainerProperty
|
|
5
|
+
include OpenXml::RenderWhenEmpty
|
|
6
|
+
namespace :p
|
|
7
|
+
tag :nvCxnSpPr
|
|
8
|
+
|
|
9
|
+
property :non_visual_drawing_properties, required: true
|
|
10
|
+
property :non_visual_connection_shape_drawing_properties, required: true
|
|
11
|
+
property :non_visual_properties, required: true
|
|
12
|
+
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
module OpenXml
|
|
2
|
+
module Pptx
|
|
3
|
+
module Properties
|
|
4
|
+
class NonVisualDrawingProperties < OpenXml::Properties::ComplexProperty
|
|
5
|
+
include OpenXml::ContainsProperties
|
|
6
|
+
include OpenXml::RenderWhenEmpty
|
|
7
|
+
namespace :p
|
|
8
|
+
tag :cNvPr
|
|
9
|
+
|
|
10
|
+
attribute :description, displays_as: :descr, expects: :string
|
|
11
|
+
attribute :hidden, expects: :boolean
|
|
12
|
+
attribute :id, expects: :positive_integer, required: true
|
|
13
|
+
attribute :object_name, displays_as: :name, expects: :string_or_blank, required: true
|
|
14
|
+
attribute :title, expects: :string
|
|
15
|
+
|
|
16
|
+
property :hyperlink_click, klass: OpenXml::DrawingML::Properties::HyperlinkClick
|
|
17
|
+
property :hyperlink_hover, klass: OpenXml::DrawingML::Properties::HyperlinkHover
|
|
18
|
+
|
|
19
|
+
property :extension_list, klass: OpenXml::DrawingML::Properties::ExtensionList
|
|
20
|
+
|
|
21
|
+
def build_required_properties
|
|
22
|
+
super
|
|
23
|
+
self.object_name ||= ""
|
|
24
|
+
self.id ||= object_id % OpenXml::Pptx::MAX_ID
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
module OpenXml
|
|
2
|
+
module Pptx
|
|
3
|
+
module Properties
|
|
4
|
+
class NonVisualGraphicFrameDrawingProperties < SimplePropertyContainerProperty
|
|
5
|
+
include OpenXml::RenderWhenEmpty
|
|
6
|
+
namespace :p
|
|
7
|
+
tag :cNvGraphicFramePr
|
|
8
|
+
|
|
9
|
+
property :graphic_frame_locks, klass: OpenXml::DrawingML::Properties::GraphicFrameLocks
|
|
10
|
+
property :extension_list, klass: OpenXml::DrawingML::Properties::ExtensionList
|
|
11
|
+
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
module OpenXml
|
|
2
|
+
module Pptx
|
|
3
|
+
module Properties
|
|
4
|
+
class NonVisualGraphicFrameProperties < SimplePropertyContainerProperty
|
|
5
|
+
include OpenXml::RenderWhenEmpty
|
|
6
|
+
namespace :p
|
|
7
|
+
tag :nvGraphicFramePr
|
|
8
|
+
|
|
9
|
+
property :non_visual_drawing_properties, required: true
|
|
10
|
+
property :non_visual_graphic_frame_drawing_properties, required: true
|
|
11
|
+
property :non_visual_properties, required: true
|
|
12
|
+
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
module OpenXml
|
|
2
|
+
module Pptx
|
|
3
|
+
module Properties
|
|
4
|
+
class NonVisualGroupShapeDrawingProperties < SimplePropertyContainerProperty
|
|
5
|
+
include OpenXml::RenderWhenEmpty
|
|
6
|
+
namespace :p
|
|
7
|
+
tag :cNvGrpSpPr
|
|
8
|
+
|
|
9
|
+
property :group_shape_locks, klass: OpenXml::DrawingML::Properties::GroupShapeLocks
|
|
10
|
+
property :extension_list, klass: OpenXml::DrawingML::Properties::ExtensionList
|
|
11
|
+
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
module OpenXml
|
|
2
|
+
module Pptx
|
|
3
|
+
module Properties
|
|
4
|
+
class NonVisualGroupShapeProperties < SimplePropertyContainerProperty
|
|
5
|
+
include OpenXml::RenderWhenEmpty
|
|
6
|
+
namespace :p
|
|
7
|
+
tag :nvGrpSpPr
|
|
8
|
+
|
|
9
|
+
property :non_visual_drawing_properties, required: true
|
|
10
|
+
property :non_visual_group_shape_drawing_properties, required: true
|
|
11
|
+
property :non_visual_properties, required: true
|
|
12
|
+
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
module OpenXml
|
|
2
|
+
module Pptx
|
|
3
|
+
module Properties
|
|
4
|
+
class NonVisualPictureProperties < SimplePropertyContainerProperty
|
|
5
|
+
include OpenXml::RenderWhenEmpty
|
|
6
|
+
namespace :p
|
|
7
|
+
tag :nvPicPr
|
|
8
|
+
|
|
9
|
+
property :non_visual_drawing_properties, required: true
|
|
10
|
+
property :non_visual_picture_drawing_properties, required: true
|
|
11
|
+
property :non_visual_properties, required: true
|
|
12
|
+
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
module OpenXml
|
|
2
|
+
module Pptx
|
|
3
|
+
module Properties
|
|
4
|
+
class NonVisualPictureDrawingProperties < OpenXml::Properties::ComplexProperty
|
|
5
|
+
include OpenXml::ContainsProperties
|
|
6
|
+
include OpenXml::RenderWhenEmpty
|
|
7
|
+
namespace :p
|
|
8
|
+
tag :cNvPicPr
|
|
9
|
+
|
|
10
|
+
attribute :prefer_relative_resizing, displays_as: :preferRelativeResize, expects: :boolean
|
|
11
|
+
|
|
12
|
+
property :picture_locks, klass: OpenXml::DrawingML::Properties::PictureLocks
|
|
13
|
+
property :extension_list, klass: OpenXml::DrawingML::Properties::ExtensionList
|
|
14
|
+
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
module OpenXml
|
|
2
|
+
module Pptx
|
|
3
|
+
module Properties
|
|
4
|
+
class NonVisualProperties < OpenXml::Properties::ComplexProperty
|
|
5
|
+
include OpenXml::ContainsProperties
|
|
6
|
+
include OpenXml::RenderWhenEmpty
|
|
7
|
+
namespace :p
|
|
8
|
+
tag :nvPr
|
|
9
|
+
|
|
10
|
+
attribute :is_photo, displays_as: :isPhoto, expects: :boolean
|
|
11
|
+
attribute :user_drawn, displays_as: :userDrawn, expects: :boolean
|
|
12
|
+
|
|
13
|
+
property :placeholder
|
|
14
|
+
|
|
15
|
+
property_choice do
|
|
16
|
+
property :audio_cd, klass: OpenXml::DrawingML::Properties::AudioCd
|
|
17
|
+
property :wav_audio_file, klass: OpenXml::DrawingML::Properties::WavAudioFile
|
|
18
|
+
property :audio_file, klass: OpenXml::DrawingML::Properties::AudioFile
|
|
19
|
+
property :video_file, klass: OpenXml::DrawingML::Properties::VideoFile
|
|
20
|
+
property :quick_time_file, klass: OpenXml::DrawingML::Properties::QuickTimeFile
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
property :customer_data_list
|
|
24
|
+
property :extension_list
|
|
25
|
+
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|