aspose_slides_cloud 21.6.0 → 21.12.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (183) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +105 -89
  3. data/TestData/TemplatingCVDataWithBase64.xml +22 -22
  4. data/TestData/test-unprotected.pptx +0 -0
  5. data/TestData/test.pptx +0 -0
  6. data/lib/aspose_slides_cloud/api/slides_api.rb +18572 -15206
  7. data/lib/aspose_slides_cloud/api_client.rb +439 -439
  8. data/lib/aspose_slides_cloud/models/add_layout_slide.rb +244 -244
  9. data/lib/aspose_slides_cloud/models/add_master_slide.rb +259 -259
  10. data/lib/aspose_slides_cloud/models/add_shape.rb +239 -239
  11. data/lib/aspose_slides_cloud/models/add_slide.rb +269 -269
  12. data/lib/aspose_slides_cloud/models/api_info.rb +217 -217
  13. data/lib/aspose_slides_cloud/models/arrow_head_properties.rb +285 -285
  14. data/lib/aspose_slides_cloud/models/audio_frame.rb +360 -359
  15. data/lib/aspose_slides_cloud/models/axes.rb +237 -237
  16. data/lib/aspose_slides_cloud/models/axis.rb +699 -699
  17. data/lib/aspose_slides_cloud/models/base64_input_file.rb +230 -230
  18. data/lib/aspose_slides_cloud/models/blur_effect.rb +227 -227
  19. data/lib/aspose_slides_cloud/models/box_and_whisker_series.rb +299 -299
  20. data/lib/aspose_slides_cloud/models/bubble_chart_data_point.rb +212 -212
  21. data/lib/aspose_slides_cloud/models/bubble_series.rb +248 -248
  22. data/lib/aspose_slides_cloud/models/camera.rb +291 -0
  23. data/lib/aspose_slides_cloud/models/chart.rb +366 -365
  24. data/lib/aspose_slides_cloud/models/chart_category.rb +271 -271
  25. data/lib/aspose_slides_cloud/models/chart_title.rb +222 -222
  26. data/lib/aspose_slides_cloud/models/chart_wall.rb +281 -281
  27. data/lib/aspose_slides_cloud/models/color_scheme.rb +317 -317
  28. data/lib/aspose_slides_cloud/models/common_slide_view_properties.rb +217 -217
  29. data/lib/aspose_slides_cloud/models/connector.rb +276 -275
  30. data/lib/aspose_slides_cloud/models/custom_dash_pattern.rb +209 -209
  31. data/lib/aspose_slides_cloud/models/data_point.rb +197 -197
  32. data/lib/aspose_slides_cloud/models/disc_usage.rb +227 -227
  33. data/lib/aspose_slides_cloud/models/document.rb +257 -257
  34. data/lib/aspose_slides_cloud/models/document_properties.rb +209 -209
  35. data/lib/aspose_slides_cloud/models/document_property.rb +232 -232
  36. data/lib/aspose_slides_cloud/models/document_replace_result.rb +218 -218
  37. data/lib/aspose_slides_cloud/models/effect.rb +434 -424
  38. data/lib/aspose_slides_cloud/models/effect_format.rb +277 -277
  39. data/lib/aspose_slides_cloud/models/entity_exists.rb +212 -212
  40. data/lib/aspose_slides_cloud/models/error.rb +237 -237
  41. data/lib/aspose_slides_cloud/models/error_details.rb +222 -222
  42. data/lib/aspose_slides_cloud/models/export_format.rb +61 -60
  43. data/lib/aspose_slides_cloud/models/export_options.rb +236 -216
  44. data/lib/aspose_slides_cloud/models/file_version.rb +225 -225
  45. data/lib/aspose_slides_cloud/models/file_versions.rb +209 -209
  46. data/lib/aspose_slides_cloud/models/files_list.rb +209 -209
  47. data/lib/aspose_slides_cloud/models/files_upload_result.rb +221 -221
  48. data/lib/aspose_slides_cloud/models/fill_format.rb +240 -240
  49. data/lib/aspose_slides_cloud/models/fill_overlay_effect.rb +246 -246
  50. data/lib/aspose_slides_cloud/models/font_scheme.rb +227 -227
  51. data/lib/aspose_slides_cloud/models/font_set.rb +227 -227
  52. data/lib/aspose_slides_cloud/models/format_scheme.rb +245 -245
  53. data/lib/aspose_slides_cloud/models/geometry_shape.rb +261 -260
  54. data/lib/aspose_slides_cloud/models/glow_effect.rb +222 -222
  55. data/lib/aspose_slides_cloud/models/gradient_fill.rb +342 -342
  56. data/lib/aspose_slides_cloud/models/gradient_fill_stop.rb +222 -222
  57. data/lib/aspose_slides_cloud/models/graphical_object.rb +235 -234
  58. data/lib/aspose_slides_cloud/models/group_shape.rb +235 -234
  59. data/lib/aspose_slides_cloud/models/header_footer.rb +247 -247
  60. data/lib/aspose_slides_cloud/models/html5_export_options.rb +220 -0
  61. data/lib/aspose_slides_cloud/models/html_export_options.rb +378 -421
  62. data/lib/aspose_slides_cloud/models/i_shape_export_options.rb +197 -197
  63. data/lib/aspose_slides_cloud/models/image.rb +237 -237
  64. data/lib/aspose_slides_cloud/models/image_export_format.rb +43 -43
  65. data/lib/aspose_slides_cloud/models/image_export_options.rb +286 -299
  66. data/lib/aspose_slides_cloud/models/images.rb +209 -209
  67. data/lib/aspose_slides_cloud/models/inner_shadow_effect.rb +252 -252
  68. data/lib/aspose_slides_cloud/models/input.rb +227 -227
  69. data/lib/aspose_slides_cloud/models/input_file.rb +250 -250
  70. data/lib/aspose_slides_cloud/models/interactive_sequence.rb +224 -224
  71. data/lib/aspose_slides_cloud/models/layout_slide.rb +278 -278
  72. data/lib/aspose_slides_cloud/models/layout_slides.rb +209 -209
  73. data/lib/aspose_slides_cloud/models/legend.rb +321 -321
  74. data/lib/aspose_slides_cloud/models/light_rig.rb +293 -0
  75. data/lib/aspose_slides_cloud/models/line_format.rb +411 -411
  76. data/lib/aspose_slides_cloud/models/master_slide.rb +231 -231
  77. data/lib/aspose_slides_cloud/models/master_slides.rb +209 -209
  78. data/lib/aspose_slides_cloud/models/merge.rb +231 -231
  79. data/lib/aspose_slides_cloud/models/merging_source.rb +219 -219
  80. data/lib/aspose_slides_cloud/models/no_fill.rb +219 -219
  81. data/lib/aspose_slides_cloud/models/normal_view_restored_properties.rb +217 -217
  82. data/lib/aspose_slides_cloud/models/notes_slide.rb +217 -217
  83. data/lib/aspose_slides_cloud/models/notes_slide_export_format.rb +43 -43
  84. data/lib/aspose_slides_cloud/models/notes_slide_header_footer.rb +267 -267
  85. data/lib/aspose_slides_cloud/models/object_exist.rb +227 -227
  86. data/lib/aspose_slides_cloud/models/ole_object_frame.rb +260 -259
  87. data/lib/aspose_slides_cloud/models/one_value_chart_data_point.rb +210 -210
  88. data/lib/aspose_slides_cloud/models/one_value_series.rb +248 -248
  89. data/lib/aspose_slides_cloud/models/ordered_merge_request.rb +209 -209
  90. data/lib/aspose_slides_cloud/models/outer_shadow_effect.rb +252 -252
  91. data/lib/aspose_slides_cloud/models/output_file.rb +240 -240
  92. data/lib/aspose_slides_cloud/models/paragraph.rb +517 -517
  93. data/lib/aspose_slides_cloud/models/paragraphs.rb +209 -209
  94. data/lib/aspose_slides_cloud/models/path_input_file.rb +240 -240
  95. data/lib/aspose_slides_cloud/models/path_output_file.rb +239 -239
  96. data/lib/aspose_slides_cloud/models/pattern_fill.rb +266 -266
  97. data/lib/aspose_slides_cloud/models/pdf_export_options.rb +474 -547
  98. data/lib/aspose_slides_cloud/models/picture_fill.rb +351 -351
  99. data/lib/aspose_slides_cloud/models/picture_frame.rb +246 -245
  100. data/lib/aspose_slides_cloud/models/pipeline.rb +219 -219
  101. data/lib/aspose_slides_cloud/models/placeholder.rb +325 -325
  102. data/lib/aspose_slides_cloud/models/placeholders.rb +209 -209
  103. data/lib/aspose_slides_cloud/models/plot_area.rb +311 -311
  104. data/lib/aspose_slides_cloud/models/portion.rb +589 -589
  105. data/lib/aspose_slides_cloud/models/portions.rb +209 -209
  106. data/lib/aspose_slides_cloud/models/pptx_export_options.rb +244 -247
  107. data/lib/aspose_slides_cloud/models/presentation_to_merge.rb +273 -273
  108. data/lib/aspose_slides_cloud/models/presentations_merge_request.rb +221 -221
  109. data/lib/aspose_slides_cloud/models/preset_shadow_effect.rb +286 -286
  110. data/lib/aspose_slides_cloud/models/protection_properties.rb +267 -267
  111. data/lib/aspose_slides_cloud/models/reflection_effect.rb +441 -441
  112. data/lib/aspose_slides_cloud/models/remove_shape.rb +229 -229
  113. data/lib/aspose_slides_cloud/models/remove_slide.rb +234 -234
  114. data/lib/aspose_slides_cloud/models/reorder_slide.rb +249 -249
  115. data/lib/aspose_slides_cloud/models/replace_text.rb +269 -269
  116. data/lib/aspose_slides_cloud/models/request_input_file.rb +235 -235
  117. data/lib/aspose_slides_cloud/models/reset_slide.rb +234 -234
  118. data/lib/aspose_slides_cloud/models/resource_base.rb +219 -219
  119. data/lib/aspose_slides_cloud/models/resource_uri.rb +237 -237
  120. data/lib/aspose_slides_cloud/models/response_output_file.rb +219 -219
  121. data/lib/aspose_slides_cloud/models/save.rb +266 -266
  122. data/lib/aspose_slides_cloud/models/save_shape.rb +276 -276
  123. data/lib/aspose_slides_cloud/models/save_slide.rb +301 -301
  124. data/lib/aspose_slides_cloud/models/scatter_chart_data_point.rb +225 -225
  125. data/lib/aspose_slides_cloud/models/scatter_series.rb +248 -248
  126. data/lib/aspose_slides_cloud/models/section.rb +234 -234
  127. data/lib/aspose_slides_cloud/models/sections.rb +209 -209
  128. data/lib/aspose_slides_cloud/models/series.rb +422 -422
  129. data/lib/aspose_slides_cloud/models/series_marker.rb +281 -281
  130. data/lib/aspose_slides_cloud/models/shape.rb +256 -255
  131. data/lib/aspose_slides_cloud/models/shape_base.rb +385 -375
  132. data/lib/aspose_slides_cloud/models/shape_bevel.rb +261 -0
  133. data/lib/aspose_slides_cloud/models/shape_export_format.rb +44 -44
  134. data/lib/aspose_slides_cloud/models/shape_image_export_options.rb +271 -286
  135. data/lib/aspose_slides_cloud/models/shape_thumbnail_bounds.rb +41 -41
  136. data/lib/aspose_slides_cloud/models/shapes.rb +209 -209
  137. data/lib/aspose_slides_cloud/models/shapes_alignment_type.rb +46 -46
  138. data/lib/aspose_slides_cloud/models/slide.rb +322 -322
  139. data/lib/aspose_slides_cloud/models/slide_animation.rb +221 -221
  140. data/lib/aspose_slides_cloud/models/slide_background.rb +266 -266
  141. data/lib/aspose_slides_cloud/models/slide_comment.rb +239 -239
  142. data/lib/aspose_slides_cloud/models/slide_comments.rb +209 -209
  143. data/lib/aspose_slides_cloud/models/slide_export_format.rb +59 -59
  144. data/lib/aspose_slides_cloud/models/slide_properties.rb +315 -315
  145. data/lib/aspose_slides_cloud/models/slide_replace_result.rb +223 -223
  146. data/lib/aspose_slides_cloud/models/slides.rb +209 -209
  147. data/lib/aspose_slides_cloud/models/smart_art.rb +343 -342
  148. data/lib/aspose_slides_cloud/models/smart_art_node.rb +293 -293
  149. data/lib/aspose_slides_cloud/models/smart_art_shape.rb +236 -235
  150. data/lib/aspose_slides_cloud/models/soft_edge_effect.rb +212 -212
  151. data/lib/aspose_slides_cloud/models/solid_fill.rb +229 -229
  152. data/lib/aspose_slides_cloud/models/special_slide_type.rb +41 -0
  153. data/lib/aspose_slides_cloud/models/split_document_result.rb +209 -209
  154. data/lib/aspose_slides_cloud/models/storage_exist.rb +212 -212
  155. data/lib/aspose_slides_cloud/models/storage_file.rb +257 -257
  156. data/lib/aspose_slides_cloud/models/svg_export_options.rb +336 -379
  157. data/lib/aspose_slides_cloud/models/swf_export_options.rb +446 -529
  158. data/lib/aspose_slides_cloud/models/table.rb +351 -350
  159. data/lib/aspose_slides_cloud/models/table_cell.rb +403 -403
  160. data/lib/aspose_slides_cloud/models/table_column.rb +212 -212
  161. data/lib/aspose_slides_cloud/models/table_row.rb +239 -239
  162. data/lib/aspose_slides_cloud/models/task.rb +240 -240
  163. data/lib/aspose_slides_cloud/models/text_item.rb +217 -217
  164. data/lib/aspose_slides_cloud/models/text_items.rb +209 -209
  165. data/lib/aspose_slides_cloud/models/theme.rb +237 -237
  166. data/lib/aspose_slides_cloud/models/three_d_format.rb +331 -0
  167. data/lib/aspose_slides_cloud/models/tiff_export_options.rb +370 -423
  168. data/lib/aspose_slides_cloud/models/update_background.rb +241 -241
  169. data/lib/aspose_slides_cloud/models/update_shape.rb +239 -239
  170. data/lib/aspose_slides_cloud/models/video_frame.rb +330 -329
  171. data/lib/aspose_slides_cloud/models/view_properties.rb +357 -357
  172. data/lib/aspose_slides_cloud/models/waterfall_chart_data_point.rb +206 -206
  173. data/lib/aspose_slides_cloud/models/waterfall_series.rb +247 -247
  174. data/lib/aspose_slides_cloud/models/xps_export_options.rb +230 -243
  175. data/lib/aspose_slides_cloud/type_registry.rb +330 -323
  176. data/lib/aspose_slides_cloud/version.rb +25 -25
  177. data/lib/aspose_slides_cloud.rb +218 -212
  178. data/spec/api/slides_api_spec.rb +50845 -40213
  179. data/spec/extra/extra_spec.rb +202 -202
  180. data/spec/spec_utils.rb +182 -182
  181. data/testConfig.json +7 -7
  182. data/testRules.json +513 -513
  183. metadata +8 -2
@@ -1,379 +1,336 @@
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
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
+ invalid_properties
155
+ end
156
+
157
+ # Check to see if the all the properties in the model are valid
158
+ # @return true if the model is valid
159
+ def valid?
160
+ return false if !super
161
+ pictures_compression_validator = EnumAttributeValidator.new('String', ['Dpi330', 'Dpi220', 'Dpi150', 'Dpi96', 'Dpi72', 'DocumentResolution'])
162
+ return false unless pictures_compression_validator.valid?(@pictures_compression)
163
+ external_fonts_handling_validator = EnumAttributeValidator.new('String', ['AddLinksToFontFiles', 'Embed', 'Vectorize'])
164
+ return false unless external_fonts_handling_validator.valid?(@external_fonts_handling)
165
+ true
166
+ end
167
+
168
+ # Custom attribute writer method checking allowed values (enum).
169
+ # @param [Object] pictures_compression Object to be assigned
170
+ def pictures_compression=(pictures_compression)
171
+ validator = EnumAttributeValidator.new('String', ['Dpi330', 'Dpi220', 'Dpi150', 'Dpi96', 'Dpi72', 'DocumentResolution'])
172
+ unless validator.valid?(pictures_compression)
173
+ fail ArgumentError, 'invalid value for "pictures_compression", must be one of #{validator.allowable_values}.'
174
+ end
175
+ @pictures_compression = pictures_compression
176
+ end
177
+
178
+ # Custom attribute writer method checking allowed values (enum).
179
+ # @param [Object] external_fonts_handling Object to be assigned
180
+ def external_fonts_handling=(external_fonts_handling)
181
+ validator = EnumAttributeValidator.new('String', ['AddLinksToFontFiles', 'Embed', 'Vectorize'])
182
+ unless validator.valid?(external_fonts_handling)
183
+ fail ArgumentError, 'invalid value for "external_fonts_handling", must be one of #{validator.allowable_values}.'
184
+ end
185
+ @external_fonts_handling = external_fonts_handling
186
+ end
187
+
188
+ # Checks equality by comparing each attribute.
189
+ # @param [Object] Object to be compared
190
+ def ==(o)
191
+ return true if self.equal?(o)
192
+ self.class == o.class &&
193
+ default_regular_font == o.default_regular_font &&
194
+ height == o.height &&
195
+ width == o.width &&
196
+ format == o.format &&
197
+ vectorize_text == o.vectorize_text &&
198
+ metafile_rasterization_dpi == o.metafile_rasterization_dpi &&
199
+ disable3_d_text == o.disable3_d_text &&
200
+ disable_gradient_split == o.disable_gradient_split &&
201
+ disable_line_end_cropping == o.disable_line_end_cropping &&
202
+ jpeg_quality == o.jpeg_quality &&
203
+ pictures_compression == o.pictures_compression &&
204
+ delete_pictures_cropped_areas == o.delete_pictures_cropped_areas &&
205
+ external_fonts_handling == o.external_fonts_handling
206
+ end
207
+
208
+ # @see the `==` method
209
+ # @param [Object] Object to be compared
210
+ def eql?(o)
211
+ self == o
212
+ end
213
+
214
+ # Calculates hash code according to all attributes.
215
+ # @return [Fixnum] Hash code
216
+ def hash
217
+ [default_regular_font, height, width, 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
218
+ end
219
+
220
+ # Builds the object from hash
221
+ # @param [Hash] attributes Model attributes in the form of hash
222
+ # @return [Object] Returns the model itself
223
+ def build_from_hash(attributes)
224
+ return nil unless attributes.is_a?(Hash)
225
+ self.class.swagger_types.each_pair do |key, type|
226
+ mapKey = self.class.attribute_map[key]
227
+ if !mapKey.nil?
228
+ val = attributes[mapKey]
229
+ if val.nil?
230
+ mapKeyString = mapKey.to_s
231
+ mapKeyString[0] = mapKeyString[0].downcase
232
+ mapKey = mapKeyString.to_sym
233
+ val = attributes[mapKey]
234
+ end
235
+ if !val.nil?
236
+ if type =~ /\AArray<(.*)>/i
237
+ # check to ensure the input is an array given that the the attribute
238
+ # is documented as an array but the input is not
239
+ if val.is_a?(Array)
240
+ self.send("#{key}=", val.map { |v| _deserialize($1, v) })
241
+ end
242
+ else
243
+ self.send("#{key}=", _deserialize(type, val))
244
+ end
245
+ end
246
+ end
247
+ end
248
+
249
+ self
250
+ end
251
+
252
+ # Deserializes the data based on type
253
+ # @param string type Data type
254
+ # @param string value Value to be deserialized
255
+ # @return [Object] Deserialized data
256
+ def _deserialize(type, value)
257
+ case type.to_sym
258
+ when :DateTime
259
+ DateTime.parse(value)
260
+ when :Date
261
+ Date.parse(value)
262
+ when :String
263
+ value.to_s
264
+ when :Integer
265
+ value.to_i
266
+ when :Float
267
+ value.to_f
268
+ when :BOOLEAN
269
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
270
+ true
271
+ else
272
+ false
273
+ end
274
+ when :Object
275
+ # generic object (usually a Hash), return directly
276
+ value
277
+ when /\AArray<(?<inner_type>.+)>\z/
278
+ inner_type = Regexp.last_match[:inner_type]
279
+ value.map { |v| _deserialize(inner_type, v) }
280
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
281
+ k_type = Regexp.last_match[:k_type]
282
+ v_type = Regexp.last_match[:v_type]
283
+ {}.tap do |hash|
284
+ value.each do |k, v|
285
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
286
+ end
287
+ end
288
+ else # model
289
+ temp_model = AsposeSlidesCloud.const_get(type).new
290
+ temp_model.build_from_hash(value)
291
+ end
292
+ end
293
+
294
+ # Returns the string representation of the object
295
+ # @return [String] String presentation of the object
296
+ def to_s
297
+ to_hash.to_s
298
+ end
299
+
300
+ # to_body is an alias to to_hash (backward compatibility)
301
+ # @return [Hash] Returns the object in the form of hash
302
+ def to_body
303
+ to_hash
304
+ end
305
+
306
+ # Returns the object in the form of hash
307
+ # @return [Hash] Returns the object in the form of hash
308
+ def to_hash
309
+ hash = {}
310
+ self.class.attribute_map.each_pair do |attr, param|
311
+ value = self.send(attr)
312
+ next if value.nil?
313
+ hash[param] = _to_hash(value)
314
+ end
315
+ hash
316
+ end
317
+
318
+ # Outputs non-array value in the form of hash
319
+ # For object, use to_hash. Otherwise, just return the value
320
+ # @param [Object] value Any valid value
321
+ # @return [Hash] Returns the value in the form of hash
322
+ def _to_hash(value)
323
+ if value.is_a?(Array)
324
+ value.compact.map { |v| _to_hash(v) }
325
+ elsif value.is_a?(Hash)
326
+ {}.tap do |hash|
327
+ value.each { |k, v| hash[k] = _to_hash(v) }
328
+ end
329
+ elsif value.respond_to? :to_hash
330
+ value.to_hash
331
+ else
332
+ value
333
+ end
334
+ end
335
+ end
336
+ end