Class: Aspose::Cloud::Slides::Document

Inherits:
Object
  • Object
show all
Defined in:
lib/Slides/document.rb

Instance Method Summary collapse

Constructor Details

#initialize(filename) ⇒ Document

Returns a new instance of Document.



5
6
7
8
9
# File 'lib/Slides/document.rb', line 5

def initialize(filename)
  @filename = filename
  raise 'filename not specified.' if filename.empty?
  @base_uri =  Aspose::Cloud::Common::Product.product_uri + '/slides/' + @filename
end

Instance Method Details

#add_slide(position, folder_name = '', storage_type = 'Aspose', storage_name = '') ⇒ Object

Add a New Slide in a PowerPoint Presentation



13
14
15
16
17
18
19
20
21
22
23
# File 'lib/Slides/document.rb', line 13

def add_slide(position, folder_name = '', storage_type = 'Aspose', storage_name = '')
  raise 'position not specified.' if position.nil?

  str_uri = "#{@base_uri}/slides?Position=#{position}"
  str_uri = Aspose::Cloud::Common::Utils.append_storage(str_uri,folder_name,storage_name,storage_type)
  signed_str_uri = Aspose::Cloud::Common::Utils.sign(str_uri)

  response = RestClient.post(signed_str_uri, '', {:accept=>'application/json'})
  json = JSON.parse(response)
  json['Code'] == 200 ? json['Slides'] : nil
end

#aspect_ratio(slide_number, folder_name = '', storage_type = 'Aspose', storage_name = '') ⇒ Object

Get Aspect Ratio of a PowerPoint Slide

@param number slide_number


329
330
331
332
333
334
335
336
337
338
339
# File 'lib/Slides/document.rb', line 329

def aspect_ratio(slide_number, folder_name = '', storage_type = 'Aspose', storage_name = '')
  raise 'slide_number not specified.' if slide_number <= 0

  str_uri = "#{@base_uri}/slides/#{slide_number}"
  str_uri = Aspose::Cloud::Common::Utils.append_storage(str_uri,folder_name,storage_name,storage_type)
  signed_str_uri = Aspose::Cloud::Common::Utils.sign(str_uri)          

  response = RestClient.get(signed_str_uri, {:accept=>'application/json'})
  json = JSON.parse(response)
  json['Slide']['Width']/json['Slide']['Height']
end

#change_slide_position(old_position, new_position, folder_name = '', storage_type = 'Aspose', storage_name = '') ⇒ Object

Change Position of Slides in a PowerPoint Presentation



57
58
59
60
61
62
63
64
65
66
67
68
# File 'lib/Slides/document.rb', line 57

def change_slide_position(old_position, new_position, folder_name = '', storage_type = 'Aspose', storage_name = '')
  raise 'old_position not specified.' if old_position.nil?
  raise 'new_position not specified.' if new_position.nil?

  str_uri = "#{@base_uri}/slides?OldPosition=#{old_position}&NewPosition=#{new_position}"
  str_uri = Aspose::Cloud::Common::Utils.append_storage(str_uri,folder_name,storage_name,storage_type)
  signed_str_uri = Aspose::Cloud::Common::Utils.sign(str_uri)

  response = RestClient.post(signed_str_uri, '', {:accept=>'application/json'})
  json = JSON.parse(response)
  json['Code'] == 200 ? json['Slides'] : nil
end

#clone_slide(slide_number, position, folder_name = '', storage_type = 'Aspose', storage_name = '') ⇒ Object

Copy Slides in a PowerPoint Presentation



41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/Slides/document.rb', line 41

def clone_slide(slide_number, position, folder_name = '', storage_type = 'Aspose', storage_name = '')
  raise 'slide_number not specified.' if slide_number <= 0
  raise 'position not specified.' if position.nil?

  str_uri = "#{@base_uri}/slides?SlideToClone=#{slide_number}&Position=#{position}"
  str_uri = Aspose::Cloud::Common::Utils.append_storage(str_uri,folder_name,storage_name,storage_type)
  signed_str_uri = Aspose::Cloud::Common::Utils.sign(str_uri)

  response = RestClient.post(signed_str_uri, '', {:accept=>'application/json'})
  json = JSON.parse(response)
  json['Code'] == 200 ? json['Slides'] : nil
end

#create_empty_presentation(folder_name = '', storage_type = 'Aspose', storage_name = '') ⇒ Object

Create Empty PowerPoint Presentation



28
29
30
31
32
33
34
35
36
# File 'lib/Slides/document.rb', line 28

def create_empty_presentation(folder_name = '', storage_type = 'Aspose', storage_name = '')
  str_uri = "#{@base_uri}"
  str_uri = Aspose::Cloud::Common::Utils.append_storage(str_uri,folder_name,storage_name,storage_type)
  signed_str_uri = Aspose::Cloud::Common::Utils.sign(str_uri)

  response = RestClient.put(signed_str_uri, '', {:accept=>'application/json'})
  json = JSON.parse(response)
  json['Code'] == 200 ? json['Document'] : nil
end

#delete_all_slides(folder_name = '', storage_type = 'Aspose', storage_name = '') ⇒ Object

Deletes all slides from a presentation



179
180
181
182
183
184
185
186
187
# File 'lib/Slides/document.rb', line 179

def delete_all_slides(folder_name = '', storage_type = 'Aspose', storage_name = '')
  str_uri = "#{@base_uri}/slides"
  str_uri = Aspose::Cloud::Common::Utils.append_storage(str_uri,folder_name,storage_name,storage_type)
  signed_str_uri = Aspose::Cloud::Common::Utils.sign(str_uri)

  response_stream = RestClient.delete(signed_str_uri, {:accept=>'application/json'})
  valid_output = Aspose::Cloud::Common::Utils.validate_output(response_stream)
  valid_output.empty? ? Aspose::Cloud::Common::Utils.download_file(@filename,@filename,folder_name,storage_name,storage_type) : valid_output
end

#delete_background(slide_number, folder_name = '', storage_type = 'Aspose', storage_name = '') ⇒ Object

Delete Background of a PowerPoint Slide



207
208
209
210
211
212
213
214
215
216
217
# File 'lib/Slides/document.rb', line 207

def delete_background(slide_number, folder_name = '', storage_type = 'Aspose', storage_name = '')
  raise 'slide_number not specified.' if slide_number <= 0

  str_uri = "#{@base_uri}/slides/#{slide_number}/background"
  str_uri = Aspose::Cloud::Common::Utils.append_storage(str_uri,folder_name,storage_name,storage_type)
  signed_str_uri = Aspose::Cloud::Common::Utils.sign(str_uri)

  response_stream = RestClient.delete(signed_str_uri, {:accept=>'application/json'})
  valid_output = Aspose::Cloud::Common::Utils.validate_output(response_stream)
  valid_output.empty? ? Aspose::Cloud::Common::Utils.download_file(@filename,@filename,folder_name,storage_name,storage_type) : valid_output
end

#delete_property(property_name, folder_name = '', storage_type = 'Aspose', storage_name = '') ⇒ Object

Delete a document property

@param string property_name


275
276
277
278
279
280
281
282
# File 'lib/Slides/document.rb', line 275

def delete_property(property_name, folder_name = '', storage_type = 'Aspose', storage_name = '')
  raise 'property_name not specified.' if property_name.empty?

  str_uri = "#{@base_uri}/documentProperties/#{property_name}"
  str_uri = Aspose::Cloud::Common::Utils.append_storage(str_uri,folder_name,storage_name,storage_type)
  signed_str_uri = Aspose::Cloud::Common::Utils.sign(str_uri)
  JSON.parse(RestClient.delete(signed_str_uri, {:accept=>'application/json'}))['Code'] == 200 ? true : false
end

#delete_slide(slide_number, folder_name = '', storage_type = 'Aspose', storage_name = '') ⇒ Object

Delete a Slide from a PowerPoint Presentation



192
193
194
195
196
197
198
199
200
201
202
# File 'lib/Slides/document.rb', line 192

def delete_slide(slide_number, folder_name = '', storage_type = 'Aspose', storage_name = '')
  raise 'slide_number not specified.' if slide_number <= 0

  str_uri = "#{@base_uri}/slides/#{slide_number}"
  str_uri = Aspose::Cloud::Common::Utils.append_storage(str_uri,folder_name,storage_name,storage_type)
  signed_str_uri = Aspose::Cloud::Common::Utils.sign(str_uri)

  response_stream = RestClient.delete(signed_str_uri, {:accept=>'application/json'})
  valid_output = Aspose::Cloud::Common::Utils.validate_output(response_stream)
  valid_output.empty? ? Aspose::Cloud::Common::Utils.download_file(@filename,@filename,folder_name,storage_name,storage_type) : valid_output
end

#get_all_text_items(slide_number = 0, with_empty = false, folder_name = '', storage_type = 'Aspose', storage_name = '') ⇒ Object

Gets all the text items in a slide or presentation

@param number slide_number
@param boolean with_empty


166
167
168
169
170
171
172
173
174
# File 'lib/Slides/document.rb', line 166

def get_all_text_items(slide_number=0, with_empty=false, folder_name = '', storage_type = 'Aspose', storage_name = '')          
  str_uri = "#{@base_uri}"
  str_uri += "/slides/#{slide_number}" unless slide_number <= 0
  str_uri += "/textItems?withEmpty=#{with_empty}"          
  str_uri = Aspose::Cloud::Common::Utils.append_storage(str_uri,folder_name,storage_name,storage_type)
  signed_str_uri = Aspose::Cloud::Common::Utils.sign(str_uri)

  JSON.parse(RestClient.get(signed_str_uri, {:accept=>'application/json'}))['TextItems']['Items']
end

#get_background(slide_number, folder_name = '', storage_type = 'Aspose', storage_name = '') ⇒ Object

Get Background of a PowerPoint Slide



222
223
224
225
226
227
228
229
230
231
232
# File 'lib/Slides/document.rb', line 222

def get_background(slide_number, folder_name = '', storage_type = 'Aspose', storage_name = '')
  raise 'slide_number not specified.' if slide_number <= 0

  str_uri = "#{@base_uri}/slides/#{slide_number}/background"
  str_uri = Aspose::Cloud::Common::Utils.append_storage(str_uri,folder_name,storage_name,storage_type)
  signed_str_uri = Aspose::Cloud::Common::Utils.sign(str_uri)

  response = RestClient.get(signed_str_uri, {:accept=>'application/json'})
  json = JSON.parse(response)
  json['Code'] == 200 ? json['Background'] : nil
end

#get_properties(folder_name = '', storage_type = 'Aspose', storage_name = '') ⇒ Object

Get Document’s properties



237
238
239
240
241
242
# File 'lib/Slides/document.rb', line 237

def get_properties(folder_name = '', storage_type = 'Aspose', storage_name = '')
  str_uri = "#{@base_uri}/documentProperties"
  str_uri = Aspose::Cloud::Common::Utils.append_storage(str_uri,folder_name,storage_name,storage_type)
  signed_str_uri = Aspose::Cloud::Common::Utils.sign(str_uri)
  JSON.parse(RestClient.get(signed_str_uri, {:accept=>'application/json'}))['DocumentProperties']['List']
end

#get_slide_count(folder_name = '', storage_type = 'Aspose', storage_name = '') ⇒ Object

Finds the slide count of the specified PowerPoint document



128
129
130
131
132
133
# File 'lib/Slides/document.rb', line 128

def get_slide_count(folder_name = '', storage_type = 'Aspose', storage_name = '')
  str_uri = "#{@base_uri}/slides"
  str_uri = Aspose::Cloud::Common::Utils.append_storage(str_uri,folder_name,storage_name,storage_type)
  signed_str_uri = Aspose::Cloud::Common::Utils.sign(str_uri)
  JSON.parse(RestClient.get(signed_str_uri, {:accept=>'application/json'}))['Slides']['SlideList'].length
end

#merge_presentations(presentation_list, folder_name = '', storage_type = 'Aspose', storage_name = '') ⇒ Object

Merge PowerPoint Presentations

@param xml presentation_list


97
98
99
100
101
102
103
104
105
106
107
# File 'lib/Slides/document.rb', line 97

def merge_presentations(presentation_list, folder_name = '', storage_type = 'Aspose', storage_name = '')
  raise 'presentation_list not specified.' if presentation_list.empty?

  str_uri = "#{@base_uri}/merge"
  str_uri = Aspose::Cloud::Common::Utils.append_storage(str_uri,folder_name,storage_name,storage_type)
  signed_str_uri = Aspose::Cloud::Common::Utils.sign(str_uri)

  response = RestClient.post(signed_str_uri, presentation_list, {:accept=>'application/json'})
  json = JSON.parse(response)
  json['Code'] == 200 ? json['Document'] : nil
end

#merge_selected_slides(presentation_list, folder_name = '', storage_type = 'Aspose', storage_name = '') ⇒ Object

Merge Selected Slides of PowerPoint Presentations

@param xml presentation_list


113
114
115
116
117
118
119
120
121
122
123
# File 'lib/Slides/document.rb', line 113

def merge_selected_slides(presentation_list, folder_name = '', storage_type = 'Aspose', storage_name = '')
  raise 'presentation_list not specified.' if presentation_list.empty?

  str_uri = "#{@base_uri}/merge"
  str_uri = Aspose::Cloud::Common::Utils.append_storage(str_uri,folder_name,storage_name,storage_type)
  signed_str_uri = Aspose::Cloud::Common::Utils.sign(str_uri)

  response = RestClient.put(signed_str_uri, presentation_list, {:accept=>'application/json'})
  json = JSON.parse(response)
  json['Code'] == 200 ? json['Document'] : nil
end

#remove_all_properties(folder_name = '', storage_type = 'Aspose', storage_name = '') ⇒ Object

Remove All Document’s properties



264
265
266
267
268
269
# File 'lib/Slides/document.rb', line 264

def remove_all_properties(folder_name = '', storage_type = 'Aspose', storage_name = '')
  str_uri = "#{@base_uri}/documentProperties"
  str_uri = Aspose::Cloud::Common::Utils.append_storage(str_uri,folder_name,storage_name,storage_type)
  signed_str_uri = Aspose::Cloud::Common::Utils.sign(str_uri)
  JSON.parse(RestClient.delete(signed_str_uri, {:accept=>'application/json'}))['Code'] == 200 ? true : false
end

#replace_text(old_text, new_text, slide_number = 0, folder_name = '', storage_type = 'Aspose', storage_name = '') ⇒ Object

Replaces all instances of old text with new text in a presentation or a particular slide

@param string old_text
@param string new_text
@param number slide_number


141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
# File 'lib/Slides/document.rb', line 141

def replace_text(old_text, new_text, slide_number = 0, folder_name = '', storage_type = 'Aspose', storage_name = '')
  raise 'old_text not specified.' if old_text.empty?
  raise 'new_text not specified.' if new_text.empty?

  #str_uri = "#{@base_uri}#{ slide_number > 0 ? '/slides/' + slide_number : '' }/replaceText"
  str_uri = "#{@base_uri}"
  str_uri += "/slides/#{slide_number}" unless slide_number <= 0
  str_uri += "/replaceText"
  qry = Hash.new
  qry[:oldValue] = old_text
  qry[:newValue] = new_text
  str_uri = Aspose::Cloud::Common::Utils.build_uri(str_uri,qry)
  str_uri = Aspose::Cloud::Common::Utils.append_storage(str_uri,folder_name,storage_name,storage_type)
  signed_str_uri = Aspose::Cloud::Common::Utils.sign(str_uri)

  response_stream = RestClient.post(signed_str_uri,'',{:accept=>'application/json'})
  valid_output = Aspose::Cloud::Common::Utils.validate_output(response_stream)
  valid_output.empty? ? Aspose::Cloud::Common::Utils.download_file(@filename,@filename,folder_name,storage_name,storage_type) : valid_output
end

#save_as(output_filename, output_format, folder_name = '', storage_type = 'Aspose', storage_name = '') ⇒ Object

saves the document into various formats

@param string outputFilename
@param string outputFormat


290
291
292
293
294
295
296
297
298
299
300
301
302
# File 'lib/Slides/document.rb', line 290

def save_as(output_filename, output_format, folder_name = '', storage_type = 'Aspose', storage_name = '')
  raise 'output_filename not specified.' if output_filename.empty?
  raise 'output_format not specified.' if output_format.empty?

  str_uri = "#{@base_uri}?format=#{output_format}"
  str_uri = Aspose::Cloud::Common::Utils.append_storage(str_uri,folder_name,storage_name,storage_type)
  signed_str_uri = Aspose::Cloud::Common::Utils.sign(str_uri)

  response_stream = RestClient.get(signed_str_uri, {:accept=>'application/json'})
  valid_output = Aspose::Cloud::Common::Utils.validate_output(response_stream)
  output_path = "#{Aspose::Cloud::Common::AsposeApp.output_location}#{Aspose::Cloud::Common::Utils.get_filename(output_filename)}.#{output_format}"
  valid_output.empty? ? Aspose::Cloud::Common::Utils.save_file(response_stream,output_path) : valid_output
end

#save_slide_as(slide_number, output_filename, output_format, folder_name = '', storage_type = 'Aspose', storage_name = '') ⇒ Object

saves the document into various formats

@param number slide_number
@param string outputFilename
@param string outputFormat


310
311
312
313
314
315
316
317
318
319
320
321
322
323
# File 'lib/Slides/document.rb', line 310

def save_slide_as(slide_number, output_filename, output_format, folder_name = '', storage_type = 'Aspose', storage_name = '')
  raise 'slide_number not specified.' if slide_number <= 0
  raise 'output_filename not specified.' if output_filename.empty?
  raise 'output_format not specified.' if output_format.empty?

  str_uri = "#{@base_uri}/slides/#{slide_number}?format=#{output_format}"
  str_uri = Aspose::Cloud::Common::Utils.append_storage(str_uri,folder_name,storage_name,storage_type)
  signed_str_uri = Aspose::Cloud::Common::Utils.sign(str_uri)          

  response_stream = RestClient.get(signed_str_uri, {:accept=>'application/json'})
  valid_output = Aspose::Cloud::Common::Utils.validate_output(response_stream)
  output_path = "#{Aspose::Cloud::Common::AsposeApp.output_location}#{Aspose::Cloud::Common::Utils.get_filename(output_filename)}_#{slide_number}.#{output_format}"
  valid_output.empty? ? Aspose::Cloud::Common::Utils.save_file(response_stream,output_path) : valid_output
end

#set_property(property_name, property_value, folder_name = '', storage_type = 'Aspose', storage_name = '') ⇒ Object

Set document property

@param string property_name
@param string property_value


249
250
251
252
253
254
255
256
257
258
259
# File 'lib/Slides/document.rb', line 249

def set_property(property_name, property_value, folder_name = '', storage_type = 'Aspose', storage_name = '')
  raise 'property_name not specified.' if property_name.empty?
  raise 'property_value not specified.' if property_value.empty?

  json_data = JSON.generate('Value'=>property_value)

  str_uri = "#{@base_uri}/documentProperties/#{property_name}"
  str_uri = Aspose::Cloud::Common::Utils.append_storage(str_uri,folder_name,storage_name,storage_type)
  signed_str_uri = Aspose::Cloud::Common::Utils.sign(str_uri)
  JSON.parse(RestClient.put(signed_str_uri, json_data, {:content_type=>:json, :accept=>'application/json'}))['DocumentProperty']
end

#split_presentation(from = '', to = '', destination = '', format = '', folder_name = '', storage_type = 'Aspose', storage_name = '') ⇒ Object

Split PowerPoint Presentations



73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
# File 'lib/Slides/document.rb', line 73

def split_presentation(from = '', to = '', destination = '', format = '', folder_name = '', storage_type = 'Aspose', storage_name = '')
  str_uri = "#{@base_uri}/split?"
  str_uri = "#{str_uri}&from=#{from}" unless from.empty?
  str_uri = "#{str_uri}&to=#{to}" unless to.empty?
  str_uri = "#{str_uri}&destFolder=#{destination}" unless destination.empty?
  str_uri = "#{str_uri}&format=#{format}" unless format.empty?
  str_uri = str_uri[0...-1]
  str_uri = Aspose::Cloud::Common::Utils.append_storage(str_uri,folder_name,storage_name,storage_type)
  signed_str_uri = Aspose::Cloud::Common::Utils.sign(str_uri)

  response = RestClient.post(signed_str_uri, '', {:accept=>'application/json'})
  json = JSON.parse(response)
  if json['Code'] == 200
    json['SplitResult']['Slides'].each { |split_page|
      split_filename = File.basename(split_page['Href'])
      Aspose::Cloud::Common::Utils.download_file(split_filename,split_filename,folder_name,storage_name,storage_type)
    }
  end
end