Class: Aspose::Cloud::Pdf::TextEditor

Inherits:
Object
  • Object
show all
Defined in:
lib/Pdf/text_editor.rb

Instance Method Summary collapse

Constructor Details

#initialize(filename) ⇒ TextEditor

Returns a new instance of TextEditor.



7
8
9
# File 'lib/Pdf/text_editor.rb', line 7

def initialize filename
  @filename = filename
end

Instance Method Details

#get_fragment_count(page_number) ⇒ Object

Gets count of the fragments from a particular page

@param number page_number


81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
# File 'lib/Pdf/text_editor.rb', line 81

def get_fragment_count page_number
  begin

    if @filename == ''
      raise 'filename not specified'
    end

    if page_number == ''
      raise 'page number not specified'
    end

       
    str_uri = $product_uri + '/pdf/' + @filename + '/pages/' + page_number.to_s + '/fragments'        
    str_signed_uri = Aspose::Cloud::Common::Utils.sign(str_uri)        
    response_stream = RestClient.get(str_signed_uri, {:accept=>'application/json'})  

    stream_hash = JSON.parse(response_stream)

    return stream_hash['TextItems']['List'].length

  rescue Exception=>e
    print e
  end
end

#get_segment_count(page_number, fragment_number) ⇒ Object

Gets count of the segments in a fragment

@param number pageNumber
@param number fragmentNumber


198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
# File 'lib/Pdf/text_editor.rb', line 198

def get_segment_count page_number, fragment_number
  begin

    if @filename == ''
      raise 'filename not specified'
    end

    if page_number == ''
      raise 'page number not specified'
    end

    if fragment_number == ''
      raise 'page number not specified'
    end
       
    str_uri = $product_uri + '/pdf/' + @filename + '/pages/' + page_number.to_s + '/fragments/' + fragment_number.to_s       

    str_signed_uri = Aspose::Cloud::Common::Utils.sign(str_uri)        
    response_stream = RestClient.get(str_signed_uri, {:accept=>'application/json'})  

    stream_hash = JSON.parse(response_stream)

    return stream_hash['TextItems']['List'].length                

  rescue Exception=>e
    print e
  end
end

#get_text(page_number = 0) ⇒ Object

Gets raw text from the whole PDF file or a specific page

@param number page_number [optinal]


15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/Pdf/text_editor.rb', line 15

def get_text page_number = 0
  begin

    if @filename == ''
      raise 'filename not specified'
    end

    if page_number > 0
      str_uri = $product_uri + '/pdf/' + @filename + '/pages/' + page_number.to_s + '/textitems'
    else
      str_uri = $product_uri + '/pdf/' + @filename + '/textitems';
    end

    str_signed_uri = Aspose::Cloud::Common::Utils.sign(str_uri)        
    response_stream = RestClient.get(str_signed_uri, {:accept=>'application/json'})  

    stream_hash = JSON.parse(response_stream)
    output_text = ''
    stream_hash['TextItems']['List'].each { |item| output_text.concat(item['Text'])  }

    return output_text        

  rescue Exception=>e
    print e
  end
end

#get_text_format(page_number, fragment_number, segament_number = 0) ⇒ Object

Gets TextFormat of a particular Fragment

@param number page_number 
@param number fragment_number


111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
# File 'lib/Pdf/text_editor.rb', line 111

def get_text_format page_number, fragment_number, segament_number = 0
  begin

    if @filename == ''
      raise 'filename not specified'
    end

    if page_number == ''
      raise 'page number not specified'
    end

    if fragment_number == ''
      raise 'fragment number not specified'
    end

       
    str_uri = $product_uri + '/pdf/' + @filename + '/pages/' + page_number.to_s + '/fragments/' + fragment_number.to_s + (!segament_number.nil? ?  '/segments/' + segament_number.to_s : '') + '/textformat'
    str_signed_uri = Aspose::Cloud::Common::Utils.sign(str_uri)        
    response_stream = RestClient.get(str_signed_uri, {:accept=>'application/json'})  

    stream_hash = JSON.parse(response_stream)

    return stream_hash['TextFormat']

  rescue Exception=>e
    print e
  end
end

#get_text_items(page_number = 0, fragment_number = 0) ⇒ Object

Gets text items from the whole PDF file or a specific page

@param number page_number [optinal]


46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# File 'lib/Pdf/text_editor.rb', line 46

def get_text_items page_number = 0,fragment_number = 0
  begin

    if @filename == ''
      raise 'filename not specified'
    end

    if page_number > 0
      str_uri = $product_uri + '/pdf/' + @filename + '/pages/' + page_number.to_s + '/textitems'
    else
      str_uri = $product_uri + '/pdf/' + @filename + '/textitems';
    end
    if fragment_number > 0
      str_uri = $product_uri + '/pdf/' + @filename + '/fragments/' + fragment_number.to_s + '/textitems'
    else
      str_uri = $product_uri + '/pdf/' + @filename + '/textitems';
    end


    str_signed_uri = Aspose::Cloud::Common::Utils.sign(str_uri)        
    response_stream = RestClient.get(str_signed_uri, {:accept=>'application/json'})  

    stream_hash = JSON.parse(response_stream)

    return stream_hash['TextItems']['List']                

  rescue Exception=>e
    print e
  end
end

#replace_text(old_text, new_text, is_regular_expression = false, page_number = 0) ⇒ Object

Replaces all instances of old text with new text in a PDF file or a particular page

@param string old_text
@param string new_text


145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
# File 'lib/Pdf/text_editor.rb', line 145

def replace_text old_text, new_text, is_regular_expression = false, page_number = 0
  begin

    if @filename == ''
      raise 'filename not specified'
    end

    if old_text == ''
      raise 'old text not specified'
    end

    if new_text == ''
      raise 'new text not specified'
    end        

       
    post_hash = { 'OldValue' => old_text, 'NewValue'=> new_text, 'Regex'=> 'false' }
    json_data = post_hash.to_json    


    if page_number > 0
      str_uri = $product_uri + '/pdf/' + @filename + '/pages/' + page_number.to_s + '/replaceText'
    else
      str_uri = $product_uri + '/pdf/' + @filename + '/replaceText'
    end


    str_signed_uri = Aspose::Cloud::Common::Utils.sign(str_uri)        

    response_stream = RestClient.post(str_signed_uri,json_data,{:accept=>'application/json'})  
       
    valid_output = Aspose::Cloud::Common::Utils.validate_output(response_stream)

    if valid_output == ''
      folder = Aspose::Cloud::AsposeStorage::Folder.new           
      output_stream = folder.get_file(@filename)          
      output_path = $out_put_location + @filename;          
      Aspose::Cloud::Common::Utils.save_file(output_stream,output_path)
      return ''
    else
      return valid_output
    end

  rescue Exception=>e
    print e
  end
end