test_kaferi_cloud 2.0.3 → 2.0.4

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.
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
+