asposecloud 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +17 -0
- data/.project +18 -0
- data/Gemfile +4 -0
- data/LICENSE +21 -0
- data/README.md +71 -0
- data/Rakefile +1 -0
- data/Samples/Barcode/Test_Builder.rb +35 -0
- data/Samples/Barcode/Test_Reader.rb +34 -0
- data/Samples/Cells/Test_Converter.rb +34 -0
- data/Samples/Email/Test_Converter.rb +31 -0
- data/Samples/Email/Test_Document.rb +31 -0
- data/Samples/Pdf/Test_Converter.rb +38 -0
- data/Samples/Pdf/Test_TextEditor.rb +33 -0
- data/Samples/Slides/Test_Converter.rb +35 -0
- data/Samples/Storage/Test_Folder.rb +42 -0
- data/Samples/Words/Test_Converter.rb +34 -0
- data/Samples/tasks/Test_Converter.rb +31 -0
- data/Samples/tasks/Test_Document.rb +33 -0
- data/Tests/Data/barcodeQR.png +0 -0
- data/Tests/Data/email_test.eml +21 -0
- data/Tests/Data/email_test_attach.eml +64 -0
- data/Tests/Data/test_convert_cell.xlsx +0 -0
- data/Tests/Data/test_convert_slide.pptx +0 -0
- data/Tests/Data/test_convertlocal.docx +0 -0
- data/Tests/Data/test_convertlocal.pdf +0 -0
- data/Tests/Data/test_file_on_storage.pdf +0 -0
- data/Tests/Data/test_replace_text.pdf +0 -0
- data/Tests/Data/test_tasks.mpp +0 -0
- data/Tests/Data/test_uploadfile.docx +0 -0
- data/Tests/Output/barcodeQR.png +0 -0
- data/Tests/Output/converted_file.doc +0 -0
- data/Tests/Output/converted_file.pdf +0 -0
- data/Tests/Output/converted_file.tiff +0 -0
- data/Tests/Output/email_test.msg +0 -0
- data/Tests/Output/test_convert_slide.png +0 -0
- data/Tests/Output/test_file_on_storage.doc +0 -0
- data/Tests/Output/testfile.jpeg +0 -0
- data/Tests/barcode_tests.rb +45 -0
- data/Tests/cell_tests.rb +41 -0
- data/Tests/email_tests.rb +43 -0
- data/Tests/pdf_tests.rb +76 -0
- data/Tests/slide_tests.rb +41 -0
- data/Tests/storage_tests.rb +86 -0
- data/Tests/tasks_tests.rb +24 -0
- data/Tests/word_tests.rb +34 -0
- data/asposecloud.gemspec +24 -0
- data/lib/Barcode/builder.rb +45 -0
- data/lib/Barcode/reader.rb +65 -0
- data/lib/Cells/chart_editor.rb +91 -0
- data/lib/Cells/convertor.rb +144 -0
- data/lib/Cells/extractor.rb +86 -0
- data/lib/Cells/text_editor.rb +94 -0
- data/lib/Cells/workbook.rb +224 -0
- data/lib/Cells/worksheet.rb +375 -0
- data/lib/Common/aspose_app.rb +51 -0
- data/lib/Common/product.rb +34 -0
- data/lib/Common/utils.rb +172 -0
- data/lib/Email/converter.rb +50 -0
- data/lib/Email/document.rb +67 -0
- data/lib/Ocr/extractor.rb +105 -0
- data/lib/Pdf/annotation_editor.rb +263 -0
- data/lib/Pdf/converter.rb +127 -0
- data/lib/Pdf/document.rb +220 -0
- data/lib/Pdf/extractor.rb +107 -0
- data/lib/Pdf/text_editor.rb +121 -0
- data/lib/Slides/converter.rb +79 -0
- data/lib/Slides/document.rb +208 -0
- data/lib/Slides/extractor.rb +135 -0
- data/lib/Storage/folder.rb +128 -0
- data/lib/Words/builder.rb +82 -0
- data/lib/Words/converter.rb +67 -0
- data/lib/Words/document.rb +117 -0
- data/lib/Words/extractor.rb +153 -0
- data/lib/Words/mail_merge.rb +65 -0
- data/lib/aspose_barcode.rb +21 -0
- data/lib/aspose_cells.rb +24 -0
- data/lib/aspose_common.rb +29 -0
- data/lib/aspose_email.rb +20 -0
- data/lib/aspose_ocr.rb +21 -0
- data/lib/aspose_pdf.rb +23 -0
- data/lib/aspose_slides.rb +21 -0
- data/lib/aspose_storage.rb +19 -0
- data/lib/aspose_tasks.rb +23 -0
- data/lib/aspose_words.rb +23 -0
- data/lib/asposecloud.rb +29 -0
- data/lib/asposecloud/version.rb +3 -0
- data/lib/tasks/assignments.rb +71 -0
- data/lib/tasks/calendar.rb +56 -0
- data/lib/tasks/converter.rb +48 -0
- data/lib/tasks/document.rb +143 -0
- data/lib/tasks/resources.rb +69 -0
- metadata +187 -0
@@ -0,0 +1,51 @@
|
|
1
|
+
# Copyright (c) Aspose 2002-2014. All Rights Reserved.
|
2
|
+
#
|
3
|
+
# LICENSE: This program is free software; you can redistribute it and/or
|
4
|
+
# modify it under the terms of the GNU General Public License
|
5
|
+
# as published by the Free Software Foundation; either version 3
|
6
|
+
# of the License, or (at your option) any later version.
|
7
|
+
# This program is distributed in the hope that it will be useful,
|
8
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
9
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
10
|
+
# GNU General Public License for more details.
|
11
|
+
# You should have received a copy of the GNU General Public License
|
12
|
+
# along with this program. If not, see <http://opensource.org/licenses/gpl-3.0.html>;.
|
13
|
+
#
|
14
|
+
# @package Aspose_Cloud_SDK_For_Ruby
|
15
|
+
# @author Assad Mahmood Qazi <assad.mahmood@aspose.com>
|
16
|
+
# @link https://github.com/asposeforcloud/Aspose_Cloud_SDK_For_Ruby/tree/revamp
|
17
|
+
|
18
|
+
# This class allows you to set the AppSID and AppKey values you get upon signing up
|
19
|
+
module Aspose
|
20
|
+
module Cloud
|
21
|
+
module Common
|
22
|
+
class AsposeApp
|
23
|
+
|
24
|
+
def self.app_sid
|
25
|
+
@@app_sid
|
26
|
+
end
|
27
|
+
|
28
|
+
def self.app_sid= app_sid
|
29
|
+
@@app_sid = app_sid
|
30
|
+
end
|
31
|
+
|
32
|
+
def self.app_key
|
33
|
+
@@app_key
|
34
|
+
end
|
35
|
+
|
36
|
+
def self.app_key= app_key
|
37
|
+
@@app_key = app_key
|
38
|
+
end
|
39
|
+
|
40
|
+
def self.output_location
|
41
|
+
@@output_location
|
42
|
+
end
|
43
|
+
|
44
|
+
def self.output_location= output_location
|
45
|
+
@@output_location = output_location
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# Copyright (c) Aspose 2002-2014. All Rights Reserved.
|
2
|
+
#
|
3
|
+
# LICENSE: This program is free software; you can redistribute it and/or
|
4
|
+
# modify it under the terms of the GNU General Public License
|
5
|
+
# as published by the Free Software Foundation; either version 3
|
6
|
+
# of the License, or (at your option) any later version.
|
7
|
+
# This program is distributed in the hope that it will be useful,
|
8
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
9
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
10
|
+
# GNU General Public License for more details.
|
11
|
+
# You should have received a copy of the GNU General Public License
|
12
|
+
# along with this program. If not, see <http://opensource.org/licenses/gpl-3.0.html>;.
|
13
|
+
#
|
14
|
+
# @package Aspose_Cloud_SDK_For_Ruby
|
15
|
+
# @author Assad Mahmood Qazi <assad.mahmood@aspose.com>
|
16
|
+
# @link https://github.com/asposeforcloud/Aspose_Cloud_SDK_For_Ruby/tree/revamp
|
17
|
+
|
18
|
+
# This class allows you to set the base host Aspose URI
|
19
|
+
module Aspose
|
20
|
+
module Cloud
|
21
|
+
module Common
|
22
|
+
class Product
|
23
|
+
# Sets the host product URI
|
24
|
+
def self.set_base_product_uri product_uri
|
25
|
+
@@product_uri = product_uri
|
26
|
+
end
|
27
|
+
|
28
|
+
def self.product_uri
|
29
|
+
@@product_uri
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
data/lib/Common/utils.rb
ADDED
@@ -0,0 +1,172 @@
|
|
1
|
+
# Copyright (c) Aspose 2002-2014. All Rights Reserved.
|
2
|
+
#
|
3
|
+
# LICENSE: This program is free software; you can redistribute it and/or
|
4
|
+
# modify it under the terms of the GNU General Public License
|
5
|
+
# as published by the Free Software Foundation; either version 3
|
6
|
+
# of the License, or (at your option) any later version.
|
7
|
+
# This program is distributed in the hope that it will be useful,
|
8
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
9
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
10
|
+
# GNU General Public License for more details.
|
11
|
+
# You should have received a copy of the GNU General Public License
|
12
|
+
# along with this program. If not, see <http://opensource.org/licenses/gpl-3.0.html>;.
|
13
|
+
#
|
14
|
+
# @package Aspose_Cloud_SDK_For_Ruby
|
15
|
+
# @author Assad Mahmood Qazi <assad.mahmood@aspose.com>
|
16
|
+
# @link https://github.com/asposeforcloud/Aspose_Cloud_SDK_For_Ruby/tree/revamp
|
17
|
+
|
18
|
+
# This class provides common methods to be repeatedly used by other wrapper classes
|
19
|
+
module Aspose
|
20
|
+
module Cloud
|
21
|
+
module Common
|
22
|
+
class Utils
|
23
|
+
def self.process_command(url, method='GET', header_type='XML', src='')
|
24
|
+
|
25
|
+
uri = URI.parse(url)
|
26
|
+
http = Net::HTTP.new(uri.host, uri.port)
|
27
|
+
http.use_ssl = false
|
28
|
+
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
29
|
+
|
30
|
+
request = case method
|
31
|
+
when 'GET' then Net::HTTP::Get.new(url)
|
32
|
+
when 'DELETE' then Net::HTTP::Delete.new(url)
|
33
|
+
when 'POST' then Net::HTTP::Post.new(url)
|
34
|
+
else nil
|
35
|
+
end
|
36
|
+
|
37
|
+
request.body = src unless src.empty?
|
38
|
+
|
39
|
+
if header_type == 'XML'
|
40
|
+
request.add_field('Content-Type', 'application/xml')
|
41
|
+
elsif header_type == 'JSON'
|
42
|
+
request.add_field('Content-Type', 'application/json')
|
43
|
+
end
|
44
|
+
|
45
|
+
http.request(request).body
|
46
|
+
end
|
47
|
+
|
48
|
+
# Signs a URI with your appSID and Key.
|
49
|
+
# * :url describes the URL to sign
|
50
|
+
|
51
|
+
def self.sign(url)
|
52
|
+
url = url[0..-2] if url[-1].eql? '/'
|
53
|
+
url = URI.escape(url)
|
54
|
+
parsed_url = URI.parse(url)
|
55
|
+
|
56
|
+
url_to_sign = "#{parsed_url.scheme}://#{parsed_url.host}#{parsed_url.path}?appSID=#{Aspose::Cloud::Common::AsposeApp.app_sid}"
|
57
|
+
url_to_sign += "&#{parsed_url.query}" if parsed_url.query
|
58
|
+
|
59
|
+
|
60
|
+
# create a signature using the private key and the URL
|
61
|
+
raw_signature = OpenSSL::HMAC.digest(OpenSSL::Digest.new('sha1'), Aspose::Cloud::Common::AsposeApp.app_key, url_to_sign)
|
62
|
+
|
63
|
+
#Convert raw to encoded string
|
64
|
+
signature = Base64.strict_encode64(raw_signature).tr('+/', '-_')
|
65
|
+
|
66
|
+
#remove invalid character
|
67
|
+
signature = signature.gsub(/[=_-]/, '=' => '', '_' => '%2f', '-' => '%2b')
|
68
|
+
|
69
|
+
#Define expression
|
70
|
+
pat = Regexp.new('%[0-9a-f]{2}')
|
71
|
+
|
72
|
+
#Replace the portion matched to the above pattern to upper case
|
73
|
+
6.times do
|
74
|
+
signature = signature.sub(pat, pat.match(signature).to_s.upcase)
|
75
|
+
end
|
76
|
+
|
77
|
+
# prepend the server and append the signature.
|
78
|
+
url_to_sign + "&signature=#{signature}"
|
79
|
+
|
80
|
+
end
|
81
|
+
|
82
|
+
def self.validate_output(result)
|
83
|
+
|
84
|
+
validate = ['Unknown file format.',
|
85
|
+
'Unable to read beyond the end of the stream',
|
86
|
+
'Index was out of range',
|
87
|
+
'Cannot read that as a ZipFile',
|
88
|
+
'Not a Microsoft PowerPoint 2007 presentation',
|
89
|
+
'Index was outside the bounds of the array',
|
90
|
+
'An attempt was made to move the position before the beginning of the stream',
|
91
|
+
]
|
92
|
+
|
93
|
+
validate.each do |value|
|
94
|
+
return result if result.index(value)
|
95
|
+
end
|
96
|
+
|
97
|
+
''
|
98
|
+
|
99
|
+
end
|
100
|
+
|
101
|
+
# Parses JSON date value to a valid date format
|
102
|
+
# * :datestring holds the JSON Date value
|
103
|
+
def self.parse_date(date_string)
|
104
|
+
seconds_since_epoch = date_string.scan(/[0-9]+/)[0].to_i
|
105
|
+
Time.at((seconds_since_epoch-(21600000 + 18000000))/1000)
|
106
|
+
end
|
107
|
+
|
108
|
+
# Uploads a binary file from the client system
|
109
|
+
# * :localfile holds the local file path along with name
|
110
|
+
# * :url holds the required url to use while uploading the file to Aspose Storage
|
111
|
+
def self.upload_file_binary(localfile, url)
|
112
|
+
RestClient.put(url, File.new(localfile, 'rb'), :accept => 'application/json')
|
113
|
+
end
|
114
|
+
|
115
|
+
# Gets the count of a particular field in the response
|
116
|
+
# * :localfile holds the local file path along with name
|
117
|
+
# * :url holds the required url to use while uploading the file to Aspose Storage
|
118
|
+
def self.get_field_count(url, field_name)
|
119
|
+
response = RestClient.get(url, :accept => 'application/xml')
|
120
|
+
doc = REXML::Document.new(response.body)
|
121
|
+
pages = []
|
122
|
+
doc.elements.each(field_name) do |ele|
|
123
|
+
pages << ele.text
|
124
|
+
end
|
125
|
+
pages.size
|
126
|
+
end
|
127
|
+
|
128
|
+
# Saves the response stream to a local file.
|
129
|
+
def self.save_file(response_stream, local_file)
|
130
|
+
open(local_file, 'wb') do |file|
|
131
|
+
file.write(response_stream.body)
|
132
|
+
end
|
133
|
+
|
134
|
+
return local_file
|
135
|
+
end
|
136
|
+
|
137
|
+
def self.get_filename(file)
|
138
|
+
File.basename(file, File.extname(file))
|
139
|
+
end
|
140
|
+
|
141
|
+
# appends storage name to the uri
|
142
|
+
def self.append_storage(uri, remote_folder='', storage_name='', storage_type='Aspose')
|
143
|
+
tmp_uri = "folder=#{remote_folder}&" unless remote_folder.empty?
|
144
|
+
tmp_uri = "#{tmp_uri}storage=#{storage_name}" unless storage_name.empty? unless storage_type.eql? "Aspose"
|
145
|
+
tmp_uri = uri.include?('?') ? "&#{tmp_uri}" : "?#{tmp_uri}" unless tmp_uri.nil?
|
146
|
+
tmp_uri = tmp_uri[0..-2] if tmp_uri[-1].eql?('&') unless tmp_uri.nil?
|
147
|
+
tmp_uri.nil? ? uri : uri + tmp_uri
|
148
|
+
end
|
149
|
+
|
150
|
+
# build uri
|
151
|
+
def self.build_uri(path,qry_data=nil)
|
152
|
+
qry_str = ''
|
153
|
+
qry_data.each { |key,value| qry_str = "#{qry_str}#{key}=#{value}&" }
|
154
|
+
uri = qry_str.empty? ? "#{path}" : "#{path}?#{qry_str}"
|
155
|
+
uri[-1].eql?('&') ? uri[0..-2] : uri
|
156
|
+
end
|
157
|
+
|
158
|
+
def self.download_file(remote_filename, output_filename, remote_folder='', storage_name='', storage_type='Aspose')
|
159
|
+
folder = Aspose::Cloud::AsposeStorage::Folder.new
|
160
|
+
remote_filename = "#{remote_folder}/#{remote_filename}" unless remote_folder.empty?
|
161
|
+
output_stream = folder.get_file(remote_filename,storage_type,storage_name)
|
162
|
+
dst_path = "#{Aspose::Cloud::Common::AsposeApp.output_location}#{output_filename}"
|
163
|
+
Aspose::Cloud::Common::Utils.save_file(output_stream, dst_path)
|
164
|
+
return {
|
165
|
+
local_path: dst_path,
|
166
|
+
remote_path: remote_filename
|
167
|
+
}
|
168
|
+
end
|
169
|
+
end
|
170
|
+
end
|
171
|
+
end
|
172
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
# Copyright (c) Aspose 2002-2014. All Rights Reserved.
|
2
|
+
#
|
3
|
+
# LICENSE: This program is free software; you can redistribute it and/or
|
4
|
+
# modify it under the terms of the GNU General Public License
|
5
|
+
# as published by the Free Software Foundation; either version 3
|
6
|
+
# of the License, or (at your option) any later version.
|
7
|
+
# This program is distributed in the hope that it will be useful,
|
8
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
9
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
10
|
+
# GNU General Public License for more details.
|
11
|
+
# You should have received a copy of the GNU General Public License
|
12
|
+
# along with this program. If not, see <http://opensource.org/licenses/gpl-3.0.html>;.
|
13
|
+
#
|
14
|
+
# @package Aspose_Cloud_SDK_For_Ruby
|
15
|
+
# @author Assad Mahmood Qazi <assad.mahmood@aspose.com>
|
16
|
+
# @link https://github.com/asposeforcloud/Aspose_Cloud_SDK_For_Ruby/tree/revamp
|
17
|
+
|
18
|
+
module Aspose
|
19
|
+
module Cloud
|
20
|
+
module Email
|
21
|
+
class Converter
|
22
|
+
def initialize(filename)
|
23
|
+
@filename = filename
|
24
|
+
raise 'filename not specified.' if filename.empty?
|
25
|
+
@base_uri = Aspose::Cloud::Common::Product.product_uri + '/email/' + @filename
|
26
|
+
end
|
27
|
+
|
28
|
+
=begin
|
29
|
+
convert an email message document to a different format
|
30
|
+
=end
|
31
|
+
def convert(save_format, folder_name = '', storage_type = 'Aspose', storage_name = '')
|
32
|
+
raise 'save format not specified.' if save_format.empty?
|
33
|
+
|
34
|
+
str_uri = "#{@base_uri}?format=#{save_format}"
|
35
|
+
str_uri = Aspose::Cloud::Common::Utils.append_storage(str_uri,folder_name,storage_name,storage_type)
|
36
|
+
|
37
|
+
signed_str_uri = Aspose::Cloud::Common::Utils.sign(str_uri)
|
38
|
+
response_stream = RestClient.get(signed_str_uri, {:accept=>'application/json'})
|
39
|
+
valid_output = Aspose::Cloud::Common::Utils.validate_output(response_stream)
|
40
|
+
|
41
|
+
if valid_output.empty?
|
42
|
+
output_path = "#{Aspose::Cloud::Common::AsposeApp.output_location}#{Aspose::Cloud::Common::Utils.get_filename(@filename)}.#{save_format}"
|
43
|
+
Aspose::Cloud::Common::Utils.save_file(response_stream,output_path)
|
44
|
+
end
|
45
|
+
valid_output
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
# Copyright (c) Aspose 2002-2014. All Rights Reserved.
|
2
|
+
#
|
3
|
+
# LICENSE: This program is free software; you can redistribute it and/or
|
4
|
+
# modify it under the terms of the GNU General Public License
|
5
|
+
# as published by the Free Software Foundation; either version 3
|
6
|
+
# of the License, or (at your option) any later version.
|
7
|
+
# This program is distributed in the hope that it will be useful,
|
8
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
9
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
10
|
+
# GNU General Public License for more details.
|
11
|
+
# You should have received a copy of the GNU General Public License
|
12
|
+
# along with this program. If not, see <http://opensource.org/licenses/gpl-3.0.html>;.
|
13
|
+
#
|
14
|
+
# @package Aspose_Cloud_SDK_For_Ruby
|
15
|
+
# @author Assad Mahmood Qazi <assad.mahmood@aspose.com>
|
16
|
+
# @link https://github.com/asposeforcloud/Aspose_Cloud_SDK_For_Ruby/tree/revamp
|
17
|
+
|
18
|
+
module Aspose
|
19
|
+
module Cloud
|
20
|
+
module Email
|
21
|
+
class Document
|
22
|
+
def initialize(filename)
|
23
|
+
@filename = filename
|
24
|
+
raise 'filename not specified.' if filename.empty?
|
25
|
+
@base_uri = Aspose::Cloud::Common::Product.product_uri + '/email/' + @filename
|
26
|
+
end
|
27
|
+
|
28
|
+
def get_property(property_name, folder_name = '', storage_type = 'Aspose', storage_name = '')
|
29
|
+
raise 'property_name not specified.' if property_name.empty?
|
30
|
+
|
31
|
+
str_uri = "#{@base_uri}/properties/#{property_name}"
|
32
|
+
str_uri = Aspose::Cloud::Common::Utils.append_storage(str_uri,folder_name,storage_name,storage_type)
|
33
|
+
signed_str_uri = Aspose::Cloud::Common::Utils.sign(str_uri)
|
34
|
+
JSON.parse(RestClient.get(signed_str_uri, {:accept=>'application/json'}))['EmailProperty']['Value']
|
35
|
+
end
|
36
|
+
|
37
|
+
def set_property(property_name, property_value, folder_name = '', storage_type = 'Aspose', storage_name = '')
|
38
|
+
raise 'property_name not specified.' if property_name.empty?
|
39
|
+
raise 'property_value not specified.' if property_value.empty?
|
40
|
+
|
41
|
+
json_data = JSON.generate('Value'=>property_value)
|
42
|
+
|
43
|
+
str_uri = "#{@base_uri}/properties/#{property_name}"
|
44
|
+
str_uri = Aspose::Cloud::Common::Utils.append_storage(str_uri,folder_name,storage_name,storage_type)
|
45
|
+
signed_str_uri = Aspose::Cloud::Common::Utils.sign(str_uri)
|
46
|
+
JSON.parse(RestClient.put(signed_str_uri, json_data, {:content_type=>:json, :accept=>'application/json'}))['EmailProperty']['Value']
|
47
|
+
end
|
48
|
+
|
49
|
+
def get_attachment(attachment_name, folder_name = '', storage_type = 'Aspose', storage_name = '')
|
50
|
+
raise 'attachment_name not specified.' if attachment_name.empty?
|
51
|
+
|
52
|
+
str_uri = "#{@base_uri}/attachments/#{attachment_name}"
|
53
|
+
str_uri = Aspose::Cloud::Common::Utils.append_storage(str_uri,folder_name,storage_name,storage_type)
|
54
|
+
signed_str_uri = Aspose::Cloud::Common::Utils.sign(str_uri)
|
55
|
+
response_stream = RestClient.get(signed_str_uri, {:accept=>'application/json'})
|
56
|
+
valid_output = Aspose::Cloud::Common::Utils.validate_output(response_stream)
|
57
|
+
|
58
|
+
if valid_output.empty?
|
59
|
+
output_path = "#{Aspose::Cloud::Common::AsposeApp.output_location}#{attachment_name}"
|
60
|
+
Aspose::Cloud::Common::Utils.save_file(response_stream,output_path)
|
61
|
+
end
|
62
|
+
valid_output
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
@@ -0,0 +1,105 @@
|
|
1
|
+
# Copyright (c) Aspose 2002-2014. All Rights Reserved.
|
2
|
+
#
|
3
|
+
# LICENSE: This program is free software; you can redistribute it and/or
|
4
|
+
# modify it under the terms of the GNU General Public License
|
5
|
+
# as published by the Free Software Foundation; either version 3
|
6
|
+
# of the License, or (at your option) any later version.
|
7
|
+
# This program is distributed in the hope that it will be useful,
|
8
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
9
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
10
|
+
# GNU General Public License for more details.
|
11
|
+
# You should have received a copy of the GNU General Public License
|
12
|
+
# along with this program. If not, see <http://opensource.org/licenses/gpl-3.0.html>;.
|
13
|
+
#
|
14
|
+
# @package Aspose_Cloud_SDK_For_Ruby
|
15
|
+
# @author Assad Mahmood Qazi <assad.mahmood@aspose.com>
|
16
|
+
# @link https://github.com/asposeforcloud/Aspose_Cloud_SDK_For_Ruby/tree/revamp
|
17
|
+
|
18
|
+
module Aspose
|
19
|
+
module Cloud
|
20
|
+
module OCR
|
21
|
+
class Extractor
|
22
|
+
def extract_text(*args)
|
23
|
+
case args.size
|
24
|
+
when 2
|
25
|
+
image_file_name,folder = *args
|
26
|
+
str_uri = ''
|
27
|
+
if(folder=='' || folder==nil)
|
28
|
+
str_uri += Aspose::Cloud::Common::Product.product_uri + '/ocr/' + image_file_name.to_s + '/recognize'
|
29
|
+
else
|
30
|
+
str_uri += Aspose::Cloud::Common::Product.product_uri + '/ocr/' + image_file_name.to_s + '/recognize?folder=' + folder.to_s
|
31
|
+
end
|
32
|
+
|
33
|
+
signed_uri = Aspose::Cloud::Common::Utils.sign(str_uri)
|
34
|
+
|
35
|
+
response = RestClient.get(signed_uri, :accept=> 'application/json')
|
36
|
+
json = JSON.parse(response)
|
37
|
+
return json
|
38
|
+
when 4
|
39
|
+
image_file_name,folder,language,use_default_dictionaries = *args
|
40
|
+
str_uri = ''
|
41
|
+
if(folder=='' || folder==nil)
|
42
|
+
str_uri += Aspose::Cloud::Common::Product.product_uri + '/ocr/' + image_file_name.to_s + '/recognize?language=' + language.to_s + '&useDefaultDictionaries=' + use_default_dictionaries.to_s
|
43
|
+
else
|
44
|
+
str_uri += Aspose::Cloud::Common::Product.product_uri + '/ocr/' + image_file_name.to_s + '/recognize?language=' + language.to_s + '&useDefaultDictionaries=' + use_default_dictionaries.to_s + '&folder=' + folder.to_s
|
45
|
+
end
|
46
|
+
|
47
|
+
signed_uri = Aspose::Cloud::Common::Utils.sign(str_uri)
|
48
|
+
|
49
|
+
response = RestClient.get(signed_uri, :accept=> 'application/json')
|
50
|
+
json = JSON.parse(response)
|
51
|
+
return json
|
52
|
+
when 1
|
53
|
+
image_file_name = args[0]
|
54
|
+
str_uri = Aspose::Cloud::Common::Product.product_uri + '/ocr/' + image_file_name + '/recognize?useDefaultDictionaries=true'
|
55
|
+
signed_uri = Aspose::Cloud::Common::Utils.sign(str_uri)
|
56
|
+
response = RestClient.get(signed_uri, :accept=> 'application/json')
|
57
|
+
json = JSON.parse(response)
|
58
|
+
return json
|
59
|
+
when 8
|
60
|
+
image_file_name, language , use_default_dictionaries, x , y, height, width, folder = *args
|
61
|
+
str_uri = Aspose::Cloud::Common::Product.product_uri
|
62
|
+
str_uri += '/ocr/'
|
63
|
+
str_uri += image_file_name
|
64
|
+
str_uri += '/recognize?language='
|
65
|
+
str_uri += language
|
66
|
+
str_uri += ((x >= 0 && y >= 0 && width > 0 && height > 0) ? '&rectX=' + x.to_s + '&rectY=' + y.to_s + '&rectWidth=' + width.to_s + '&rectHeight=' + height.to_s : '')
|
67
|
+
str_uri += '&useDefaultDictionaries='
|
68
|
+
str_uri += ((use_default_dictionaries) ? 'true' : 'false')
|
69
|
+
str_uri +=((folder=='') ? '' : '&folder=' + folder)
|
70
|
+
|
71
|
+
signed_uri = Aspose::Cloud::Common::Utils.sign(str_uri)
|
72
|
+
|
73
|
+
response = RestClient.get(signed_uri, :accept=> 'application/json')
|
74
|
+
json = JSON.parse(response)
|
75
|
+
return json
|
76
|
+
when 3
|
77
|
+
stream,language,use_default_dictionaries = *args
|
78
|
+
str_uri = Aspose::Cloud::Common::Product.product_uri + '/ocr/recognize?language=' + language.to_s + '&useDefaultDictionaries=' + use_default_dictionaries.to_s
|
79
|
+
signed_uri = Aspose::Cloud::Common::Utils.sign(str_uri)
|
80
|
+
response = RestClient.post(signed_uri,stream, :accept=> 'application/json')
|
81
|
+
json = JSON.parse(response)
|
82
|
+
return json
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
|
87
|
+
def extract_text_from_local_file(local_file,language,use_default_dictionaries)
|
88
|
+
str_uri = Aspose::Cloud::Common::Product.product_uri + '/ocr/recognize?language=' + language.to_s + '&useDefaultDictionaries=' + use_default_dictionaries.to_s
|
89
|
+
file_stream = File.binread(local_file)
|
90
|
+
signed_uri = Aspose::Cloud::Common::Utils.sign(str_uri)
|
91
|
+
response = RestClient.post(signed_uri,file_stream, :accept=> 'application/json')
|
92
|
+
json = JSON.parse(response)
|
93
|
+
return json
|
94
|
+
end
|
95
|
+
def extract_text_from_url(url,language,use_default_dictionaries)
|
96
|
+
str_uri = Aspose::Cloud::Common::Product.product_uri + '/ocr/recognize?url=' + url + '&language=' + language + '&useDefaultDictionaries=' + use_default_dictionaries
|
97
|
+
signed_uri = Aspose::Cloud::Common::Utils.sign(str_uri)
|
98
|
+
response = RestClient.post(signed_uri,:accept => 'application/json')
|
99
|
+
json=JSON.parse(response)
|
100
|
+
return json
|
101
|
+
end
|
102
|
+
end
|
103
|
+
end
|
104
|
+
end
|
105
|
+
end
|