test_kaferi_cloud 2.0.3 → 2.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (110) hide show
  1. checksums.yaml +4 -4
  2. data/.swagger-codegen-ignore +1 -1
  3. data/README.md +33 -19
  4. data/lib/test_kaferi_cloud/version.rb +1 -1
  5. data/test/pdf_tests.rb +1268 -0
  6. data/test_data/33539.jpg +0 -0
  7. data/test_data/44781.jpg +0 -0
  8. data/test_data/4pages.pdf +0 -0
  9. data/test_data/BlankWithSignature.pdf +0 -0
  10. data/test_data/Hello_world.pdf +0 -0
  11. data/test_data/HtmlExample1.html +27 -0
  12. data/test_data/Koala.jpg +0 -0
  13. data/test_data/PdfWithAcroForm.pdf +321 -0
  14. data/test_data/PdfWithAnnotations.pdf +720 -1
  15. data/test_data/PdfWithBookmarks.pdf +0 -0
  16. data/test_data/PdfWithEmbeddedFiles.pdf +0 -0
  17. data/test_data/PdfWithImages2.pdf +0 -0
  18. data/test_data/PdfWithLinks.pdf +0 -0
  19. data/test_data/Penguins.jpg +0 -0
  20. data/test_data/butterfly.jpg +0 -0
  21. data/test_data/marketing.pdf +0 -0
  22. data/test_data/rusdoc.pdf +0 -0
  23. data/test_data/test1234.pfx +0 -0
  24. metadata +22 -88
  25. data/.swagger-codegen/VERSION +0 -1
  26. data/spec/api/pdf_api_spec.rb +0 -956
  27. data/spec/api_client_spec.rb +0 -235
  28. data/spec/configuration_spec.rb +0 -51
  29. data/spec/models/annotation_response_spec.rb +0 -63
  30. data/spec/models/annotation_spec.rb +0 -87
  31. data/spec/models/annotations_response_spec.rb +0 -63
  32. data/spec/models/annotations_spec.rb +0 -57
  33. data/spec/models/append_document_spec.rb +0 -63
  34. data/spec/models/attachment_response_spec.rb +0 -63
  35. data/spec/models/attachment_spec.rb +0 -93
  36. data/spec/models/attachments_response_spec.rb +0 -63
  37. data/spec/models/attachments_spec.rb +0 -57
  38. data/spec/models/bookmarks_response_spec.rb +0 -63
  39. data/spec/models/bookmarks_spec.rb +0 -57
  40. data/spec/models/color_spec.rb +0 -69
  41. data/spec/models/document_pages_response_spec.rb +0 -63
  42. data/spec/models/document_properties_response_spec.rb +0 -63
  43. data/spec/models/document_properties_spec.rb +0 -57
  44. data/spec/models/document_property_response_spec.rb +0 -63
  45. data/spec/models/document_property_spec.rb +0 -69
  46. data/spec/models/document_response_spec.rb +0 -69
  47. data/spec/models/document_spec.rb +0 -63
  48. data/spec/models/document_text_replace_response_spec.rb +0 -69
  49. data/spec/models/field_response_spec.rb +0 -63
  50. data/spec/models/field_spec.rb +0 -81
  51. data/spec/models/field_type_spec.rb +0 -45
  52. data/spec/models/fields_response_spec.rb +0 -63
  53. data/spec/models/fields_spec.rb +0 -57
  54. data/spec/models/font_styles_spec.rb +0 -45
  55. data/spec/models/horizontal_alignment_spec.rb +0 -45
  56. data/spec/models/http_status_code_spec.rb +0 -45
  57. data/spec/models/image_response_spec.rb +0 -63
  58. data/spec/models/image_spec.rb +0 -63
  59. data/spec/models/images_list_request_spec.rb +0 -51
  60. data/spec/models/images_response_spec.rb +0 -63
  61. data/spec/models/images_spec.rb +0 -57
  62. data/spec/models/line_spacing_spec.rb +0 -45
  63. data/spec/models/link_action_type_spec.rb +0 -45
  64. data/spec/models/link_annotation_response_spec.rb +0 -63
  65. data/spec/models/link_annotation_spec.rb +0 -75
  66. data/spec/models/link_annotations_response_spec.rb +0 -63
  67. data/spec/models/link_annotations_spec.rb +0 -57
  68. data/spec/models/link_element_spec.rb +0 -51
  69. data/spec/models/link_highlighting_mode_spec.rb +0 -45
  70. data/spec/models/link_spec.rb +0 -69
  71. data/spec/models/merge_documents_spec.rb +0 -51
  72. data/spec/models/optimize_options_spec.rb +0 -87
  73. data/spec/models/page_spec.rb +0 -69
  74. data/spec/models/page_text_replace_response_spec.rb +0 -69
  75. data/spec/models/page_word_count_spec.rb +0 -57
  76. data/spec/models/pages_spec.rb +0 -57
  77. data/spec/models/paragraph_spec.rb +0 -117
  78. data/spec/models/rectangle_spec.rb +0 -69
  79. data/spec/models/rotation_spec.rb +0 -45
  80. data/spec/models/saa_spose_response_spec.rb +0 -57
  81. data/spec/models/segment_spec.rb +0 -57
  82. data/spec/models/signature_spec.rb +0 -123
  83. data/spec/models/signature_type_spec.rb +0 -45
  84. data/spec/models/split_result_document_spec.rb +0 -75
  85. data/spec/models/split_result_response_spec.rb +0 -63
  86. data/spec/models/split_result_spec.rb +0 -51
  87. data/spec/models/stamp_spec.rb +0 -177
  88. data/spec/models/stamp_type_spec.rb +0 -45
  89. data/spec/models/text_format_response_spec.rb +0 -63
  90. data/spec/models/text_format_spec.rb +0 -69
  91. data/spec/models/text_horizontal_alignment_spec.rb +0 -45
  92. data/spec/models/text_item_response_spec.rb +0 -63
  93. data/spec/models/text_item_spec.rb +0 -63
  94. data/spec/models/text_items_response_spec.rb +0 -63
  95. data/spec/models/text_items_spec.rb +0 -57
  96. data/spec/models/text_line_spec.rb +0 -57
  97. data/spec/models/text_rect_spec.rb +0 -63
  98. data/spec/models/text_rects_response_spec.rb +0 -63
  99. data/spec/models/text_rects_spec.rb +0 -51
  100. data/spec/models/text_replace_list_request_spec.rb +0 -69
  101. data/spec/models/text_replace_request_spec.rb +0 -81
  102. data/spec/models/text_replace_response_spec.rb +0 -63
  103. data/spec/models/text_replace_spec.rb +0 -75
  104. data/spec/models/text_state_spec.rb +0 -75
  105. data/spec/models/tiff_export_options_spec.rb +0 -141
  106. data/spec/models/vertical_alignment_spec.rb +0 -45
  107. data/spec/models/word_count_response_spec.rb +0 -63
  108. data/spec/models/word_count_spec.rb +0 -51
  109. data/spec/models/wrap_mode_spec.rb +0 -45
  110. data/spec/spec_helper.rb +0 -120
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 007d3707d962bb8d8361175e6011e7989e5426b32adf0b65299a6803c453ead5
4
- data.tar.gz: dbab5003b0004f621005ee358f5c30fc14b990f889bfe02702382601f0d51d3d
3
+ metadata.gz: 5df0e3b306a743fdd1deecdf863a1b7164559e20f77ceb71a1ef2250a057747d
4
+ data.tar.gz: 5f6e9a85f8044149e85ba1534f6391b56f98ac83c30cb77af0671bb8d6243c58
5
5
  SHA512:
6
- metadata.gz: 15708441d0587fe86baaf6737f3b444ddf9b20aa3895b9a37867c68968b3dde99e2c1b9ce4587efedb8c1eae919eaddca3f5258a4769dffa0b320bd3b7e8c072
7
- data.tar.gz: acc9a0ad819d2dec6fe1e42a892f84e50205ed9012d5ca751a48a628e305ea7a189be3874db4b82bb36b0c152f7e27757b032476edfd1c16d696948eef2a886b
6
+ metadata.gz: 9918c0625269f9226e627fa972ffd519608270b34a09a668055d3cc2c0a283ff4b8b4cd3ba3e990dcfd6b9c72a48eeb5563df90a2ece6f69940b0337c02ebe81
7
+ data.tar.gz: a6f5d9529b2c5f169c9a29d853c3649e97a297a9e5cb1446504885541fef6ef2953cd72d475e16f35ee40bc235d9d719747f140db7ad4f93f85aed3dc9df1030
@@ -29,7 +29,7 @@
29
29
  .gitignore
30
30
  *.md
31
31
  docs/*
32
- #spec/**
32
+ spec/**
33
33
  #spec/api/*
34
34
  #spec/models/*
35
35
 
data/README.md CHANGED
@@ -5,25 +5,39 @@ Our Cloud SDKs are wrappers around REST API in various programming languages, al
5
5
 
6
6
  These SDKs are now fully supported. If you have any questions, see any bugs or have enhancement request, feel free to reach out to us at [Free Support Forums](https://forum.aspose.cloud/c/pdf).
7
7
 
8
- # Currently Available SDKs
9
-
10
- The following SDKs are currently available:
11
-
12
- Directory | Description
13
- --------- | -----------
14
- [.NET SDK](SDKs/NET) | Aspose.Pdf for Cloud .NET SDK
15
- [ruby SDK](SDKs/ruby) | Aspose.Pdf for Cloud .NET SDK
16
-
17
- To use these SDKs, you will need App SID and App Key which can be looked up at [Aspose Cloud Dashboard](https://dashboard.aspose.cloud/#/apps) (free registration in Aspose Cloud is required for this).
18
-
19
- # Comparison with Old generation SDKs
20
- New SDKs have the following advantages over the [previous versions](https://github.com/aspose-pdf/Aspose.Pdf-for-Cloud):
21
- + SDK is fully in sync with the API, all missing methods are added
22
- + Classes, methods and properties have comments and are IDE-friendly
23
- + Better security
24
- + Usage of Request/Response classes to represent long lists of parameters. This allows for cleaner code and easier backwards-compatibility going forward
25
-
26
- New SDKs are not backwards compatible with previous generation because of the last item. It should be straightforward to convert your code to using Request/Response objects, if you need any help on migration please ask at [Free Support Forums](https://forum.aspose.cloud/c/pdf).
8
+ ## Usage
9
+ APIs of this SDK can be called as follows:
10
+
11
+ ```ruby
12
+ require 'aspose_storage_cloud'
13
+ require 'aspose_pdf_cloud'
14
+
15
+ class AsposePDFUsage
16
+
17
+ include AsposePDFCloud
18
+ include AsposeStorageCloud
19
+
20
+ def initialize
21
+ #Get App key and App SID from https://cloud.aspose.com
22
+ AsposeApp.app_key_and_sid("APP_KEY", "APP_SID")
23
+ @pdf_api = PdfApi.new
24
+ end
25
+
26
+ def get_page_annotations
27
+ file_name = 'PdfWithAnnotations.pdf'
28
+
29
+ page_number = 2
30
+ opts = {
31
+ :folder => 'tempFolder'
32
+ }
33
+
34
+ response = @pdf_api.get_page_annotations(file_name, page_number, opts)
35
+ end
36
+
37
+ end
38
+ ```
39
+ ## Unit Tests
40
+ Aspose PDF SDK includes a suite of unit tests within the "test" subdirectory. These Unit Tests also serves as examples of how to use the Aspose PDF SDK.
27
41
 
28
42
  # Licensing
29
43
  All Aspose.Pdf for Cloud SDKs are licensed under [MIT License](LICENSE).
@@ -20,5 +20,5 @@ SOFTWARE.
20
20
  =end
21
21
 
22
22
  module TestKaferiCloud
23
- VERSION = "2.0.3"
23
+ VERSION = "2.0.4"
24
24
  end
@@ -0,0 +1,1268 @@
1
+ =begin
2
+ --------------------------------------------------------------------------------------------------------------------
3
+ Copyright (c) 2018 Aspose.Pdf for Cloud
4
+ Permission is hereby granted, free of charge, to any person obtaining a copy
5
+ of this software and associated documentation files (the "Software"), to deal
6
+ in the Software without restriction, including without limitation the rights
7
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
+ copies of the Software, and to permit persons to whom the Software is
9
+ furnished to do so, subject to the following conditions:
10
+ The above copyright notice and this permission notice shall be included in all
11
+ copies or substantial portions of the Software.
12
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
13
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
14
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
15
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
16
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
17
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
18
+ SOFTWARE.
19
+ --------------------------------------------------------------------------------------------------------------------
20
+ =end
21
+
22
+ require 'minitest/autorun'
23
+ require 'minitest/unit'
24
+ require 'aspose_storage_cloud'
25
+
26
+ require_relative '../lib/aspose_pdf_cloud'
27
+
28
+ class PdfTests < Minitest::Test
29
+ include MiniTest::Assertions
30
+ include AsposePdfCloud
31
+ include AsposeStorageCloud
32
+
33
+
34
+ def setup
35
+ # Get App key and App SID from https://cloud.aspose.com
36
+ AsposeApp.app_key_and_sid('', '')
37
+
38
+ @pdf_api = PdfApi.new
39
+ @storage_api = StorageApi.new
40
+ @storage_api.api_client.host = 'http://api-dev.aspose.cloud/v1.1'
41
+
42
+ @temp_folder = 'TempPdf'
43
+ @test_data_folder = '../test_data/'
44
+
45
+ config = @pdf_api.api_client.config
46
+ config.host = 'api-dev.aspose.cloud'
47
+ config.scheme = 'http'
48
+ end
49
+
50
+
51
+ def teardown
52
+ end
53
+
54
+
55
+ def upload_file(file_name)
56
+ response = @storage_api.put_create(@temp_folder + '/' + file_name, File.open(@test_data_folder + file_name, 'r') { |io| io.read(io.size) } )
57
+ assert(response, "Failed to upload #{file_name} file.")
58
+ end
59
+
60
+
61
+ # Annotations Tests
62
+
63
+ def test_get_page_annotations
64
+ file_name = 'PdfWithAnnotations.pdf'
65
+ upload_file(file_name)
66
+
67
+ page_number = 2
68
+ opts = {
69
+ :folder => @temp_folder
70
+ }
71
+
72
+ response = @pdf_api.get_page_annotations(file_name, page_number, opts)
73
+ assert(response, 'Failed to read document page annotations.')
74
+ end
75
+
76
+
77
+ # Append Tests
78
+
79
+ def test_post_append_document_using_query_params
80
+ file_name = 'PdfWithImages2.pdf'
81
+ append_file_name = '4pages.pdf'
82
+
83
+ upload_file(file_name)
84
+ upload_file(append_file_name)
85
+
86
+ opts = {
87
+ :append_file => append_file_name,
88
+ :startPage => 2,
89
+ :endPage => 4,
90
+ :folder => @temp_folder
91
+ }
92
+
93
+ response = @pdf_api.post_append_document(file_name, opts)
94
+ assert(response, 'Failed to append document to existing one.')
95
+ end
96
+
97
+
98
+ def test_post_append_document_using_body_params
99
+ file_name = 'PdfWithImages2.pdf'
100
+ append_file_name = '4pages.pdf'
101
+
102
+ upload_file(file_name)
103
+ upload_file(append_file_name)
104
+
105
+ append_document = AppendDocument.new
106
+ append_document.document = append_file_name
107
+ append_document.start_page = 2
108
+ append_document.end_page = 4
109
+
110
+ opts = {
111
+ :append_document => append_document,
112
+ :folder => @temp_folder
113
+ }
114
+
115
+ response = @pdf_api.post_append_document(file_name, opts)
116
+ assert(response, 'Failed to append document to existing one.')
117
+ end
118
+
119
+
120
+ # Attachments Tests
121
+
122
+ def test_get_document_attachment_by_index
123
+ file_name = 'PdfWithEmbeddedFiles.pdf'
124
+ upload_file(file_name)
125
+
126
+ attachment_index = 1
127
+ opts = {
128
+ :folder => @temp_folder
129
+ }
130
+
131
+ response = @pdf_api.get_document_attachment_by_index(file_name, attachment_index, opts)
132
+ assert(response, 'Failed to read document attachment info by its index')
133
+ end
134
+
135
+
136
+ def test_get_document_attachments
137
+ file_name = 'PdfWithEmbeddedFiles.pdf'
138
+ upload_file(file_name)
139
+
140
+ opts = {
141
+ :folder => @temp_folder
142
+ }
143
+
144
+ response = @pdf_api.get_document_attachments(file_name, opts)
145
+ assert(response, 'Failed to read document attachments info.')
146
+ end
147
+
148
+
149
+ def test_get_download_document_attachment_by_index
150
+ file_name = 'PdfWithEmbeddedFiles.pdf'
151
+ upload_file(file_name)
152
+
153
+ attachment_index = 1
154
+ opts = {
155
+ :folder => @temp_folder
156
+ }
157
+
158
+ response = @pdf_api.get_download_document_attachment_by_index(file_name, attachment_index, opts)
159
+ assert(response, 'Failed to download document attachment content by its index.')
160
+ end
161
+
162
+
163
+ # Bookmarks Tests
164
+
165
+ def test_get_document_bookmarks
166
+ file_name = 'PdfWithBookmarks.pdf'
167
+ upload_file(file_name)
168
+
169
+ opts = {
170
+ :folder => @temp_folder
171
+ }
172
+
173
+ response = @pdf_api.get_document_bookmarks(file_name, opts)
174
+ assert(response, 'Failed to read document bookmarks.')
175
+ end
176
+
177
+
178
+ # Document Save As Tiff Tests
179
+
180
+ def test_put_document_save_as_tiff_using_query_params
181
+ file_name = '4pages.pdf'
182
+ upload_file(file_name)
183
+
184
+ opts = {
185
+ :result_file => '4pages.tiff',
186
+ :brightness => 0.6,
187
+ :compression => 'Ccitt4',
188
+ :color_depth => 'format1bpp',
189
+ :left_margin => 0,
190
+ :right_margin => 0,
191
+ :top_margin => 0,
192
+ :bottom_margin => 0,
193
+ :orientation => 'portait', # Yes, we know 'portrait'. It will be fixed in the next version.
194
+ :skip_blank_pages => true,
195
+ :width => 1200,
196
+ :height => 1600,
197
+ :x_resolution => 200,
198
+ :y_resolution => 200,
199
+ :page_index => 2,
200
+ :page_count=> 2,
201
+ :folder => @temp_folder
202
+ }
203
+
204
+ response = @pdf_api.put_document_save_as_tiff(file_name, opts)
205
+ assert(response, 'Failed to save document as Tiff image')
206
+ end
207
+
208
+
209
+ def test_put_document_save_as_tiff_using_body_params
210
+ file_name = '4pages.pdf'
211
+ upload_file(file_name)
212
+
213
+ export_options = TiffExportOptions.new
214
+ export_options.result_file = '4pages.tiff'
215
+ export_options.brightness = 0.6
216
+ export_options.compression = 'Ccitt4'
217
+ export_options.color_depth = 'format1bpp'
218
+ export_options.left_margin = 0
219
+ export_options.right_margin = 0
220
+ export_options.top_margin = 0
221
+ export_options.bottom_margin = 0
222
+ export_options.orientation = 'portait' # Yes, we know 'portrait'. It will be fixed in the next version.
223
+ export_options.skip_blank_pages = true
224
+ export_options.width = 1200
225
+ export_options.height = 1600
226
+ export_options.x_resolution = 200
227
+ export_options.y_resolution = 200
228
+ export_options.page_index = 2
229
+ export_options.page_count = 2
230
+
231
+ opts = {
232
+ :export_options => export_options,
233
+ :folder => @temp_folder
234
+ }
235
+
236
+ response = @pdf_api.put_document_save_as_tiff(file_name, opts)
237
+ assert(response, 'Failed to save document as Tiff image')
238
+ end
239
+
240
+
241
+ # Document Tests
242
+
243
+ def test_get_document
244
+ file_name = '4pages.pdf'
245
+ upload_file(file_name)
246
+
247
+ opts = {
248
+ :folder => @temp_folder
249
+ }
250
+
251
+ response = @pdf_api.get_document(file_name, opts)
252
+ assert(response, 'Failed to read common document info.')
253
+ end
254
+
255
+
256
+ def test_post_optimize_document
257
+ file_name = '4pages.pdf'
258
+ upload_file(file_name)
259
+
260
+ optimize_options = OptimizeOptions.new
261
+ optimize_options.allow_reuse_page_content = false
262
+ optimize_options.compress_images = true
263
+ optimize_options.image_quality = 100
264
+ optimize_options.link_duplcate_streams = true
265
+ optimize_options.remove_unused_objects = true
266
+ optimize_options.remove_unused_streams = true
267
+ optimize_options.unembed_fonts = true
268
+
269
+ opts = {
270
+ :options => optimize_options,
271
+ :folder => @temp_folder
272
+ }
273
+
274
+ response = @pdf_api.post_optimize_document(file_name, opts)
275
+ assert(response, 'Failed to optimize document.')
276
+ end
277
+
278
+
279
+ def test_post_split_document
280
+ file_name = '4pages.pdf'
281
+ upload_file(file_name)
282
+
283
+ opts = {
284
+ :folder => @temp_folder
285
+ }
286
+ response = @pdf_api.post_split_document(file_name, opts)
287
+ assert(response, 'Failed to split document to parts.')
288
+ end
289
+
290
+
291
+ def test_put_convert_document
292
+ url = 'http://pdf995.com/samples/pdf.pdf'
293
+ format = 'tiff'
294
+
295
+ opts = {
296
+ :format => format,
297
+ :url => url
298
+ }
299
+
300
+ response = @pdf_api.put_convert_document(opts)
301
+ assert(response, 'Failed to convert document from request content to format specified')
302
+ end
303
+
304
+
305
+ def test_put_create_empty_document
306
+ file_name = 'empty.pdf'
307
+
308
+ opts = {
309
+ :folder => @temp_folder
310
+ }
311
+
312
+ response = @pdf_api.put_create_document(file_name, opts)
313
+ assert(response, 'Failed to create new document')
314
+ end
315
+
316
+
317
+ def test_put_create_document
318
+ file_name = 'HtmlExample1.pdf'
319
+ template_name = 'HtmlExample1.html'
320
+
321
+ upload_file(template_name)
322
+
323
+ opts = {
324
+ :template_file => @temp_folder + '/' + template_name,
325
+ :template_type => 'html',
326
+ :folder => @temp_folder
327
+ }
328
+
329
+ response = @pdf_api.put_create_document(file_name, opts)
330
+ assert(response, 'Failed to create document from HTML template.')
331
+ end
332
+
333
+
334
+ def test_put_create_document_from_images
335
+ image_1 = '33539.jpg'
336
+ upload_file(image_1)
337
+
338
+ image_2 = '44781.jpg'
339
+ upload_file(image_2)
340
+
341
+ result_doc_name = 'pdffromimagesinquery.pdf'
342
+
343
+ images = ImagesListRequest.new
344
+ images.images_list = [ @temp_folder + '/' + image_1, @temp_folder + '/' + image_2]
345
+
346
+ opts = {
347
+ :images => images,
348
+ :ocr => false,
349
+ :folder => @temp_folder
350
+ }
351
+
352
+ response = @pdf_api.put_create_document_from_images(result_doc_name, opts)
353
+ assert(response, 'Failed to create document from Images.')
354
+ end
355
+
356
+ # Fields Tests
357
+
358
+ def test_get_field
359
+ file_name = 'PdfWithAcroForm.pdf'
360
+ upload_file(file_name)
361
+
362
+ opts = {
363
+ :folder => @temp_folder
364
+ }
365
+ field_name = 'textField'
366
+
367
+ response = @pdf_api.get_field(file_name, field_name, opts)
368
+ assert(response, 'Failed to get document field by name.')
369
+ end
370
+
371
+
372
+ def test_get_fields
373
+ file_name = 'PdfWithAcroForm.pdf'
374
+ upload_file(file_name)
375
+
376
+ opts = {
377
+ :folder => @temp_folder
378
+ }
379
+
380
+ response = @pdf_api.get_fields(file_name, opts)
381
+ assert(response, 'Failed to get document fields.')
382
+ end
383
+
384
+
385
+ def test_post_create_field
386
+ file_name = 'Hello_world.pdf'
387
+ upload_file(file_name)
388
+
389
+ rect = Rectangle.new
390
+ rect.x = 50
391
+ rect.y = 200
392
+ rect.width = 150
393
+ rect.height = 200
394
+
395
+ field = Field.new
396
+ field.name = 'checkboxfield'
397
+ field.values = ['1']
398
+ field.type = 'Boolean'
399
+ field.rect = rect
400
+
401
+ page_number = 1
402
+
403
+ opts = {
404
+ :field => field,
405
+ :folder => @temp_folder
406
+ }
407
+
408
+ response = @pdf_api.post_create_field(file_name, page_number, opts)
409
+ assert(response, 'Failed to create field.')
410
+ end
411
+
412
+
413
+ def test_put_update_field
414
+ file_name = 'PdfWithAcroForm.pdf'
415
+ upload_file(file_name)
416
+
417
+ field_name = 'textField'
418
+
419
+ field = Field.new
420
+ field.name = field_name
421
+ field.values = ['Text field updated value.']
422
+ field.type = FieldType::TEXT
423
+
424
+ opts = {
425
+ :field => field,
426
+ :folder => @temp_folder
427
+ }
428
+
429
+ response = @pdf_api.put_update_field(file_name, field_name, opts)
430
+ assert(response, 'Failed to update fields.')
431
+ end
432
+
433
+
434
+ # Fragments And Segments Tests
435
+
436
+ def test_get_fragment
437
+ file_name = '4pages.pdf'
438
+ upload_file(file_name)
439
+
440
+ page_number = 1
441
+ fragment_number = 1
442
+
443
+ opts = {
444
+ :folder => @temp_folder
445
+ }
446
+
447
+ response = @pdf_api.get_fragment(file_name, page_number, fragment_number, opts)
448
+ assert(response, 'Failed to read page fragment.')
449
+ end
450
+
451
+ def test_get_fragment_text_format
452
+ file_name = '4pages.pdf'
453
+ upload_file(file_name)
454
+
455
+ page_number = 1
456
+ fragment_number = 1
457
+
458
+ opts = {
459
+ :folder => @temp_folder
460
+ }
461
+
462
+ response = @pdf_api.get_fragment_text_format(file_name, page_number, fragment_number, opts)
463
+ assert(response, 'Failed to read page fragment text format.')
464
+ end
465
+
466
+
467
+ def test_get_fragments
468
+ file_name = '4pages.pdf'
469
+ upload_file(file_name)
470
+
471
+ page_number = 1
472
+
473
+ opts = {
474
+ :folder => @temp_folder
475
+ }
476
+ response = @pdf_api.get_fragments(file_name, page_number, opts)
477
+ assert(response, 'Failed to read page fragments.')
478
+ end
479
+
480
+
481
+ def test_get_segment
482
+ file_name = '4pages.pdf'
483
+ upload_file(file_name)
484
+
485
+ page_number = 1
486
+ fragment_number = 1
487
+ segment_number = 1
488
+
489
+ opts = {
490
+ :folder => @temp_folder
491
+ }
492
+
493
+ response = @pdf_api.get_segment(file_name, page_number, fragment_number, segment_number, opts)
494
+ assert(response, 'Failed to read segment.')
495
+ end
496
+
497
+
498
+ def test_get_segment_text_format
499
+ file_name = '4pages.pdf'
500
+ upload_file(file_name)
501
+
502
+ page_number = 1
503
+ fragment_number = 1
504
+ segment_number = 1
505
+
506
+ opts = {
507
+ :folder => @temp_folder
508
+ }
509
+
510
+ response = @pdf_api.get_segment_text_format(file_name, page_number, fragment_number, segment_number, opts)
511
+ assert(response, 'Failed to read segment text format.')
512
+ end
513
+
514
+
515
+ def test_get_segments
516
+ file_name = '4pages.pdf'
517
+ upload_file(file_name)
518
+
519
+ page_number = 1
520
+ fragment_number = 1
521
+
522
+ opts = {
523
+ :folder => @temp_folder
524
+ }
525
+
526
+ response = @pdf_api.get_segments(file_name, page_number, fragment_number, opts)
527
+ assert(response, 'Failed to read fragment segments.')
528
+ end
529
+
530
+
531
+ # Images Tests
532
+
533
+ def test_get_image
534
+ file_name = 'PdfWithImages2.pdf'
535
+ upload_file(file_name)
536
+
537
+ page_number = 1
538
+ image_number = 1
539
+ opts = {
540
+ :folder => @temp_folder
541
+ }
542
+
543
+ response = @pdf_api.get_image(file_name, page_number, image_number, opts)
544
+ assert(response, 'Failed to read document image by number.')
545
+ end
546
+
547
+
548
+ def test_get_images
549
+ file_name = 'PdfWithImages2.pdf'
550
+ upload_file(file_name)
551
+
552
+ page_number = 1
553
+ opts = {
554
+ :folder => @temp_folder
555
+ }
556
+
557
+ response = @pdf_api.get_images(file_name, page_number, opts)
558
+ assert(response, 'Failed to read document images.')
559
+ end
560
+
561
+
562
+ def test_post_replace_image
563
+ file_name = 'PdfWithImages2.pdf'
564
+ upload_file(file_name)
565
+
566
+ image_file_name = 'Koala.jpg'
567
+ upload_file(image_file_name)
568
+
569
+ page_number = 1
570
+ image_number = 1
571
+ opts = {
572
+ :image_file => @temp_folder + '/' + image_file_name,
573
+ :folder => @temp_folder
574
+ }
575
+
576
+ response = @pdf_api.post_replace_image(file_name, page_number, image_number, opts)
577
+ assert(response, 'Failed to replace document image.')
578
+ end
579
+
580
+
581
+ # Links Tests
582
+
583
+ def test_get_page_link_annotation_by_index
584
+ file_name = 'PdfWithLinks.pdf'
585
+ upload_file(file_name)
586
+
587
+ page_number = 1
588
+ link_index = 1
589
+ opts = {
590
+ :folder => @temp_folder
591
+ }
592
+
593
+ response = @pdf_api.get_page_link_annotation_by_index(file_name, page_number, link_index, opts)
594
+ assert(response, 'Failed to read document page link annotation by its index.')
595
+ end
596
+
597
+ def test_get_page_link_annotations
598
+ file_name = 'PdfWithLinks.pdf'
599
+ upload_file(file_name)
600
+
601
+ page_number = 1
602
+ opts = {
603
+ :folder => @temp_folder
604
+ }
605
+
606
+ response = @pdf_api.get_page_link_annotations(file_name, page_number, opts)
607
+ assert(response, 'Failed to read document page link annotations.')
608
+ end
609
+
610
+
611
+ # Merge Tests
612
+
613
+ def test_put_merge_documents
614
+ file_name_list = ['4pages.pdf', 'PdfWithImages2.pdf', 'marketing.pdf']
615
+ file_name_list.each { |file_name| upload_file(file_name)}
616
+
617
+ result_name = 'MergingResult.pdf'
618
+
619
+ merge_documents = MergeDocuments.new
620
+ merge_documents.list = file_name_list
621
+
622
+ opts = {
623
+ :merge_documents => merge_documents,
624
+ :folder => @temp_folder
625
+ }
626
+
627
+ response = @pdf_api.put_merge_documents(result_name, opts)
628
+ assert(response, 'Failed to merge a list of documents')
629
+ end
630
+
631
+
632
+ # Pages Tests
633
+
634
+ def test_delete_page
635
+ file_name = '4pages.pdf'
636
+ upload_file(file_name)
637
+
638
+ page_number = 1
639
+ opts = {
640
+ :folder => @temp_folder
641
+ }
642
+
643
+ response = @pdf_api.delete_page(file_name, page_number, opts)
644
+ assert(response, 'Failed to delete document page by its number.')
645
+ end
646
+
647
+
648
+ def test_get_page
649
+ file_name = '4pages.pdf'
650
+ upload_file(file_name)
651
+
652
+ page_number = 3
653
+ opts = {
654
+ :folder => @temp_folder
655
+ }
656
+
657
+ response = @pdf_api.get_page(file_name, page_number, opts)
658
+ assert(response, 'Failed to get document page by its number.')
659
+ end
660
+
661
+
662
+ def test_get_pages
663
+ file_name = '4pages.pdf'
664
+ upload_file(file_name)
665
+
666
+ opts = {
667
+ :folder => @temp_folder
668
+ }
669
+
670
+ response = @pdf_api.get_pages(file_name, opts)
671
+ assert(response, 'Failed to read document pages info.')
672
+ end
673
+
674
+
675
+ def test_get_words_per_page
676
+ file_name = '4pages.pdf'
677
+ upload_file(file_name)
678
+
679
+ opts = {
680
+ :folder => @temp_folder
681
+ }
682
+
683
+ response = @pdf_api.get_words_per_page(file_name, opts)
684
+ assert(response, 'Failed to get number of words per document page.')
685
+ end
686
+
687
+
688
+ def test_post_move_page
689
+ file_name = '4pages.pdf'
690
+ upload_file(file_name)
691
+
692
+ opts = {
693
+ :folder => @temp_folder
694
+ }
695
+ page_number = 1
696
+ new_index = 1
697
+
698
+ response = @pdf_api.post_move_page(file_name, page_number, new_index, opts)
699
+ assert(response, 'Failed to move page to new position.')
700
+ end
701
+
702
+
703
+ def test_put_add_new_page
704
+ file_name = '4pages.pdf'
705
+ upload_file(file_name)
706
+
707
+ opts = {
708
+ :folder => @temp_folder
709
+ }
710
+
711
+ response = @pdf_api.put_add_new_page(file_name, opts)
712
+ assert(response, 'Failed to add new page to end of the document.')
713
+ end
714
+
715
+ def test_put_page_add_stamp
716
+ file_name = '4pages.pdf'
717
+ upload_file(file_name)
718
+
719
+ stamp_file_name = 'Penguins.jpg'
720
+ upload_file(stamp_file_name)
721
+
722
+ page_number = 1
723
+
724
+ stamp = Stamp.new
725
+ stamp.type = StampType::IMAGE
726
+ stamp.file_name = @temp_folder + '/' + stamp_file_name
727
+ stamp.background = true
728
+ stamp.width = 200
729
+ stamp.height = 200
730
+ stamp.x_indent = 100
731
+ stamp.y_indent = 100
732
+
733
+ opts = {
734
+ :folder => @temp_folder
735
+ }
736
+
737
+ response = @pdf_api.put_page_add_stamp(file_name, page_number, stamp, opts)
738
+ assert(response, 'Failed to add page stamp.')
739
+ end
740
+
741
+
742
+ # Paragraphs Tests
743
+
744
+ def test_put_add_text
745
+ file_name = '4pages.pdf'
746
+ upload_file(file_name)
747
+
748
+ page_number = 1
749
+
750
+ rectangle = Rectangle.new
751
+ rectangle.x = 100
752
+ rectangle.y = 100
753
+ rectangle.width = 200
754
+ rectangle.height = 200
755
+
756
+ foreground_color = Color.new
757
+ foreground_color.a = 0x00
758
+ foreground_color.r = 0x00
759
+ foreground_color.g = 0xFF
760
+ foreground_color.b = 0x00
761
+
762
+ background_color = Color.new
763
+ background_color.a = 0x00
764
+ background_color.r = 0xFF
765
+ background_color.g = 0x00
766
+ background_color.b = 0x00
767
+
768
+ text_state = TextState.new
769
+ text_state.font = 'Arial'
770
+ text_state.font_size = 10
771
+ text_state.foreground_color = foreground_color
772
+ text_state.background_color = background_color
773
+ text_state.font_style = FontStyles::BOLD
774
+
775
+ segment = Segment.new
776
+ segment.value = 'segment 1'
777
+ segment.text_state = text_state
778
+
779
+ text_line = TextLine.new
780
+ text_line.horizontal_alignment = TextHorizontalAlignment::RIGHT
781
+ text_line.segments = [segment]
782
+
783
+ paragraph = Paragraph.new
784
+ paragraph.rectangle = rectangle
785
+ paragraph.left_margin = 10
786
+ paragraph.right_margin = 10
787
+ paragraph.top_margin = 20
788
+ paragraph.bottom_margin = 20
789
+ paragraph.horizontal_alignment = TextHorizontalAlignment::FULL_JUSTIFY
790
+ paragraph.line_spacing = LineSpacing::FONT_SIZE
791
+ paragraph.rotation = 10
792
+ paragraph.subsequent_lines_indent = 20
793
+ paragraph.vertical_alignment = VerticalAlignment::CENTER
794
+ paragraph.wrap_mode = WrapMode::BY_WORDS
795
+ paragraph.lines = [text_line]
796
+
797
+ opts = {
798
+ :paragraph => paragraph,
799
+ :folder => @temp_folder
800
+ }
801
+
802
+ response = @pdf_api.put_add_text(file_name, page_number, opts)
803
+ assert(response, 'Failed to add text to the page.')
804
+ end
805
+
806
+
807
+ # Properties Tests
808
+
809
+ def test_delete_properties
810
+ file_name = 'PdfWithAcroForm.pdf'
811
+ upload_file(file_name)
812
+
813
+ property_1 = DocumentProperty.new
814
+ property_1.name = 'prop1'
815
+ property_1.value = 'val1'
816
+
817
+ opts_1 = {
818
+ :property => property_1,
819
+ :folder => @temp_folder
820
+ }
821
+
822
+ property_2 = DocumentProperty.new
823
+ property_2.name = 'prop2'
824
+ property_2.value = 'val2'
825
+
826
+ opts_2 = {
827
+ :property => property_2,
828
+ :folder => @temp_folder
829
+ }
830
+
831
+ @pdf_api.put_set_property(file_name, property_1.name, opts_1)
832
+ @pdf_api.put_set_property(file_name, property_2.name, opts_2)
833
+
834
+ opts = {
835
+ :folder => @temp_folder
836
+ }
837
+
838
+ response = @pdf_api.delete_properties(file_name, opts)
839
+ assert(response, 'Failed to delete document properties.')
840
+ end
841
+
842
+
843
+ def test_delete_property
844
+ file_name = 'PdfWithAcroForm.pdf'
845
+ upload_file(file_name)
846
+
847
+ property_1 = DocumentProperty.new
848
+ property_1.name = 'prop1'
849
+ property_1.value = 'val1'
850
+
851
+ opts_1 = {
852
+ :property => property_1,
853
+ :folder => @temp_folder
854
+ }
855
+
856
+ @pdf_api.put_set_property(file_name, property_1.name, opts_1)
857
+
858
+ opts = {
859
+ :folder => @temp_folder
860
+ }
861
+
862
+ response = @pdf_api.delete_property(file_name, property_1.name, opts)
863
+ assert(response, 'Failed to delete document property.')
864
+ end
865
+
866
+
867
+ def test_get_document_properties
868
+ file_name = 'PdfWithAcroForm.pdf'
869
+ upload_file(file_name)
870
+
871
+ property_1 = DocumentProperty.new
872
+ property_1.name = 'prop1'
873
+ property_1.value = 'val1'
874
+
875
+ opts_1 = {
876
+ :property => property_1,
877
+ :folder => @temp_folder
878
+ }
879
+
880
+ property_2 = DocumentProperty.new
881
+ property_2.name = 'prop2'
882
+ property_2.value = 'val2'
883
+
884
+ opts_2 = {
885
+ :property => property_2,
886
+ :folder => @temp_folder
887
+ }
888
+
889
+ @pdf_api.put_set_property(file_name, property_1.name, opts_1)
890
+ @pdf_api.put_set_property(file_name, property_2.name, opts_2)
891
+
892
+ opts = {
893
+ :folder => @temp_folder
894
+ }
895
+
896
+ response = @pdf_api.get_document_properties(file_name, opts)
897
+ assert(response, 'Failed to read document properties')
898
+ end
899
+
900
+
901
+ def test_get_document_property
902
+ file_name = 'PdfWithAcroForm.pdf'
903
+ upload_file(file_name)
904
+
905
+ property_1 = DocumentProperty.new
906
+ property_1.name = 'prop1'
907
+ property_1.value = 'val1'
908
+
909
+ opts_1 = {
910
+ :property => property_1,
911
+ :folder => @temp_folder
912
+ }
913
+
914
+ @pdf_api.put_set_property(file_name, property_1.name, opts_1)
915
+
916
+ opts = {
917
+ :folder => @temp_folder
918
+ }
919
+
920
+ response = @pdf_api.get_document_property(file_name, property_1.name, opts)
921
+ assert(response, 'Failed to read document property by name.')
922
+ end
923
+
924
+
925
+ def test_put_set_property
926
+ file_name = 'PdfWithAcroForm.pdf'
927
+ upload_file(file_name)
928
+
929
+ property_1 = DocumentProperty.new
930
+ property_1.name = 'prop1'
931
+ property_1.value = 'val1'
932
+
933
+ opts_1 = {
934
+ :property => property_1,
935
+ :folder => @temp_folder
936
+ }
937
+
938
+ response = @pdf_api.put_set_property(file_name, property_1.name, opts_1)
939
+ assert(response, 'Failed to add/update document property.')
940
+ end
941
+
942
+
943
+ # Sign Tests
944
+
945
+ def test_post_sign_document
946
+ file_name = 'BlankWithSignature.pdf'
947
+ upload_file(file_name)
948
+
949
+ signature_file_name = 'test1234.pfx'
950
+ upload_file(signature_file_name)
951
+
952
+ rectangle = Rectangle.new
953
+ rectangle.x = 100
954
+ rectangle.y = 100
955
+ rectangle.width = 400
956
+ rectangle.height = 100
957
+
958
+ signature = Signature.new
959
+ signature.authority = 'Sergey Smal'
960
+ signature.contact = 'test@mail.ru'
961
+ signature.date = '08/01/2012 12:15:00.000 PM'
962
+ signature.form_field_name = 'Signature1'
963
+ signature.location = 'Ukraine'
964
+ signature.password = 'test1234'
965
+ signature.rectangle = rectangle
966
+ signature.signature_path = @temp_folder + '/' + signature_file_name
967
+ signature.signature_type = SignatureType::PKCS_7
968
+ signature.visible = true
969
+
970
+ opts = {
971
+ :signature => signature,
972
+ :folder => @temp_folder
973
+ }
974
+
975
+ response = @pdf_api.post_sign_document(file_name, opts)
976
+ assert(response, 'Failed to sign document.')
977
+ end
978
+
979
+ def test_post_sign_page
980
+ file_name = 'BlankWithSignature.pdf'
981
+ upload_file(file_name)
982
+
983
+ signature_file_name = 'test1234.pfx'
984
+ upload_file(signature_file_name)
985
+
986
+ page_number = 1
987
+
988
+ rectangle = Rectangle.new
989
+ rectangle.x = 100
990
+ rectangle.y = 100
991
+ rectangle.width = 400
992
+ rectangle.height = 100
993
+
994
+ signature = Signature.new
995
+ signature.authority = 'Sergey Smal'
996
+ signature.contact = 'test@mail.ru'
997
+ signature.date = '08/01/2012 12:15:00.000 PM'
998
+ signature.form_field_name = 'Signature1'
999
+ signature.location = 'Ukraine'
1000
+ signature.password = 'test1234'
1001
+ signature.rectangle = rectangle
1002
+ signature.signature_path = @temp_folder + '/' + signature_file_name
1003
+ signature.signature_type = 'PKCS7'
1004
+ signature.visible = true
1005
+
1006
+ opts = {
1007
+ :signature => signature,
1008
+ :folder => @temp_folder
1009
+ }
1010
+
1011
+ response = @pdf_api.post_sign_page(file_name, page_number, opts)
1012
+ assert(response, 'Failed to sign page.')
1013
+ end
1014
+
1015
+
1016
+ # Text Items Tests
1017
+
1018
+ def test_get_page_text_items
1019
+ file_name = '4pages.pdf'
1020
+ upload_file(file_name)
1021
+
1022
+ page_number = 1
1023
+ opts = {
1024
+ :folder => @temp_folder
1025
+ }
1026
+
1027
+ response = @pdf_api.get_page_text_items(file_name, page_number, opts)
1028
+ assert(response, 'Failed to read page text items.')
1029
+ end
1030
+
1031
+
1032
+ def test_get_text_items
1033
+ file_name = '4pages.pdf'
1034
+ upload_file(file_name)
1035
+
1036
+ opts = {
1037
+ :folder => @temp_folder
1038
+ }
1039
+
1040
+ response = @pdf_api.get_text_items(file_name, opts)
1041
+ assert(response, 'Failed to read document text items.')
1042
+ end
1043
+
1044
+
1045
+ # Text Replace Tests
1046
+
1047
+ def test_post_document_replace_text
1048
+ file_name = '4pages.pdf'
1049
+ upload_file(file_name)
1050
+
1051
+ text_replace_request = TextReplaceRequest.new
1052
+ text_replace_request.old_value = 'Page'
1053
+ text_replace_request.new_value = 'p_a_g_e'
1054
+ text_replace_request.regex = false
1055
+
1056
+ opts = {
1057
+ :folder => @temp_folder
1058
+ }
1059
+
1060
+ response = @pdf_api.post_document_replace_text(file_name, text_replace_request, opts)
1061
+ assert(response, "Failed to replace document's text.")
1062
+ end
1063
+
1064
+
1065
+ def test_post_document_replace_text_list
1066
+ file_name = '4pages.pdf'
1067
+ upload_file(file_name)
1068
+
1069
+ text_replace_request_1 = TextReplaceRequest.new
1070
+ text_replace_request_1.old_value = 'First'
1071
+ text_replace_request_1.new_value = '1'
1072
+ text_replace_request_1.regex = false
1073
+
1074
+ text_replace_request_2 = TextReplaceRequest.new
1075
+ text_replace_request_2.old_value = 'Page'
1076
+ text_replace_request_2.new_value = 'p_a_g_e'
1077
+ text_replace_request_2.regex = false
1078
+
1079
+ text_replace_list_request = TextReplaceListRequest.new
1080
+ text_replace_list_request.text_replaces = [text_replace_request_1, text_replace_request_2]
1081
+
1082
+ opts = {
1083
+ :folder => @temp_folder
1084
+ }
1085
+
1086
+ response = @pdf_api.post_document_replace_text_list(file_name, text_replace_list_request, opts)
1087
+ assert(response, "Failed to replace document's text")
1088
+ end
1089
+
1090
+
1091
+ def test_post_page_replace_text
1092
+ file_name = '4pages.pdf'
1093
+ upload_file(file_name)
1094
+
1095
+ page_number = 1
1096
+
1097
+ text_replace_request = TextReplaceRequest.new
1098
+ text_replace_request.old_value = 'Page'
1099
+ text_replace_request.new_value = 'p_a_g_e'
1100
+ text_replace_request.regex = false
1101
+
1102
+ opts = {
1103
+ :folder => @temp_folder
1104
+ }
1105
+
1106
+ response = @pdf_api.post_page_replace_text(file_name, page_number, text_replace_request, opts)
1107
+ assert(response, 'Failed to replace text')
1108
+ end
1109
+
1110
+
1111
+ def test_post_page_replace_text_list
1112
+ file_name = '4pages.pdf'
1113
+ upload_file(file_name)
1114
+
1115
+ page_number = 1
1116
+
1117
+ text_replace_request_1 = TextReplaceRequest.new
1118
+ text_replace_request_1.old_value = 'First'
1119
+ text_replace_request_1.new_value = '1'
1120
+ text_replace_request_1.regex = false
1121
+
1122
+ text_replace_request_2 = TextReplaceRequest.new
1123
+ text_replace_request_2.old_value = 'Page'
1124
+ text_replace_request_2.new_value = 'p_a_g_e'
1125
+ text_replace_request_2.regex = false
1126
+
1127
+ text_replace_list_request = TextReplaceListRequest.new
1128
+ text_replace_list_request.text_replaces = [text_replace_request_1, text_replace_request_2]
1129
+
1130
+ opts = {
1131
+ :folder => @temp_folder
1132
+ }
1133
+
1134
+ response = @pdf_api.post_page_replace_text_list(file_name, page_number, text_replace_list_request, opts)
1135
+ assert(response, 'Failed to replace text')
1136
+ end
1137
+
1138
+
1139
+ # OCR Tests
1140
+
1141
+ def test_put_searchable_document
1142
+ file_name = 'rusdoc.pdf'
1143
+ upload_file(file_name)
1144
+
1145
+ opts = {
1146
+ :lang => 'rus,eng',
1147
+ :folder => @temp_folder
1148
+ }
1149
+
1150
+ response = @pdf_api.put_searchable_document(file_name, opts)
1151
+ assert(response, 'Filed to make document searchable')
1152
+ end
1153
+
1154
+
1155
+ def test_put_searchable_document_with_default_lang
1156
+ file_name = 'rusdoc.pdf'
1157
+ upload_file(file_name)
1158
+
1159
+ opts = {
1160
+ :folder => @temp_folder
1161
+ }
1162
+
1163
+ response = @pdf_api.put_searchable_document(file_name, opts)
1164
+ assert(response, 'Filed to make document searchable.')
1165
+ end
1166
+
1167
+
1168
+ # Text Tests
1169
+
1170
+ def test_get_text
1171
+ file_name = '4pages.pdf'
1172
+ upload_file(file_name)
1173
+
1174
+ x = 0
1175
+ y = 0
1176
+ width = 0
1177
+ height = 0
1178
+ opts = {
1179
+ :folder => @temp_folder
1180
+ }
1181
+
1182
+ response = @pdf_api.get_text(file_name, x, y, width, height, opts)
1183
+ assert(response, 'Filed to get document text.')
1184
+ end
1185
+
1186
+ def test_get_page_text_by_two_text_on_page
1187
+ file_name = '4pages.pdf'
1188
+ upload_file(file_name)
1189
+
1190
+ page_number = 1
1191
+ x = 0
1192
+ y = 0
1193
+ width = 0
1194
+ height = 0
1195
+ opts = {
1196
+ :format => ['First Page', 'Second Page'],
1197
+ # :format => 'First Page',
1198
+ :folder => @temp_folder
1199
+ }
1200
+
1201
+ response = @pdf_api.get_page_text(file_name, page_number, x, y, width, height, opts)
1202
+ assert(response, 'Filed to get document text.')
1203
+ end
1204
+
1205
+
1206
+ # Text Replace Tests
1207
+
1208
+ def test_post_document_text_replace_whole_doc_by_rect
1209
+ file_name = '4pages.pdf'
1210
+ upload_file(file_name)
1211
+
1212
+ rect = Rectangle.new
1213
+ rect.x = 100
1214
+ rect.y = 700
1215
+ rect.width = 300
1216
+ rect.height = 300
1217
+
1218
+ text_replace = TextReplace.new
1219
+ text_replace.old_value = 'Page'
1220
+ text_replace.new_value = 'p_a_g_e'
1221
+ text_replace.rect = rect
1222
+
1223
+ text_replace_list = TextReplaceListRequest.new
1224
+ text_replace_list.text_replaces = [text_replace]
1225
+ text_replace_list.start_index = 0
1226
+ text_replace_list.count_replace = 0
1227
+
1228
+
1229
+ opts = {
1230
+ :folder => @temp_folder
1231
+ }
1232
+
1233
+ response = @pdf_api.post_document_text_replace(file_name, text_replace_list, opts)
1234
+ assert(response, 'Filed to replace document text by rect.')
1235
+ end
1236
+
1237
+
1238
+ def test_post_page_text_replace_by_rect
1239
+ file_name = '4pages.pdf'
1240
+ upload_file(file_name)
1241
+ page_number = 1
1242
+
1243
+ rect = Rectangle.new
1244
+ rect.x = 100
1245
+ rect.y = 700
1246
+ rect.width = 300
1247
+ rect.height = 300
1248
+
1249
+ text_replace = TextReplace.new
1250
+ text_replace.old_value = 'Page'
1251
+ text_replace.new_value = 'p_a_g_e'
1252
+ text_replace.rect = rect
1253
+
1254
+ text_replace_list = TextReplaceListRequest.new
1255
+ text_replace_list.text_replaces = [text_replace]
1256
+ text_replace_list.start_index = 0
1257
+ text_replace_list.count_replace = 0
1258
+
1259
+ opts = {
1260
+ :folder => @temp_folder
1261
+ }
1262
+
1263
+ response = @pdf_api.post_page_text_replace(file_name, page_number, text_replace_list, opts)
1264
+ assert(response, 'Filed to replace page text by rect.')
1265
+ end
1266
+
1267
+ end
1268
+