asposecloudsdk 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,489 @@
1
+ # To change this template, choose Tools | Templates
2
+ # and open the template in the editor.
3
+ module Aspose
4
+ module Cloud
5
+
6
+ module Slides
7
+ class Document
8
+ def initialize filename
9
+ @filename = filename
10
+ end
11
+
12
+ =begin
13
+ Finds the slide count of the specified PowerPoint document
14
+ =end
15
+ def get_slide_count(storage_type='',folder_name = '',storage_name='')
16
+
17
+ begin
18
+
19
+ if @filename == ''
20
+ raise 'filename not specified'
21
+ end
22
+
23
+ str_uri = $product_uri + '/slides/' + @filename + '/slides'
24
+ if !folder_name.empty?
25
+ str_uri += '?folder=' + folder_name
26
+ end
27
+ if !storage_name.empty?
28
+ str_uri += '&storage=' + storage_name
29
+ end
30
+ str_signed_uri = Aspose::Cloud::Common::Utils.sign(str_uri)
31
+ response_stream = RestClient.get(str_signed_uri, {:accept=>'application/json'})
32
+
33
+ stream_hash = JSON.parse(response_stream)
34
+
35
+ return stream_hash['Slides']['SlideList'].length
36
+
37
+ rescue Exception=>e
38
+ print e
39
+ end
40
+
41
+ end
42
+
43
+ =begin
44
+ Replaces all instances of old text with new text in a presentation or a particular slide
45
+ @param string old_text
46
+ @param string new_text
47
+ @param number slide_number
48
+ =end
49
+ def replace_text old_text, new_text, slide_number = 0
50
+
51
+ begin
52
+
53
+ if @filename == ''
54
+ raise 'filename not specified'
55
+ end
56
+
57
+ if old_text == ''
58
+ raise 'old text not specified'
59
+ end
60
+
61
+ if new_text == ''
62
+ raise 'new text not specified'
63
+ end
64
+
65
+ if(slide_number == 0)
66
+ str_uri = $product_uri + '/slides/' + @filename + '/replaceText?oldValue=' + old_text + '&newValue=' + new_text + '&ignoreCase=true'
67
+ else
68
+ str_uri = $product_uri + '/slides/' + @filename + '/slides/' + slide_number.to_s + '/replaceText?oldValue=' + old_text + '&newValue=' + new_text + '&ignoreCase=true'
69
+ end
70
+
71
+ str_signed_uri = Aspose::Cloud::Common::Utils.sign(str_uri)
72
+ response_stream = RestClient.post(str_signed_uri, '', {:accept=>'application/json'})
73
+
74
+ valid_output = Aspose::Cloud::Common::Utils.validate_output(response_stream)
75
+
76
+ if valid_output == ''
77
+ folder = Aspose::Cloud::AsposeStorage::Folder.new
78
+ output_stream = folder.get_file(@filename)
79
+ output_path = $out_put_location + @filename
80
+ Aspose::Cloud::Common::Utils.save_file(output_stream,output_path)
81
+ return ''
82
+ else
83
+ return valid_output
84
+ end
85
+
86
+ rescue Exception=>e
87
+ print e
88
+ end
89
+
90
+ end
91
+
92
+ =begin
93
+ Gets all the text items in a slide or presentation
94
+ @param number slide_number
95
+ @param boolean with_empty
96
+ =end
97
+ def get_all_text_items slide_number=0, with_empty=false
98
+
99
+ begin
100
+
101
+ if @filename == ''
102
+ raise 'filename not specified'
103
+ end
104
+
105
+ if(slide_number == 0)
106
+ str_uri = $product_uri + '/slides/' + @filename + '/textItems?&withEmpty='+with_empty.to_s
107
+ else
108
+ str_uri = $product_uri + '/slides/' + @filename + '/slides/' + slide_number.to_s + '/textItems?&withEmpty='+with_empty.to_s
109
+ end
110
+
111
+ str_signed_uri = Aspose::Cloud::Common::Utils.sign(str_uri)
112
+ response_stream = RestClient.get(str_signed_uri, {:accept=>'application/json'})
113
+
114
+ stream_hash = JSON.parse(response_stream)
115
+
116
+ return stream_hash['TextItems']['Items']
117
+
118
+ rescue Exception=>e
119
+ print e
120
+ end
121
+
122
+ end
123
+
124
+ =begin
125
+ Deletes all slides from a presentation
126
+ =end
127
+ def delete_all_slides storage_type='Aspose', folder_name='',storage_name=''
128
+
129
+ begin
130
+
131
+ if @filename == ''
132
+ raise 'filename not specified'
133
+ end
134
+
135
+
136
+ str_uri = $product_uri + '/slides/' + @filename + '/slides/'
137
+ if !folder_name.empty?
138
+ str_uri += '?folder=' + folder_name
139
+ end
140
+ if !storage_name.empty?
141
+ str_uri += '&storage=' + storage_name
142
+ end
143
+
144
+ str_signed_uri = Aspose::Cloud::Common::Utils.sign(str_uri)
145
+ response_stream = RestClient.delete(str_signed_uri, {:accept=>'application/json'})
146
+
147
+ valid_output = Aspose::Cloud::Common::Utils.validate_output(response_stream)
148
+
149
+ if valid_output == ''
150
+ folder = Aspose::Cloud::AsposeStorage::Folder.new
151
+ output_stream = folder.get_file(@filename)
152
+ output_path = $out_put_location + @filename ;
153
+ Aspose::Cloud::Common::Utils.save_file(output_stream,output_path)
154
+ return ''
155
+ else
156
+ return valid_output
157
+ end
158
+
159
+ rescue Exception=>e
160
+ print e
161
+ end
162
+
163
+ end
164
+
165
+ =begin
166
+ Get Document's properties
167
+ =end
168
+
169
+ def get_properties
170
+
171
+ begin
172
+
173
+ if @filename == ''
174
+ raise 'Base file not specified.'
175
+ end
176
+
177
+ str_uri = $product_uri + '/slides/' + @filename + '/documentProperties'
178
+ signed_str_uri = Aspose::Cloud::Common::Utils.sign(str_uri)
179
+
180
+ response_stream = RestClient.get(signed_str_uri,{:accept=>'application/json'})
181
+
182
+ stream_hash = JSON.parse(response_stream)
183
+
184
+ if(stream_hash['Code'] == 200)
185
+ return stream_hash['DocumentProperties']['List']
186
+ else
187
+ return false
188
+ end
189
+
190
+ rescue Exception=>e
191
+ print e
192
+ end
193
+
194
+ end
195
+
196
+ =begin
197
+ Get Resource Properties information like document source format, IsEncrypted, IsSigned and document properties
198
+ @param string property_name
199
+ =end
200
+
201
+ def get_property property_name
202
+
203
+ begin
204
+
205
+ if @filename == ''
206
+ raise 'Base file not specified.'
207
+ end
208
+
209
+ if property_name == ''
210
+ raise 'Property name not specified.'
211
+ end
212
+
213
+ str_uri = $product_uri + '/slides/' + @filename + '/documentProperties/' + property_name
214
+ signed_str_uri = Aspose::Cloud::Common::Utils.sign(str_uri)
215
+
216
+ response_stream = RestClient.get(signed_str_uri,{:accept=>'application/json'})
217
+
218
+ stream_hash = JSON.parse(response_stream)
219
+
220
+ if(stream_hash['Code'] == 200)
221
+ return stream_hash['DocumentProperty']
222
+ else
223
+ return false
224
+ end
225
+
226
+ rescue Exception=>e
227
+ print e
228
+ end
229
+
230
+ end
231
+
232
+ =begin
233
+ Set document property
234
+ @param string property_name
235
+ @param string property_value
236
+ =end
237
+
238
+ def set_property property_name, property_value
239
+
240
+ begin
241
+
242
+ if @filename == ''
243
+ raise 'Base file not specified.'
244
+ end
245
+
246
+ if property_name == ''
247
+ raise 'Property name not specified.'
248
+ end
249
+
250
+ if property_value == ''
251
+ raise 'Property value not specified.'
252
+ end
253
+
254
+ post_hash = { 'Value' => property_value}
255
+ json_data = post_hash.to_json
256
+
257
+ str_uri = $product_uri + '/slides/' + @filename + '/documentProperties/' + property_name
258
+ signed_str_uri = Aspose::Cloud::Common::Utils.sign(str_uri)
259
+
260
+ response_stream = RestClient.put(signed_str_uri,json_data,{:accept=>'application/json'})
261
+
262
+ stream_hash = JSON.parse(response_stream)
263
+
264
+ if(stream_hash['Code'] == 200)
265
+ return stream_hash['DocumentProperty']
266
+ else
267
+ return false
268
+ end
269
+
270
+ rescue Exception=>e
271
+ print e
272
+ end
273
+
274
+ end
275
+
276
+ =begin
277
+ Remove All Document's properties
278
+ =end
279
+
280
+ def remove_all_properties
281
+
282
+ begin
283
+
284
+ if @filename == ''
285
+ raise 'Base file not specified.'
286
+ end
287
+
288
+
289
+ str_uri = $product_uri + '/slides/' + @filename + '/documentProperties'
290
+ signed_str_uri = Aspose::Cloud::Common::Utils.sign(str_uri)
291
+
292
+ response_stream = RestClient.delete(signed_str_uri,{:accept=>'application/json'})
293
+
294
+ stream_hash = JSON.parse(response_stream)
295
+
296
+ if(stream_hash['Code'] == 200)
297
+ return true
298
+ else
299
+ return false
300
+ end
301
+
302
+ rescue Exception=>e
303
+ print e
304
+ end
305
+
306
+ end
307
+
308
+ =begin
309
+ Delete a document property
310
+ @param string property_name
311
+ =end
312
+
313
+ def delete_property property_name
314
+
315
+ begin
316
+
317
+ if @filename == ''
318
+ raise 'Base file not specified.'
319
+ end
320
+
321
+ if property_name == ''
322
+ raise 'Property name not specified.'
323
+ end
324
+
325
+ str_uri = $product_uri + '/slides/' + @filename + '/documentProperties/' + property_name
326
+ signed_str_uri = Aspose::Cloud::Common::Utils.sign(str_uri)
327
+ response_stream = RestClient.delete(signed_str_uri,{:accept=>'application/json'})
328
+
329
+ stream_hash = JSON.parse(response_stream)
330
+
331
+ if(stream_hash['Code'] == 200)
332
+ return true
333
+ else
334
+ return false
335
+ end
336
+
337
+ rescue Exception=>e
338
+ print e
339
+ end
340
+
341
+ end
342
+
343
+ =begin
344
+ Add custom document properties
345
+ @param hash property_list
346
+ =end
347
+
348
+ def add_custom_property property_list
349
+
350
+ begin
351
+
352
+ if @filename == ''
353
+ raise 'Base file not specified.'
354
+ end
355
+
356
+ if property_list == ''
357
+ raise 'Property list not specified.'
358
+ end
359
+
360
+ json_data = property_list.to_json
361
+
362
+ # post_hash = { 'Value' => property_value}
363
+ # json_data = post_hash.to_json
364
+
365
+ str_uri = $product_uri + '/slides/' + @filename + '/documentProperties'
366
+ signed_str_uri = Aspose::Cloud::Common::Utils.sign(str_uri)
367
+ response_stream = RestClient.put(signed_str_uri,json_data,{:accept=>'application/json'})
368
+
369
+ stream_hash = JSON.parse(response_stream)
370
+
371
+ if(stream_hash['Code'] == 200)
372
+ return stream_hash
373
+ else
374
+ return false
375
+ end
376
+
377
+ rescue Exception=>e
378
+ print e
379
+ end
380
+
381
+ end
382
+
383
+ =begin
384
+ saves the document into various formats
385
+ @param string outputFilename
386
+ @param string outputFormat
387
+ =end
388
+
389
+ def save_as output_path,output_format , storage_type='Aspose',folder_name='',storage_name=''
390
+ begin
391
+
392
+ if @filename == ''
393
+ raise('input file not specified')
394
+ end
395
+
396
+ if output_path == ''
397
+ raise('output path not specified')
398
+ end
399
+
400
+ if output_format == ''
401
+ raise('output format not specified')
402
+ end
403
+
404
+ # if not File.exist?(inputFile)
405
+ # raise('input file doesn't exist.')
406
+ # end
407
+
408
+
409
+
410
+ str_uri = $product_uri + '/slides/'+@filename+'?format=' + output_format
411
+ if !folder_name.empty?
412
+ str_uri += '?folder=' + folder_name
413
+ end
414
+ if !storage_name.empty?
415
+ str_uri += '&storage=' + storage_name
416
+ end
417
+ str_signed_uri = Aspose::Cloud::Common::Utils.sign(str_uri)
418
+ response_stream = RestClient.get(str_signed_uri,{:accept=>'application/json'})
419
+ valid_output = Aspose::Cloud::Common::Utils.validate_output(response_stream)
420
+ if valid_output == ''
421
+ output_path = output_path + Aspose::Cloud::Common::Utils.get_filename(@filename) + '.' + output_format
422
+ Aspose::Cloud::Common::Utils.save_file(response_stream,output_path)
423
+ return ''
424
+ else
425
+ return valid_output
426
+ end
427
+
428
+ rescue Exception=>e
429
+ print e
430
+ end
431
+ end
432
+
433
+ =begin
434
+ saves the document into various formats
435
+ @param string slide_number
436
+ @param string outputFilename
437
+ @param string outputFormat
438
+ =end
439
+
440
+ def save_slide_as slide_number,output_path,output_format
441
+ begin
442
+
443
+ if @filename == ''
444
+ raise('input file not specified')
445
+ end
446
+
447
+ if output_path == ''
448
+ raise('output path not specified')
449
+ end
450
+
451
+ if slide_number == ''
452
+ raise('slide number not specified')
453
+ end
454
+
455
+ if output_format == ''
456
+ raise('output format not specified')
457
+ end
458
+
459
+ # if not File.exist?(inputFile)
460
+ # raise('input file doesn't exist.')
461
+ # end
462
+
463
+
464
+
465
+ str_uri = $product_uri + '/slides/'+@filename+'/slides/'+slide_number.to_s+'?format=' + output_format
466
+ str_signed_uri = Aspose::Cloud::Common::Utils.sign(str_uri)
467
+ response_stream = RestClient.get(str_signed_uri,{:accept=>'application/json'})
468
+
469
+
470
+ valid_output = Aspose::Cloud::Common::Utils.validate_output(response_stream)
471
+
472
+ if valid_output == ''
473
+ output_path = $out_put_location + Aspose::Cloud::Common::Utils.get_filename(@filename) + '.' + output_format
474
+ Aspose::Cloud::Common::Utils.save_file(response_stream,output_path)
475
+ return ''
476
+ else
477
+ return valid_output
478
+ end
479
+
480
+ rescue Exception=>e
481
+ print e
482
+ end
483
+ end
484
+
485
+ end
486
+ end
487
+
488
+ end
489
+ end