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.



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

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

Instance Method Details

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

Gets count of the fragments from a particular page

@param number page_number


42
43
44
45
46
47
48
49
# File 'lib/Pdf/text_editor.rb', line 42

def get_fragment_count(page_number, folder_name = '', storage_type = 'Aspose', storage_name = '')
  raise 'page_number not specified.' if page_number.nil?
  str_uri = "#{@base_uri}/pages/#{page_number}/fragments"
  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']['List'].length
end

#get_segment_count(page_number, fragment_number, folder_name = '', storage_type = 'Aspose', storage_name = '') ⇒ Object

Gets count of the segments in a fragment

@param number pageNumber
@param number fragmentNumber


123
124
125
126
127
128
129
130
131
132
# File 'lib/Pdf/text_editor.rb', line 123

def get_segment_count(page_number, fragment_number, folder_name = '', storage_type = 'Aspose', storage_name = '')
  raise 'page_number not specified.' if page_number.nil?
  raise 'fragment_number not specified.' if fragment_number.nil?

  str_uri = "#{@base_uri}/pages/#{page_number}/fragments/#{fragment_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)
  JSON.parse(RestClient.get(signed_str_uri, {:accept=>'application/json'}))['TextItems']['List'].length
end

#get_segment_text_format(page_number, fragment_number, segment_number, folder_name = '', storage_type = 'Aspose', storage_name = '') ⇒ Object

Get Text Format of a Particular Segment

@param number page_number 
@param number fragment_number
@param number segment_number


71
72
73
74
75
76
77
78
79
80
# File 'lib/Pdf/text_editor.rb', line 71

def get_segment_text_format(page_number, fragment_number, segment_number, folder_name = '', storage_type = 'Aspose', storage_name = '')
  raise 'page_number not specified.' if page_number.nil?
  raise 'fragment_number not specified.' if fragment_number.nil?
  raise 'segment_number not specified.' if segment_number.nil?

  str_uri = "#{@base_uri}/pages/#{page_number}/fragments/#{fragment_number}/segments/#{segment_number}/textformat"
  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'}))['TextFormat']
end

#get_text(page_number = 0, folder_name = '', storage_type = 'Aspose', storage_name = '') ⇒ 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
# File 'lib/Pdf/text_editor.rb', line 15

def get_text(page_number = 0, folder_name='', storage_type = 'Aspose', storage_name = '')
  str_uri = "#{@base_uri}/#{ page_number > 0 ? 'pages/' + page_number.to_s + '/' : '' }textitems"
  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 = JSON.parse(RestClient.get(signed_str_uri, {:accept=>'application/json'}))
  output_text = ''
  response['TextItems']['List'].each { |item| output_text.concat(item['Text'])  }
  output_text
end

#get_text_format(page_number, fragment_number, folder_name = '', storage_type = 'Aspose', storage_name = '') ⇒ Object

Gets TextFormat of a particular Fragment

@param number page_number 
@param number fragment_number


56
57
58
59
60
61
62
63
# File 'lib/Pdf/text_editor.rb', line 56

def get_text_format(page_number, fragment_number, folder_name = '', storage_type = 'Aspose', storage_name = '')
  raise 'page_number not specified.' if page_number.nil?
  raise 'fragment_number not specified.' if fragment_number.nil?
  str_uri = "#{@base_uri}/pages/#{page_number}/fragments/#{fragment_number}/textformat"
  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'}))['TextFormat']
end

#get_text_items(page_number, fragment_number, folder_name = '', storage_type = 'Aspose', storage_name = '') ⇒ Object

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

@param number page_number


29
30
31
32
33
34
35
36
# File 'lib/Pdf/text_editor.rb', line 29

def get_text_items(page_number, fragment_number, folder_name = '', storage_type = 'Aspose', storage_name = '')
  raise 'page_number not specified.' if page_number.nil?
  raise 'fragment_number not specified.' if fragment_number.nil?
  str_uri = "#{@base_uri}/pages/#{page_number}/fragments/#{fragment_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)
  JSON.parse(RestClient.get(signed_str_uri, {:accept=>'application/json'}))['TextItems']['List']
end

#replace_multiple_text(str_xml, page_number = 0, folder_name = '', storage_type = 'Aspose', storage_name = '') ⇒ Object

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

@param string str_xml Data in XML format.
@param number page_number Number of the page.


106
107
108
109
110
111
112
113
114
115
116
# File 'lib/Pdf/text_editor.rb', line 106

def replace_multiple_text(str_xml, page_number = 0, folder_name = '', storage_type = 'Aspose', storage_name = '')
  raise 'str_xml not specified.' if str_xml.empty?

  str_uri = page_number > 0 ? "#{@base_uri}/pages/#{page_number}/replaceTextList" : "#{@base_uri}/replaceTextList"
  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 = Aspose::Cloud::Common::Utils.process_command(signed_str_uri,'POST','XML',str_xml)
  json = JSON.parse(response)
  json['Status'] == 'OK' ? true : false
end

#replace_text(old_text, new_text, is_regular_expression = false, page_number = 0, folder_name = '', storage_type = 'Aspose', storage_name = '') ⇒ 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


87
88
89
90
91
92
93
94
95
96
97
98
99
# File 'lib/Pdf/text_editor.rb', line 87

def replace_text(old_text, new_text, is_regular_expression = false, page_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?

  json_data = { 'OldValue' => old_text, 'NewValue'=> new_text, 'Regex'=> is_regular_expression }.to_json
  str_uri = page_number > 0 ? "#{@base_uri}/pages/#{page_number}/replaceText" : "#{@base_uri}/replaceText"
  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,json_data,{ :content_type => 'application/json', :accept => 'application/json' })
  valid_output = Aspose::Cloud::Common::Utils.validate_output(response_stream)
  valid_output.empty? ? true : valid_output
end