aspose_slides_cloud 20.4.0 → 20.10.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (177) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +61 -61
  3. data/TestData/ChartTest.pptx +0 -0
  4. data/TestData/Sections.pptx +0 -0
  5. data/TestData/TemplatingCVDataWithBase64.xml +22 -22
  6. data/lib/aspose_slides_cloud.rb +212 -205
  7. data/lib/aspose_slides_cloud/api/slides_api.rb +10979 -7974
  8. data/lib/aspose_slides_cloud/api/slides_api_requests.rb +4146 -3099
  9. data/lib/aspose_slides_cloud/api_client.rb +432 -429
  10. data/lib/aspose_slides_cloud/models/add_layout_slide.rb +244 -261
  11. data/lib/aspose_slides_cloud/models/add_master_slide.rb +259 -276
  12. data/lib/aspose_slides_cloud/models/add_shape.rb +239 -256
  13. data/lib/aspose_slides_cloud/models/add_slide.rb +269 -286
  14. data/lib/aspose_slides_cloud/models/api_info.rb +217 -205
  15. data/lib/aspose_slides_cloud/models/arrow_head_properties.rb +285 -273
  16. data/lib/aspose_slides_cloud/models/audio_frame.rb +359 -573
  17. data/lib/aspose_slides_cloud/models/axes.rb +237 -225
  18. data/lib/aspose_slides_cloud/models/axis.rb +699 -687
  19. data/lib/aspose_slides_cloud/models/base64_input_file.rb +230 -256
  20. data/lib/aspose_slides_cloud/models/blur_effect.rb +227 -215
  21. data/lib/aspose_slides_cloud/models/box_and_whisker_series.rb +299 -0
  22. data/lib/aspose_slides_cloud/models/bubble_chart_data_point.rb +212 -230
  23. data/lib/aspose_slides_cloud/models/bubble_series.rb +248 -428
  24. data/lib/aspose_slides_cloud/models/chart.rb +365 -553
  25. data/lib/aspose_slides_cloud/models/chart_category.rb +271 -0
  26. data/lib/aspose_slides_cloud/models/chart_title.rb +222 -210
  27. data/lib/aspose_slides_cloud/models/chart_wall.rb +281 -269
  28. data/lib/aspose_slides_cloud/models/color_scheme.rb +317 -327
  29. data/lib/aspose_slides_cloud/models/common_slide_view_properties.rb +217 -0
  30. data/lib/aspose_slides_cloud/models/connector.rb +275 -487
  31. data/lib/aspose_slides_cloud/models/custom_dash_pattern.rb +209 -197
  32. data/lib/aspose_slides_cloud/models/{resource_uri_element.rb → data_point.rb} +197 -195
  33. data/lib/aspose_slides_cloud/models/disc_usage.rb +227 -215
  34. data/lib/aspose_slides_cloud/models/document.rb +257 -267
  35. data/lib/aspose_slides_cloud/models/document_properties.rb +209 -219
  36. data/lib/aspose_slides_cloud/models/document_property.rb +232 -242
  37. data/lib/aspose_slides_cloud/models/document_replace_result.rb +218 -282
  38. data/lib/aspose_slides_cloud/models/effect.rb +424 -412
  39. data/lib/aspose_slides_cloud/models/effect_format.rb +277 -265
  40. data/lib/aspose_slides_cloud/models/entity_exists.rb +212 -0
  41. data/lib/aspose_slides_cloud/models/error.rb +237 -225
  42. data/lib/aspose_slides_cloud/models/error_details.rb +222 -210
  43. data/lib/aspose_slides_cloud/models/export_format.rb +60 -59
  44. data/lib/aspose_slides_cloud/models/export_options.rb +216 -194
  45. data/lib/aspose_slides_cloud/models/file_version.rb +225 -270
  46. data/lib/aspose_slides_cloud/models/file_versions.rb +209 -197
  47. data/lib/aspose_slides_cloud/models/files_list.rb +209 -197
  48. data/lib/aspose_slides_cloud/models/files_upload_result.rb +221 -209
  49. data/lib/aspose_slides_cloud/models/fill_format.rb +240 -228
  50. data/lib/aspose_slides_cloud/models/fill_overlay_effect.rb +246 -234
  51. data/lib/aspose_slides_cloud/models/font_scheme.rb +227 -237
  52. data/lib/aspose_slides_cloud/models/font_set.rb +227 -215
  53. data/lib/aspose_slides_cloud/models/format_scheme.rb +245 -255
  54. data/lib/aspose_slides_cloud/models/geometry_shape.rb +260 -439
  55. data/lib/aspose_slides_cloud/models/glow_effect.rb +222 -210
  56. data/lib/aspose_slides_cloud/models/gradient_fill.rb +342 -359
  57. data/lib/aspose_slides_cloud/models/gradient_fill_stop.rb +222 -210
  58. data/lib/aspose_slides_cloud/models/graphical_object.rb +234 -422
  59. data/lib/aspose_slides_cloud/models/group_shape.rb +234 -422
  60. data/lib/aspose_slides_cloud/models/header_footer.rb +247 -0
  61. data/lib/aspose_slides_cloud/models/html_export_options.rb +421 -420
  62. data/lib/aspose_slides_cloud/models/i_shape_export_options.rb +197 -195
  63. data/lib/aspose_slides_cloud/models/image.rb +237 -247
  64. data/lib/aspose_slides_cloud/models/image_export_format.rb +43 -43
  65. data/lib/aspose_slides_cloud/models/image_export_options.rb +299 -298
  66. data/lib/aspose_slides_cloud/models/images.rb +209 -219
  67. data/lib/aspose_slides_cloud/models/inner_shadow_effect.rb +252 -240
  68. data/lib/aspose_slides_cloud/models/input.rb +227 -215
  69. data/lib/aspose_slides_cloud/models/input_file.rb +250 -238
  70. data/lib/aspose_slides_cloud/models/interactive_sequence.rb +224 -212
  71. data/lib/aspose_slides_cloud/models/layout_slide.rb +278 -288
  72. data/lib/aspose_slides_cloud/models/layout_slides.rb +209 -219
  73. data/lib/aspose_slides_cloud/models/legend.rb +321 -309
  74. data/lib/aspose_slides_cloud/models/line_format.rb +389 -377
  75. data/lib/aspose_slides_cloud/models/master_slide.rb +231 -241
  76. data/lib/aspose_slides_cloud/models/master_slides.rb +209 -219
  77. data/lib/aspose_slides_cloud/models/merge.rb +231 -248
  78. data/lib/aspose_slides_cloud/models/merging_source.rb +219 -207
  79. data/lib/aspose_slides_cloud/models/no_fill.rb +219 -236
  80. data/lib/aspose_slides_cloud/models/normal_view_restored_properties.rb +217 -0
  81. data/lib/aspose_slides_cloud/models/notes_slide.rb +217 -227
  82. data/lib/aspose_slides_cloud/models/notes_slide_export_format.rb +43 -43
  83. data/lib/aspose_slides_cloud/models/notes_slide_header_footer.rb +267 -0
  84. data/lib/aspose_slides_cloud/models/object_exist.rb +227 -215
  85. data/lib/aspose_slides_cloud/models/ole_object_frame.rb +259 -447
  86. data/lib/aspose_slides_cloud/models/one_value_chart_data_point.rb +210 -200
  87. data/lib/aspose_slides_cloud/models/one_value_series.rb +248 -428
  88. data/lib/aspose_slides_cloud/models/ordered_merge_request.rb +209 -197
  89. data/lib/aspose_slides_cloud/models/outer_shadow_effect.rb +252 -240
  90. data/lib/aspose_slides_cloud/models/output_file.rb +240 -228
  91. data/lib/aspose_slides_cloud/models/paragraph.rb +517 -527
  92. data/lib/aspose_slides_cloud/models/paragraphs.rb +209 -219
  93. data/lib/aspose_slides_cloud/models/path_input_file.rb +240 -266
  94. data/lib/aspose_slides_cloud/models/path_output_file.rb +239 -256
  95. data/lib/aspose_slides_cloud/models/pattern_fill.rb +266 -283
  96. data/lib/aspose_slides_cloud/models/pdf_export_options.rb +547 -519
  97. data/lib/aspose_slides_cloud/models/picture_fill.rb +351 -368
  98. data/lib/aspose_slides_cloud/models/picture_frame.rb +245 -459
  99. data/lib/aspose_slides_cloud/models/pipeline.rb +219 -207
  100. data/lib/aspose_slides_cloud/models/placeholder.rb +325 -335
  101. data/lib/aspose_slides_cloud/models/placeholders.rb +209 -219
  102. data/lib/aspose_slides_cloud/models/plot_area.rb +311 -299
  103. data/lib/aspose_slides_cloud/models/portion.rb +589 -599
  104. data/lib/aspose_slides_cloud/models/portions.rb +209 -219
  105. data/lib/aspose_slides_cloud/models/pptx_export_options.rb +247 -246
  106. data/lib/aspose_slides_cloud/models/presentation_to_merge.rb +229 -217
  107. data/lib/aspose_slides_cloud/models/presentations_merge_request.rb +221 -209
  108. data/lib/aspose_slides_cloud/models/preset_shadow_effect.rb +286 -274
  109. data/lib/aspose_slides_cloud/models/reflection_effect.rb +441 -429
  110. data/lib/aspose_slides_cloud/models/remove_shape.rb +229 -246
  111. data/lib/aspose_slides_cloud/models/remove_slide.rb +234 -251
  112. data/lib/aspose_slides_cloud/models/reorder_slide.rb +249 -266
  113. data/lib/aspose_slides_cloud/models/replace_text.rb +269 -286
  114. data/lib/aspose_slides_cloud/models/request_input_file.rb +235 -261
  115. data/lib/aspose_slides_cloud/models/reset_slide.rb +234 -251
  116. data/lib/aspose_slides_cloud/models/resource_base.rb +219 -207
  117. data/lib/aspose_slides_cloud/models/resource_uri.rb +237 -225
  118. data/lib/aspose_slides_cloud/models/response_output_file.rb +219 -236
  119. data/lib/aspose_slides_cloud/models/save.rb +266 -283
  120. data/lib/aspose_slides_cloud/models/save_shape.rb +276 -293
  121. data/lib/aspose_slides_cloud/models/save_slide.rb +301 -318
  122. data/lib/aspose_slides_cloud/models/scale_type.rb +41 -41
  123. data/lib/aspose_slides_cloud/models/scatter_chart_data_point.rb +225 -215
  124. data/lib/aspose_slides_cloud/models/scatter_series.rb +248 -428
  125. data/lib/aspose_slides_cloud/models/section.rb +234 -0
  126. data/lib/aspose_slides_cloud/models/sections.rb +209 -0
  127. data/lib/aspose_slides_cloud/models/series.rb +422 -389
  128. data/lib/aspose_slides_cloud/models/series_marker.rb +281 -269
  129. data/lib/aspose_slides_cloud/models/shape.rb +255 -467
  130. data/lib/aspose_slides_cloud/models/shape_base.rb +375 -406
  131. data/lib/aspose_slides_cloud/models/shape_export_format.rb +44 -44
  132. data/lib/aspose_slides_cloud/models/shape_image_export_options.rb +286 -274
  133. data/lib/aspose_slides_cloud/models/shape_thumbnail_bounds.rb +41 -41
  134. data/lib/aspose_slides_cloud/models/shapes.rb +209 -219
  135. data/lib/aspose_slides_cloud/models/size_type.rb +55 -55
  136. data/lib/aspose_slides_cloud/models/slide.rb +322 -332
  137. data/lib/aspose_slides_cloud/models/slide_animation.rb +221 -231
  138. data/lib/aspose_slides_cloud/models/slide_background.rb +266 -276
  139. data/lib/aspose_slides_cloud/models/slide_comment.rb +239 -227
  140. data/lib/aspose_slides_cloud/models/slide_comments.rb +209 -219
  141. data/lib/aspose_slides_cloud/models/slide_export_format.rb +59 -58
  142. data/lib/aspose_slides_cloud/models/slide_replace_result.rb +223 -347
  143. data/lib/aspose_slides_cloud/models/slides.rb +209 -219
  144. data/lib/aspose_slides_cloud/models/smart_art.rb +342 -530
  145. data/lib/aspose_slides_cloud/models/smart_art_node.rb +293 -281
  146. data/lib/aspose_slides_cloud/models/smart_art_shape.rb +235 -422
  147. data/lib/aspose_slides_cloud/models/soft_edge_effect.rb +212 -200
  148. data/lib/aspose_slides_cloud/models/solid_fill.rb +229 -246
  149. data/lib/aspose_slides_cloud/models/split_document_result.rb +209 -219
  150. data/lib/aspose_slides_cloud/models/storage_exist.rb +212 -200
  151. data/lib/aspose_slides_cloud/models/storage_file.rb +257 -245
  152. data/lib/aspose_slides_cloud/models/svg_export_options.rb +379 -378
  153. data/lib/aspose_slides_cloud/models/swf_export_options.rb +529 -528
  154. data/lib/aspose_slides_cloud/models/table.rb +350 -538
  155. data/lib/aspose_slides_cloud/models/table_cell.rb +403 -391
  156. data/lib/aspose_slides_cloud/models/table_column.rb +212 -200
  157. data/lib/aspose_slides_cloud/models/table_row.rb +239 -227
  158. data/lib/aspose_slides_cloud/models/task.rb +240 -228
  159. data/lib/aspose_slides_cloud/models/text_item.rb +217 -205
  160. data/lib/aspose_slides_cloud/models/text_items.rb +209 -219
  161. data/lib/aspose_slides_cloud/models/theme.rb +237 -247
  162. data/lib/aspose_slides_cloud/models/tiff_export_options.rb +423 -422
  163. data/lib/aspose_slides_cloud/models/update_background.rb +241 -258
  164. data/lib/aspose_slides_cloud/models/update_shape.rb +239 -256
  165. data/lib/aspose_slides_cloud/models/video_frame.rb +329 -543
  166. data/lib/aspose_slides_cloud/models/view_properties.rb +357 -0
  167. data/lib/aspose_slides_cloud/models/waterfall_chart_data_point.rb +206 -0
  168. data/lib/aspose_slides_cloud/models/waterfall_series.rb +247 -0
  169. data/lib/aspose_slides_cloud/models/xps_export_options.rb +243 -242
  170. data/lib/aspose_slides_cloud/type_registry.rb +320 -0
  171. data/lib/aspose_slides_cloud/version.rb +25 -25
  172. data/spec/api/slides_api_spec.rb +35926 -24406
  173. data/spec/extra/extra_spec.rb +235 -101
  174. data/spec/spec_utils.rb +183 -176
  175. data/testConfig.json +7 -7
  176. data/testRules.json +472 -340
  177. metadata +18 -3
@@ -1,378 +1,379 @@
1
- =begin
2
- Copyright (c) 2019 Aspose Pty Ltd
3
-
4
- Permission is hereby granted, free of charge, to any person obtaining a copy
5
- of this software and associated documentation files (the "Software"), to deal
6
- in the Software without restriction, including without limitation the rights
7
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
- copies of the Software, and to permit persons to whom the Software is
9
- furnished to do so, subject to the following conditions:
10
-
11
- The above copyright notice and this permission notice shall be included in all
12
- copies or substantial portions of the Software.
13
-
14
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20
- SOFTWARE.
21
- =end
22
-
23
- require 'date'
24
-
25
- module AsposeSlidesCloud
26
- # Provides options that control how a presentation is saved in SVG format.
27
- class SvgExportOptions
28
- # Export format.
29
- attr_accessor :format
30
-
31
- # Determines whether the text on a slide will be saved as graphics.
32
- attr_accessor :vectorize_text
33
-
34
- # Returns or sets the lower resolution limit for metafile rasterization.
35
- attr_accessor :metafile_rasterization_dpi
36
-
37
- # Determines whether the 3D text is disabled in SVG.
38
- attr_accessor :disable3_d_text
39
-
40
- # Disables splitting FromCornerX and FromCenter gradients.
41
- attr_accessor :disable_gradient_split
42
-
43
- # SVG 1.1 lacks ability to define insets for markers. Aspose.Slides SVG writing engine has workaround for that problem: it crops end of line with arrow, so, line doesn't overlap markers. This option switches off such behavior.
44
- attr_accessor :disable_line_end_cropping
45
-
46
- # Determines JPEG encoding quality.
47
- attr_accessor :jpeg_quality
48
-
49
- # Represents the pictures compression level
50
- attr_accessor :pictures_compression
51
-
52
- # A boolean flag indicates if the cropped parts remain as part of the document. If true the cropped parts will removed, if false they will be serialized in the document (which can possible lead to a larger file)
53
- attr_accessor :delete_pictures_cropped_areas
54
-
55
- # Determines a way of handling externally loaded fonts.
56
- attr_accessor :external_fonts_handling
57
-
58
- class EnumAttributeValidator
59
- attr_reader :datatype
60
- attr_reader :allowable_values
61
-
62
- def initialize(datatype, allowable_values)
63
- @allowable_values = allowable_values.map do |value|
64
- case datatype.to_s
65
- when /Integer/i
66
- value.to_i
67
- when /Float/i
68
- value.to_f
69
- else
70
- value
71
- end
72
- end
73
- end
74
-
75
- def valid?(value)
76
- !value || allowable_values.any?{ |s| s.casecmp(value) == 0 }
77
- end
78
- end
79
-
80
- # Attribute mapping from ruby-style variable name to JSON key.
81
- def self.attribute_map
82
- {
83
- :'format' => :'Format',
84
- :'vectorize_text' => :'VectorizeText',
85
- :'metafile_rasterization_dpi' => :'MetafileRasterizationDpi',
86
- :'disable3_d_text' => :'Disable3DText',
87
- :'disable_gradient_split' => :'DisableGradientSplit',
88
- :'disable_line_end_cropping' => :'DisableLineEndCropping',
89
- :'jpeg_quality' => :'JpegQuality',
90
- :'pictures_compression' => :'PicturesCompression',
91
- :'delete_pictures_cropped_areas' => :'DeletePicturesCroppedAreas',
92
- :'external_fonts_handling' => :'ExternalFontsHandling'
93
- }
94
- end
95
-
96
- # Attribute type mapping.
97
- def self.swagger_types
98
- {
99
- :'format' => :'String',
100
- :'vectorize_text' => :'BOOLEAN',
101
- :'metafile_rasterization_dpi' => :'Integer',
102
- :'disable3_d_text' => :'BOOLEAN',
103
- :'disable_gradient_split' => :'BOOLEAN',
104
- :'disable_line_end_cropping' => :'BOOLEAN',
105
- :'jpeg_quality' => :'Integer',
106
- :'pictures_compression' => :'String',
107
- :'delete_pictures_cropped_areas' => :'BOOLEAN',
108
- :'external_fonts_handling' => :'String'
109
- }
110
- end
111
-
112
- # Initializes the object
113
- # @param [Hash] attributes Model attributes in the form of hash
114
- def initialize(attributes = {})
115
- return unless attributes.is_a?(Hash)
116
-
117
- # convert string to symbol for hash key
118
- attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
119
-
120
- if attributes.has_key?(:'Format')
121
- self.format = attributes[:'Format']
122
- else
123
- self.format = "svg"
124
- end
125
-
126
- if attributes.has_key?(:'VectorizeText')
127
- self.vectorize_text = attributes[:'VectorizeText']
128
- end
129
-
130
- if attributes.has_key?(:'MetafileRasterizationDpi')
131
- self.metafile_rasterization_dpi = attributes[:'MetafileRasterizationDpi']
132
- end
133
-
134
- if attributes.has_key?(:'Disable3DText')
135
- self.disable3_d_text = attributes[:'Disable3DText']
136
- end
137
-
138
- if attributes.has_key?(:'DisableGradientSplit')
139
- self.disable_gradient_split = attributes[:'DisableGradientSplit']
140
- end
141
-
142
- if attributes.has_key?(:'DisableLineEndCropping')
143
- self.disable_line_end_cropping = attributes[:'DisableLineEndCropping']
144
- end
145
-
146
- if attributes.has_key?(:'JpegQuality')
147
- self.jpeg_quality = attributes[:'JpegQuality']
148
- end
149
-
150
- if attributes.has_key?(:'PicturesCompression')
151
- self.pictures_compression = attributes[:'PicturesCompression']
152
- end
153
-
154
- if attributes.has_key?(:'DeletePicturesCroppedAreas')
155
- self.delete_pictures_cropped_areas = attributes[:'DeletePicturesCroppedAreas']
156
- end
157
-
158
- if attributes.has_key?(:'ExternalFontsHandling')
159
- self.external_fonts_handling = attributes[:'ExternalFontsHandling']
160
- end
161
- end
162
-
163
- # Show invalid properties with the reasons. Usually used together with valid?
164
- # @return Array for valid properties with the reasons
165
- def list_invalid_properties
166
- invalid_properties = Array.new
167
- if @vectorize_text.nil?
168
- invalid_properties.push('invalid value for "vectorize_text", vectorize_text cannot be nil.')
169
- end
170
-
171
- if @metafile_rasterization_dpi.nil?
172
- invalid_properties.push('invalid value for "metafile_rasterization_dpi", metafile_rasterization_dpi cannot be nil.')
173
- end
174
-
175
- if @disable3_d_text.nil?
176
- invalid_properties.push('invalid value for "disable3_d_text", disable3_d_text cannot be nil.')
177
- end
178
-
179
- if @disable_gradient_split.nil?
180
- invalid_properties.push('invalid value for "disable_gradient_split", disable_gradient_split cannot be nil.')
181
- end
182
-
183
- if @disable_line_end_cropping.nil?
184
- invalid_properties.push('invalid value for "disable_line_end_cropping", disable_line_end_cropping cannot be nil.')
185
- end
186
-
187
- if @jpeg_quality.nil?
188
- invalid_properties.push('invalid value for "jpeg_quality", jpeg_quality cannot be nil.')
189
- end
190
-
191
- if @pictures_compression.nil?
192
- invalid_properties.push('invalid value for "pictures_compression", pictures_compression cannot be nil.')
193
- end
194
-
195
- if @delete_pictures_cropped_areas.nil?
196
- invalid_properties.push('invalid value for "delete_pictures_cropped_areas", delete_pictures_cropped_areas cannot be nil.')
197
- end
198
-
199
- if @external_fonts_handling.nil?
200
- invalid_properties.push('invalid value for "external_fonts_handling", external_fonts_handling cannot be nil.')
201
- end
202
-
203
- invalid_properties
204
- end
205
-
206
- # Check to see if the all the properties in the model are valid
207
- # @return true if the model is valid
208
- def valid?
209
- return false if @vectorize_text.nil?
210
- return false if @metafile_rasterization_dpi.nil?
211
- return false if @disable3_d_text.nil?
212
- return false if @disable_gradient_split.nil?
213
- return false if @disable_line_end_cropping.nil?
214
- return false if @jpeg_quality.nil?
215
- return false if @pictures_compression.nil?
216
- pictures_compression_validator = EnumAttributeValidator.new('String', ['Dpi330', 'Dpi220', 'Dpi150', 'Dpi96', 'Dpi72', 'DocumentResolution'])
217
- return false unless pictures_compression_validator.valid?(@pictures_compression)
218
- return false if @delete_pictures_cropped_areas.nil?
219
- return false if @external_fonts_handling.nil?
220
- external_fonts_handling_validator = EnumAttributeValidator.new('String', ['AddLinksToFontFiles', 'Embed', 'Vectorize'])
221
- return false unless external_fonts_handling_validator.valid?(@external_fonts_handling)
222
- true
223
- end
224
-
225
- # Custom attribute writer method checking allowed values (enum).
226
- # @param [Object] pictures_compression Object to be assigned
227
- def pictures_compression=(pictures_compression)
228
- validator = EnumAttributeValidator.new('String', ['Dpi330', 'Dpi220', 'Dpi150', 'Dpi96', 'Dpi72', 'DocumentResolution'])
229
- unless validator.valid?(pictures_compression)
230
- fail ArgumentError, 'invalid value for "pictures_compression", must be one of #{validator.allowable_values}.'
231
- end
232
- @pictures_compression = pictures_compression
233
- end
234
-
235
- # Custom attribute writer method checking allowed values (enum).
236
- # @param [Object] external_fonts_handling Object to be assigned
237
- def external_fonts_handling=(external_fonts_handling)
238
- validator = EnumAttributeValidator.new('String', ['AddLinksToFontFiles', 'Embed', 'Vectorize'])
239
- unless validator.valid?(external_fonts_handling)
240
- fail ArgumentError, 'invalid value for "external_fonts_handling", must be one of #{validator.allowable_values}.'
241
- end
242
- @external_fonts_handling = external_fonts_handling
243
- end
244
-
245
- # Checks equality by comparing each attribute.
246
- # @param [Object] Object to be compared
247
- def ==(o)
248
- return true if self.equal?(o)
249
- self.class == o.class &&
250
- format == o.format &&
251
- vectorize_text == o.vectorize_text &&
252
- metafile_rasterization_dpi == o.metafile_rasterization_dpi &&
253
- disable3_d_text == o.disable3_d_text &&
254
- disable_gradient_split == o.disable_gradient_split &&
255
- disable_line_end_cropping == o.disable_line_end_cropping &&
256
- jpeg_quality == o.jpeg_quality &&
257
- pictures_compression == o.pictures_compression &&
258
- delete_pictures_cropped_areas == o.delete_pictures_cropped_areas &&
259
- external_fonts_handling == o.external_fonts_handling
260
- end
261
-
262
- # @see the `==` method
263
- # @param [Object] Object to be compared
264
- def eql?(o)
265
- self == o
266
- end
267
-
268
- # Calculates hash code according to all attributes.
269
- # @return [Fixnum] Hash code
270
- def hash
271
- [format, vectorize_text, metafile_rasterization_dpi, disable3_d_text, disable_gradient_split, disable_line_end_cropping, jpeg_quality, pictures_compression, delete_pictures_cropped_areas, external_fonts_handling].hash
272
- end
273
-
274
- # Builds the object from hash
275
- # @param [Hash] attributes Model attributes in the form of hash
276
- # @return [Object] Returns the model itself
277
- def build_from_hash(attributes)
278
- return nil unless attributes.is_a?(Hash)
279
- self.class.swagger_types.each_pair do |key, type|
280
- if type =~ /\AArray<(.*)>/i
281
- # check to ensure the input is an array given that the the attribute
282
- # is documented as an array but the input is not
283
- if attributes[self.class.attribute_map[key]].is_a?(Array)
284
- self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
285
- end
286
- elsif !attributes[self.class.attribute_map[key]].nil?
287
- self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
288
- end # or else data not found in attributes(hash), not an issue as the data can be optional
289
- end
290
-
291
- self
292
- end
293
-
294
- # Deserializes the data based on type
295
- # @param string type Data type
296
- # @param string value Value to be deserialized
297
- # @return [Object] Deserialized data
298
- def _deserialize(type, value)
299
- case type.to_sym
300
- when :DateTime
301
- DateTime.parse(value)
302
- when :Date
303
- Date.parse(value)
304
- when :String
305
- value.to_s
306
- when :Integer
307
- value.to_i
308
- when :Float
309
- value.to_f
310
- when :BOOLEAN
311
- if value.to_s =~ /\A(true|t|yes|y|1)\z/i
312
- true
313
- else
314
- false
315
- end
316
- when :Object
317
- # generic object (usually a Hash), return directly
318
- value
319
- when /\AArray<(?<inner_type>.+)>\z/
320
- inner_type = Regexp.last_match[:inner_type]
321
- value.map { |v| _deserialize(inner_type, v) }
322
- when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
323
- k_type = Regexp.last_match[:k_type]
324
- v_type = Regexp.last_match[:v_type]
325
- {}.tap do |hash|
326
- value.each do |k, v|
327
- hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
328
- end
329
- end
330
- else # model
331
- temp_model = AsposeSlidesCloud.const_get(type).new
332
- temp_model.build_from_hash(value)
333
- end
334
- end
335
-
336
- # Returns the string representation of the object
337
- # @return [String] String presentation of the object
338
- def to_s
339
- to_hash.to_s
340
- end
341
-
342
- # to_body is an alias to to_hash (backward compatibility)
343
- # @return [Hash] Returns the object in the form of hash
344
- def to_body
345
- to_hash
346
- end
347
-
348
- # Returns the object in the form of hash
349
- # @return [Hash] Returns the object in the form of hash
350
- def to_hash
351
- hash = {}
352
- self.class.attribute_map.each_pair do |attr, param|
353
- value = self.send(attr)
354
- next if value.nil?
355
- hash[param] = _to_hash(value)
356
- end
357
- hash
358
- end
359
-
360
- # Outputs non-array value in the form of hash
361
- # For object, use to_hash. Otherwise, just return the value
362
- # @param [Object] value Any valid value
363
- # @return [Hash] Returns the value in the form of hash
364
- def _to_hash(value)
365
- if value.is_a?(Array)
366
- value.compact.map { |v| _to_hash(v) }
367
- elsif value.is_a?(Hash)
368
- {}.tap do |hash|
369
- value.each { |k, v| hash[k] = _to_hash(v) }
370
- end
371
- elsif value.respond_to? :to_hash
372
- value.to_hash
373
- else
374
- value
375
- end
376
- end
377
- end
378
- end
1
+ =begin
2
+ Copyright (c) 2019 Aspose Pty Ltd
3
+
4
+ Permission is hereby granted, free of charge, to any person obtaining a copy
5
+ of this software and associated documentation files (the "Software"), to deal
6
+ in the Software without restriction, including without limitation the rights
7
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
+ copies of the Software, and to permit persons to whom the Software is
9
+ furnished to do so, subject to the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be included in all
12
+ copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20
+ SOFTWARE.
21
+ =end
22
+
23
+ require 'date'
24
+
25
+ module AsposeSlidesCloud
26
+ # Provides options that control how a presentation is saved in SVG format.
27
+ class SvgExportOptions < ExportOptions
28
+ # Determines whether the text on a slide will be saved as graphics.
29
+ attr_accessor :vectorize_text
30
+
31
+ # Returns or sets the lower resolution limit for metafile rasterization.
32
+ attr_accessor :metafile_rasterization_dpi
33
+
34
+ # Determines whether the 3D text is disabled in SVG.
35
+ attr_accessor :disable3_d_text
36
+
37
+ # Disables splitting FromCornerX and FromCenter gradients.
38
+ attr_accessor :disable_gradient_split
39
+
40
+ # SVG 1.1 lacks ability to define insets for markers. Aspose.Slides SVG writing engine has workaround for that problem: it crops end of line with arrow, so, line doesn't overlap markers. This option switches off such behavior.
41
+ attr_accessor :disable_line_end_cropping
42
+
43
+ # Determines JPEG encoding quality.
44
+ attr_accessor :jpeg_quality
45
+
46
+ # Represents the pictures compression level
47
+ attr_accessor :pictures_compression
48
+
49
+ # A boolean flag indicates if the cropped parts remain as part of the document. If true the cropped parts will removed, if false they will be serialized in the document (which can possible lead to a larger file)
50
+ attr_accessor :delete_pictures_cropped_areas
51
+
52
+ # Determines a way of handling externally loaded fonts.
53
+ attr_accessor :external_fonts_handling
54
+
55
+ class EnumAttributeValidator
56
+ attr_reader :datatype
57
+ attr_reader :allowable_values
58
+
59
+ def initialize(datatype, allowable_values)
60
+ @allowable_values = allowable_values.map do |value|
61
+ case datatype.to_s
62
+ when /Integer/i
63
+ value.to_i
64
+ when /Float/i
65
+ value.to_f
66
+ else
67
+ value
68
+ end
69
+ end
70
+ end
71
+
72
+ def valid?(value)
73
+ !value || allowable_values.any?{ |s| s.casecmp(value) == 0 }
74
+ end
75
+ end
76
+
77
+ # Attribute mapping from ruby-style variable name to JSON key.
78
+ def self.attribute_map
79
+ super.merge({
80
+ :'vectorize_text' => :'VectorizeText',
81
+ :'metafile_rasterization_dpi' => :'MetafileRasterizationDpi',
82
+ :'disable3_d_text' => :'Disable3DText',
83
+ :'disable_gradient_split' => :'DisableGradientSplit',
84
+ :'disable_line_end_cropping' => :'DisableLineEndCropping',
85
+ :'jpeg_quality' => :'JpegQuality',
86
+ :'pictures_compression' => :'PicturesCompression',
87
+ :'delete_pictures_cropped_areas' => :'DeletePicturesCroppedAreas',
88
+ :'external_fonts_handling' => :'ExternalFontsHandling',
89
+ })
90
+ end
91
+
92
+ # Attribute type mapping.
93
+ def self.swagger_types
94
+ super.merge({
95
+ :'vectorize_text' => :'BOOLEAN',
96
+ :'metafile_rasterization_dpi' => :'Integer',
97
+ :'disable3_d_text' => :'BOOLEAN',
98
+ :'disable_gradient_split' => :'BOOLEAN',
99
+ :'disable_line_end_cropping' => :'BOOLEAN',
100
+ :'jpeg_quality' => :'Integer',
101
+ :'pictures_compression' => :'String',
102
+ :'delete_pictures_cropped_areas' => :'BOOLEAN',
103
+ :'external_fonts_handling' => :'String',
104
+ })
105
+ end
106
+
107
+ # Initializes the object
108
+ # @param [Hash] attributes Model attributes in the form of hash
109
+ def initialize(attributes = {})
110
+ super
111
+
112
+ if attributes.has_key?(:'VectorizeText')
113
+ self.vectorize_text = attributes[:'VectorizeText']
114
+ end
115
+
116
+ if attributes.has_key?(:'MetafileRasterizationDpi')
117
+ self.metafile_rasterization_dpi = attributes[:'MetafileRasterizationDpi']
118
+ end
119
+
120
+ if attributes.has_key?(:'Disable3DText')
121
+ self.disable3_d_text = attributes[:'Disable3DText']
122
+ end
123
+
124
+ if attributes.has_key?(:'DisableGradientSplit')
125
+ self.disable_gradient_split = attributes[:'DisableGradientSplit']
126
+ end
127
+
128
+ if attributes.has_key?(:'DisableLineEndCropping')
129
+ self.disable_line_end_cropping = attributes[:'DisableLineEndCropping']
130
+ end
131
+
132
+ if attributes.has_key?(:'JpegQuality')
133
+ self.jpeg_quality = attributes[:'JpegQuality']
134
+ end
135
+
136
+ if attributes.has_key?(:'PicturesCompression')
137
+ self.pictures_compression = attributes[:'PicturesCompression']
138
+ end
139
+
140
+ if attributes.has_key?(:'DeletePicturesCroppedAreas')
141
+ self.delete_pictures_cropped_areas = attributes[:'DeletePicturesCroppedAreas']
142
+ end
143
+
144
+ if attributes.has_key?(:'ExternalFontsHandling')
145
+ self.external_fonts_handling = attributes[:'ExternalFontsHandling']
146
+ end
147
+ self.format = "svg"
148
+ end
149
+
150
+ # Show invalid properties with the reasons. Usually used together with valid?
151
+ # @return Array for valid properties with the reasons
152
+ def list_invalid_properties
153
+ invalid_properties = super
154
+ if @vectorize_text.nil?
155
+ invalid_properties.push('invalid value for "vectorize_text", vectorize_text cannot be nil.')
156
+ end
157
+
158
+ if @metafile_rasterization_dpi.nil?
159
+ invalid_properties.push('invalid value for "metafile_rasterization_dpi", metafile_rasterization_dpi cannot be nil.')
160
+ end
161
+
162
+ if @disable3_d_text.nil?
163
+ invalid_properties.push('invalid value for "disable3_d_text", disable3_d_text cannot be nil.')
164
+ end
165
+
166
+ if @disable_gradient_split.nil?
167
+ invalid_properties.push('invalid value for "disable_gradient_split", disable_gradient_split cannot be nil.')
168
+ end
169
+
170
+ if @disable_line_end_cropping.nil?
171
+ invalid_properties.push('invalid value for "disable_line_end_cropping", disable_line_end_cropping cannot be nil.')
172
+ end
173
+
174
+ if @jpeg_quality.nil?
175
+ invalid_properties.push('invalid value for "jpeg_quality", jpeg_quality cannot be nil.')
176
+ end
177
+
178
+ if @pictures_compression.nil?
179
+ invalid_properties.push('invalid value for "pictures_compression", pictures_compression cannot be nil.')
180
+ end
181
+
182
+ if @delete_pictures_cropped_areas.nil?
183
+ invalid_properties.push('invalid value for "delete_pictures_cropped_areas", delete_pictures_cropped_areas cannot be nil.')
184
+ end
185
+
186
+ if @external_fonts_handling.nil?
187
+ invalid_properties.push('invalid value for "external_fonts_handling", external_fonts_handling cannot be nil.')
188
+ end
189
+
190
+ invalid_properties
191
+ end
192
+
193
+ # Check to see if the all the properties in the model are valid
194
+ # @return true if the model is valid
195
+ def valid?
196
+ return false if !super
197
+ return false if @vectorize_text.nil?
198
+ return false if @metafile_rasterization_dpi.nil?
199
+ return false if @disable3_d_text.nil?
200
+ return false if @disable_gradient_split.nil?
201
+ return false if @disable_line_end_cropping.nil?
202
+ return false if @jpeg_quality.nil?
203
+ return false if @pictures_compression.nil?
204
+ pictures_compression_validator = EnumAttributeValidator.new('String', ['Dpi330', 'Dpi220', 'Dpi150', 'Dpi96', 'Dpi72', 'DocumentResolution'])
205
+ return false unless pictures_compression_validator.valid?(@pictures_compression)
206
+ return false if @delete_pictures_cropped_areas.nil?
207
+ return false if @external_fonts_handling.nil?
208
+ external_fonts_handling_validator = EnumAttributeValidator.new('String', ['AddLinksToFontFiles', 'Embed', 'Vectorize'])
209
+ return false unless external_fonts_handling_validator.valid?(@external_fonts_handling)
210
+ true
211
+ end
212
+
213
+ # Custom attribute writer method checking allowed values (enum).
214
+ # @param [Object] pictures_compression Object to be assigned
215
+ def pictures_compression=(pictures_compression)
216
+ validator = EnumAttributeValidator.new('String', ['Dpi330', 'Dpi220', 'Dpi150', 'Dpi96', 'Dpi72', 'DocumentResolution'])
217
+ unless validator.valid?(pictures_compression)
218
+ fail ArgumentError, 'invalid value for "pictures_compression", must be one of #{validator.allowable_values}.'
219
+ end
220
+ @pictures_compression = pictures_compression
221
+ end
222
+
223
+ # Custom attribute writer method checking allowed values (enum).
224
+ # @param [Object] external_fonts_handling Object to be assigned
225
+ def external_fonts_handling=(external_fonts_handling)
226
+ validator = EnumAttributeValidator.new('String', ['AddLinksToFontFiles', 'Embed', 'Vectorize'])
227
+ unless validator.valid?(external_fonts_handling)
228
+ fail ArgumentError, 'invalid value for "external_fonts_handling", must be one of #{validator.allowable_values}.'
229
+ end
230
+ @external_fonts_handling = external_fonts_handling
231
+ end
232
+
233
+ # Checks equality by comparing each attribute.
234
+ # @param [Object] Object to be compared
235
+ def ==(o)
236
+ return true if self.equal?(o)
237
+ self.class == o.class &&
238
+ default_regular_font == o.default_regular_font &&
239
+ format == o.format &&
240
+ vectorize_text == o.vectorize_text &&
241
+ metafile_rasterization_dpi == o.metafile_rasterization_dpi &&
242
+ disable3_d_text == o.disable3_d_text &&
243
+ disable_gradient_split == o.disable_gradient_split &&
244
+ disable_line_end_cropping == o.disable_line_end_cropping &&
245
+ jpeg_quality == o.jpeg_quality &&
246
+ pictures_compression == o.pictures_compression &&
247
+ delete_pictures_cropped_areas == o.delete_pictures_cropped_areas &&
248
+ external_fonts_handling == o.external_fonts_handling
249
+ end
250
+
251
+ # @see the `==` method
252
+ # @param [Object] Object to be compared
253
+ def eql?(o)
254
+ self == o
255
+ end
256
+
257
+ # Calculates hash code according to all attributes.
258
+ # @return [Fixnum] Hash code
259
+ def hash
260
+ [default_regular_font, format, vectorize_text, metafile_rasterization_dpi, disable3_d_text, disable_gradient_split, disable_line_end_cropping, jpeg_quality, pictures_compression, delete_pictures_cropped_areas, external_fonts_handling].hash
261
+ end
262
+
263
+ # Builds the object from hash
264
+ # @param [Hash] attributes Model attributes in the form of hash
265
+ # @return [Object] Returns the model itself
266
+ def build_from_hash(attributes)
267
+ return nil unless attributes.is_a?(Hash)
268
+ self.class.swagger_types.each_pair do |key, type|
269
+ mapKey = self.class.attribute_map[key]
270
+ if !mapKey.nil?
271
+ val = attributes[mapKey]
272
+ if val.nil?
273
+ mapKeyString = mapKey.to_s
274
+ mapKeyString[0] = mapKeyString[0].downcase
275
+ mapKey = mapKeyString.to_sym
276
+ val = attributes[mapKey]
277
+ end
278
+ if !val.nil?
279
+ if type =~ /\AArray<(.*)>/i
280
+ # check to ensure the input is an array given that the the attribute
281
+ # is documented as an array but the input is not
282
+ if val.is_a?(Array)
283
+ self.send("#{key}=", val.map { |v| _deserialize($1, v) })
284
+ end
285
+ else
286
+ self.send("#{key}=", _deserialize(type, val))
287
+ end
288
+ end
289
+ end
290
+ end
291
+
292
+ self
293
+ end
294
+
295
+ # Deserializes the data based on type
296
+ # @param string type Data type
297
+ # @param string value Value to be deserialized
298
+ # @return [Object] Deserialized data
299
+ def _deserialize(type, value)
300
+ case type.to_sym
301
+ when :DateTime
302
+ DateTime.parse(value)
303
+ when :Date
304
+ Date.parse(value)
305
+ when :String
306
+ value.to_s
307
+ when :Integer
308
+ value.to_i
309
+ when :Float
310
+ value.to_f
311
+ when :BOOLEAN
312
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
313
+ true
314
+ else
315
+ false
316
+ end
317
+ when :Object
318
+ # generic object (usually a Hash), return directly
319
+ value
320
+ when /\AArray<(?<inner_type>.+)>\z/
321
+ inner_type = Regexp.last_match[:inner_type]
322
+ value.map { |v| _deserialize(inner_type, v) }
323
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
324
+ k_type = Regexp.last_match[:k_type]
325
+ v_type = Regexp.last_match[:v_type]
326
+ {}.tap do |hash|
327
+ value.each do |k, v|
328
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
329
+ end
330
+ end
331
+ else # model
332
+ temp_model = AsposeSlidesCloud.const_get(type).new
333
+ temp_model.build_from_hash(value)
334
+ end
335
+ end
336
+
337
+ # Returns the string representation of the object
338
+ # @return [String] String presentation of the object
339
+ def to_s
340
+ to_hash.to_s
341
+ end
342
+
343
+ # to_body is an alias to to_hash (backward compatibility)
344
+ # @return [Hash] Returns the object in the form of hash
345
+ def to_body
346
+ to_hash
347
+ end
348
+
349
+ # Returns the object in the form of hash
350
+ # @return [Hash] Returns the object in the form of hash
351
+ def to_hash
352
+ hash = {}
353
+ self.class.attribute_map.each_pair do |attr, param|
354
+ value = self.send(attr)
355
+ next if value.nil?
356
+ hash[param] = _to_hash(value)
357
+ end
358
+ hash
359
+ end
360
+
361
+ # Outputs non-array value in the form of hash
362
+ # For object, use to_hash. Otherwise, just return the value
363
+ # @param [Object] value Any valid value
364
+ # @return [Hash] Returns the value in the form of hash
365
+ def _to_hash(value)
366
+ if value.is_a?(Array)
367
+ value.compact.map { |v| _to_hash(v) }
368
+ elsif value.is_a?(Hash)
369
+ {}.tap do |hash|
370
+ value.each { |k, v| hash[k] = _to_hash(v) }
371
+ end
372
+ elsif value.respond_to? :to_hash
373
+ value.to_hash
374
+ else
375
+ value
376
+ end
377
+ end
378
+ end
379
+ end