pdf4me 1.0.1 → 2.0.1

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 (291) hide show
  1. checksums.yaml +4 -4
  2. data/{LICENSE → LICENSE.txt} +6 -6
  3. data/README.md +124 -395
  4. data/lib/pdf4me.rb +40 -110
  5. data/lib/pdf4me/actions/complex_action.rb +64 -0
  6. data/lib/pdf4me/actions/convert_file_to_pdf.rb +30 -0
  7. data/lib/pdf4me/actions/convert_to_pdf.rb +14 -0
  8. data/lib/pdf4me/actions/create_pdf_a.rb +29 -0
  9. data/lib/pdf4me/actions/create_thumbnail.rb +55 -0
  10. data/lib/pdf4me/actions/extract_pages.rb +49 -0
  11. data/lib/pdf4me/actions/merge_two_pdfs.rb +34 -0
  12. data/lib/pdf4me/actions/optimize.rb +10 -0
  13. data/lib/pdf4me/actions/optimize_by_profile.rb +42 -0
  14. data/lib/pdf4me/actions/split_by_page_nr.rb +55 -0
  15. data/lib/pdf4me/actions/text_stamp.rb +63 -0
  16. data/lib/pdf4me/actions/wrapper_action.rb +65 -0
  17. data/lib/pdf4me/client.rb +87 -0
  18. data/lib/pdf4me/configuration.rb +9 -88
  19. data/lib/pdf4me/exceptions.rb +26 -0
  20. data/lib/pdf4me/models/base.rb +26 -0
  21. data/lib/pdf4me/models/convert_to_pdf_action.rb +26 -246
  22. data/lib/pdf4me/models/convert_to_pdf_res.rb +5 -185
  23. data/lib/pdf4me/models/doc_log.rb +12 -257
  24. data/lib/pdf4me/models/doc_metadata.rb +13 -282
  25. data/lib/pdf4me/models/document.rb +14 -282
  26. data/lib/pdf4me/models/notification.rb +8 -191
  27. data/lib/pdf4me/models/optimize_action.rb +72 -508
  28. data/lib/pdf4me/models/optimize_res.rb +5 -195
  29. data/lib/pdf4me/models/page.rb +12 -254
  30. data/lib/pdf4me/utils/assigner.rb +10 -0
  31. data/lib/pdf4me/utils/serializer.rb +43 -0
  32. data/lib/pdf4me/version.rb +1 -13
  33. data/spec/actions/create_pdf_a_spec.rb +21 -0
  34. data/spec/actions/wrapper_action_spec.rb +24 -0
  35. data/spec/files/4.pdf +0 -0
  36. data/spec/spec_helper.rb +17 -100
  37. metadata +70 -421
  38. data/Gemfile +0 -7
  39. data/Rakefile +0 -8
  40. data/docs/ActionFlow.md +0 -8
  41. data/docs/ApiUsageRes.md +0 -11
  42. data/docs/ArchiveConfig.md +0 -11
  43. data/docs/ArchiveJobReq.md +0 -12
  44. data/docs/ArchiveJobRes.md +0 -9
  45. data/docs/Color.md +0 -10
  46. data/docs/ConvertApi.md +0 -102
  47. data/docs/ConvertToPdf.md +0 -10
  48. data/docs/ConvertToPdfAction.md +0 -10
  49. data/docs/ConvertToPdfRes.md +0 -8
  50. data/docs/CreateImages.md +0 -10
  51. data/docs/CreateImagesRes.md +0 -8
  52. data/docs/CreatePdfA.md +0 -10
  53. data/docs/CreatePdfARes.md +0 -8
  54. data/docs/CustomCMSConfig.md +0 -23
  55. data/docs/DocAction.md +0 -8
  56. data/docs/DocLog.md +0 -12
  57. data/docs/DocMetadata.md +0 -16
  58. data/docs/Document.md +0 -16
  59. data/docs/DocumentApi.md +0 -203
  60. data/docs/DropDocumentReq.md +0 -20
  61. data/docs/DropDocumentRes.md +0 -15
  62. data/docs/ExecutionTrigger.md +0 -10
  63. data/docs/Extract.md +0 -10
  64. data/docs/ExtractAction.md +0 -9
  65. data/docs/ExtractApi.md +0 -102
  66. data/docs/ExtractRes.md +0 -8
  67. data/docs/GetDocumentListRes.md +0 -13
  68. data/docs/GetDocumentReq.md +0 -14
  69. data/docs/GetDocumentRes.md +0 -14
  70. data/docs/IFormFile.md +0 -13
  71. data/docs/Image.md +0 -15
  72. data/docs/ImageAction.md +0 -30
  73. data/docs/ImageApi.md +0 -107
  74. data/docs/Job.md +0 -10
  75. data/docs/JobApi.md +0 -197
  76. data/docs/JobConfig.md +0 -18
  77. data/docs/JobConfigRes.md +0 -8
  78. data/docs/KeyValuePairStringObject.md +0 -9
  79. data/docs/KeyValuePairStringString.md +0 -9
  80. data/docs/ManagementApi.md +0 -92
  81. data/docs/Merge.md +0 -10
  82. data/docs/MergeAction.md +0 -8
  83. data/docs/MergeApi.md +0 -102
  84. data/docs/MergeRes.md +0 -8
  85. data/docs/Notification.md +0 -9
  86. data/docs/OcrAction.md +0 -12
  87. data/docs/OcrApi.md +0 -57
  88. data/docs/Optimize.md +0 -10
  89. data/docs/OptimizeAction.md +0 -35
  90. data/docs/OptimizeApi.md +0 -103
  91. data/docs/OptimizeRes.md +0 -9
  92. data/docs/Page.md +0 -14
  93. data/docs/PageSelection.md +0 -10
  94. data/docs/Pdf4meAction.md +0 -12
  95. data/docs/Pdf4meDocument.md +0 -32
  96. data/docs/Pdf4meException.md +0 -8
  97. data/docs/PdfAAction.md +0 -14
  98. data/docs/PdfAApi.md +0 -102
  99. data/docs/PdfFont.md +0 -9
  100. data/docs/Pricing.md +0 -13
  101. data/docs/ProduceDocuments.md +0 -14
  102. data/docs/ProduceDocumentsRes.md +0 -8
  103. data/docs/ProduceOutput.md +0 -8
  104. data/docs/RGBSet.md +0 -10
  105. data/docs/RecognizeDocument.md +0 -10
  106. data/docs/RecognizeDocumentRes.md +0 -9
  107. data/docs/Rectangle.md +0 -11
  108. data/docs/Rotate.md +0 -10
  109. data/docs/RunJobRes.md +0 -10
  110. data/docs/SignatureConfig.md +0 -7
  111. data/docs/Split.md +0 -10
  112. data/docs/SplitAction.md +0 -11
  113. data/docs/SplitApi.md +0 -103
  114. data/docs/SplitRes.md +0 -8
  115. data/docs/Stamp.md +0 -10
  116. data/docs/StampAction.md +0 -22
  117. data/docs/StampApi.md +0 -110
  118. data/docs/StampRes.md +0 -8
  119. data/docs/StorageFolder.md +0 -10
  120. data/docs/Text.md +0 -17
  121. data/docs/Transform.md +0 -13
  122. data/docs/Translate.md +0 -9
  123. data/docs/UserFingerprint.md +0 -9
  124. data/docs/VersionRes.md +0 -8
  125. data/docs/java.md +0 -425
  126. data/lib/pdf4me/api/convert_api.rb +0 -130
  127. data/lib/pdf4me/api/document_api.rb +0 -218
  128. data/lib/pdf4me/api/extract_api.rb +0 -131
  129. data/lib/pdf4me/api/image_api.rb +0 -139
  130. data/lib/pdf4me/api/job_api.rb +0 -223
  131. data/lib/pdf4me/api/management_api.rb +0 -117
  132. data/lib/pdf4me/api/merge_api.rb +0 -131
  133. data/lib/pdf4me/api/ocr_api.rb +0 -74
  134. data/lib/pdf4me/api/optimize_api.rb +0 -139
  135. data/lib/pdf4me/api/pdf_a_api.rb +0 -134
  136. data/lib/pdf4me/api/split_api.rb +0 -135
  137. data/lib/pdf4me/api/stamp_api.rb +0 -159
  138. data/lib/pdf4me/api_client.rb +0 -380
  139. data/lib/pdf4me/api_error.rb +0 -38
  140. data/lib/pdf4me/models/action_flow.rb +0 -190
  141. data/lib/pdf4me/models/api_usage_res.rb +0 -219
  142. data/lib/pdf4me/models/archive_config.rb +0 -226
  143. data/lib/pdf4me/models/archive_job_req.rb +0 -249
  144. data/lib/pdf4me/models/archive_job_res.rb +0 -207
  145. data/lib/pdf4me/models/color.rb +0 -206
  146. data/lib/pdf4me/models/convert_to_pdf.rb +0 -209
  147. data/lib/pdf4me/models/create_images.rb +0 -209
  148. data/lib/pdf4me/models/create_images_res.rb +0 -189
  149. data/lib/pdf4me/models/create_pdf_a.rb +0 -209
  150. data/lib/pdf4me/models/create_pdf_a_res.rb +0 -189
  151. data/lib/pdf4me/models/custom_cms_config.rb +0 -323
  152. data/lib/pdf4me/models/doc_action.rb +0 -190
  153. data/lib/pdf4me/models/drop_document_req.rb +0 -348
  154. data/lib/pdf4me/models/drop_document_res.rb +0 -260
  155. data/lib/pdf4me/models/execution_trigger.rb +0 -206
  156. data/lib/pdf4me/models/extract.rb +0 -207
  157. data/lib/pdf4me/models/extract_action.rb +0 -201
  158. data/lib/pdf4me/models/extract_res.rb +0 -188
  159. data/lib/pdf4me/models/get_document_list_res.rb +0 -237
  160. data/lib/pdf4me/models/get_document_req.rb +0 -243
  161. data/lib/pdf4me/models/get_document_res.rb +0 -246
  162. data/lib/pdf4me/models/i_form_file.rb +0 -235
  163. data/lib/pdf4me/models/image.rb +0 -300
  164. data/lib/pdf4me/models/image_action.rb +0 -513
  165. data/lib/pdf4me/models/job.rb +0 -213
  166. data/lib/pdf4me/models/job_config.rb +0 -298
  167. data/lib/pdf4me/models/job_config_res.rb +0 -193
  168. data/lib/pdf4me/models/key_value_pair_string_object.rb +0 -197
  169. data/lib/pdf4me/models/key_value_pair_string_string.rb +0 -197
  170. data/lib/pdf4me/models/merge.rb +0 -209
  171. data/lib/pdf4me/models/merge_action.rb +0 -190
  172. data/lib/pdf4me/models/merge_res.rb +0 -188
  173. data/lib/pdf4me/models/ocr_action.rb +0 -259
  174. data/lib/pdf4me/models/optimize.rb +0 -209
  175. data/lib/pdf4me/models/page_selection.rb +0 -246
  176. data/lib/pdf4me/models/pdf4me_action.rb +0 -259
  177. data/lib/pdf4me/models/pdf4me_document.rb +0 -511
  178. data/lib/pdf4me/models/pdf4me_exception.rb +0 -189
  179. data/lib/pdf4me/models/pdf_a_action.rb +0 -297
  180. data/lib/pdf4me/models/pdf_font.rb +0 -213
  181. data/lib/pdf4me/models/pricing.rb +0 -278
  182. data/lib/pdf4me/models/produce_documents.rb +0 -251
  183. data/lib/pdf4me/models/produce_documents_res.rb +0 -191
  184. data/lib/pdf4me/models/produce_output.rb +0 -221
  185. data/lib/pdf4me/models/recognize_document.rb +0 -209
  186. data/lib/pdf4me/models/recognize_document_res.rb +0 -198
  187. data/lib/pdf4me/models/rectangle.rb +0 -215
  188. data/lib/pdf4me/models/rgb_set.rb +0 -206
  189. data/lib/pdf4me/models/rotate.rb +0 -221
  190. data/lib/pdf4me/models/run_job_res.rb +0 -215
  191. data/lib/pdf4me/models/signature_config.rb +0 -179
  192. data/lib/pdf4me/models/split.rb +0 -207
  193. data/lib/pdf4me/models/split_action.rb +0 -219
  194. data/lib/pdf4me/models/split_res.rb +0 -190
  195. data/lib/pdf4me/models/stamp.rb +0 -209
  196. data/lib/pdf4me/models/stamp_action.rb +0 -387
  197. data/lib/pdf4me/models/stamp_res.rb +0 -189
  198. data/lib/pdf4me/models/storage_folder.rb +0 -239
  199. data/lib/pdf4me/models/text.rb +0 -320
  200. data/lib/pdf4me/models/transform.rb +0 -263
  201. data/lib/pdf4me/models/translate.rb +0 -207
  202. data/lib/pdf4me/models/user_fingerprint.rb +0 -197
  203. data/lib/pdf4me/models/version_res.rb +0 -188
  204. data/pdf4me.gemspec +0 -47
  205. data/spec/api/convert_api_spec.rb +0 -60
  206. data/spec/api/document_api_spec.rb +0 -83
  207. data/spec/api/extract_api_spec.rb +0 -60
  208. data/spec/api/image_api_spec.rb +0 -62
  209. data/spec/api/job_api_spec.rb +0 -82
  210. data/spec/api/management_api_spec.rb +0 -57
  211. data/spec/api/merge_api_spec.rb +0 -60
  212. data/spec/api/ocr_api_spec.rb +0 -47
  213. data/spec/api/optimize_api_spec.rb +0 -60
  214. data/spec/api/pdf_a_api_spec.rb +0 -60
  215. data/spec/api/split_api_spec.rb +0 -60
  216. data/spec/api/stamp_api_spec.rb +0 -63
  217. data/spec/api_client_spec.rb +0 -226
  218. data/spec/configuration_spec.rb +0 -42
  219. data/spec/models/action_flow_spec.rb +0 -42
  220. data/spec/models/api_usage_res_spec.rb +0 -60
  221. data/spec/models/archive_config_spec.rb +0 -60
  222. data/spec/models/archive_job_req_spec.rb +0 -66
  223. data/spec/models/archive_job_res_spec.rb +0 -48
  224. data/spec/models/color_spec.rb +0 -54
  225. data/spec/models/convert_to_pdf_action_spec.rb +0 -62
  226. data/spec/models/convert_to_pdf_res_spec.rb +0 -42
  227. data/spec/models/convert_to_pdf_spec.rb +0 -54
  228. data/spec/models/create_images_res_spec.rb +0 -42
  229. data/spec/models/create_images_spec.rb +0 -54
  230. data/spec/models/create_pdf_a_res_spec.rb +0 -42
  231. data/spec/models/create_pdf_a_spec.rb +0 -54
  232. data/spec/models/custom_cms_config_spec.rb +0 -132
  233. data/spec/models/doc_action_spec.rb +0 -42
  234. data/spec/models/doc_log_spec.rb +0 -70
  235. data/spec/models/doc_metadata_spec.rb +0 -90
  236. data/spec/models/document_spec.rb +0 -90
  237. data/spec/models/drop_document_req_spec.rb +0 -118
  238. data/spec/models/drop_document_res_spec.rb +0 -84
  239. data/spec/models/execution_trigger_spec.rb +0 -54
  240. data/spec/models/extract_action_spec.rb +0 -48
  241. data/spec/models/extract_res_spec.rb +0 -42
  242. data/spec/models/extract_spec.rb +0 -54
  243. data/spec/models/get_document_list_res_spec.rb +0 -72
  244. data/spec/models/get_document_req_spec.rb +0 -78
  245. data/spec/models/get_document_res_spec.rb +0 -78
  246. data/spec/models/i_form_file_spec.rb +0 -72
  247. data/spec/models/image_action_spec.rb +0 -206
  248. data/spec/models/image_spec.rb +0 -88
  249. data/spec/models/job_config_res_spec.rb +0 -42
  250. data/spec/models/job_config_spec.rb +0 -102
  251. data/spec/models/job_spec.rb +0 -54
  252. data/spec/models/key_value_pair_string_object_spec.rb +0 -48
  253. data/spec/models/key_value_pair_string_string_spec.rb +0 -48
  254. data/spec/models/merge_action_spec.rb +0 -42
  255. data/spec/models/merge_res_spec.rb +0 -42
  256. data/spec/models/merge_spec.rb +0 -54
  257. data/spec/models/notification_spec.rb +0 -48
  258. data/spec/models/ocr_action_spec.rb +0 -70
  259. data/spec/models/optimize_action_spec.rb +0 -228
  260. data/spec/models/optimize_res_spec.rb +0 -48
  261. data/spec/models/optimize_spec.rb +0 -54
  262. data/spec/models/page_selection_spec.rb +0 -58
  263. data/spec/models/page_spec.rb +0 -78
  264. data/spec/models/pdf4me_action_spec.rb +0 -70
  265. data/spec/models/pdf4me_document_spec.rb +0 -202
  266. data/spec/models/pdf4me_exception_spec.rb +0 -42
  267. data/spec/models/pdf_a_action_spec.rb +0 -86
  268. data/spec/models/pdf_font_spec.rb +0 -48
  269. data/spec/models/pricing_spec.rb +0 -80
  270. data/spec/models/produce_documents_res_spec.rb +0 -42
  271. data/spec/models/produce_documents_spec.rb +0 -78
  272. data/spec/models/produce_output_spec.rb +0 -46
  273. data/spec/models/recognize_document_res_spec.rb +0 -48
  274. data/spec/models/recognize_document_spec.rb +0 -54
  275. data/spec/models/rectangle_spec.rb +0 -60
  276. data/spec/models/rgb_set_spec.rb +0 -54
  277. data/spec/models/rotate_spec.rb +0 -54
  278. data/spec/models/run_job_res_spec.rb +0 -54
  279. data/spec/models/signature_config_spec.rb +0 -36
  280. data/spec/models/split_action_spec.rb +0 -60
  281. data/spec/models/split_res_spec.rb +0 -42
  282. data/spec/models/split_spec.rb +0 -54
  283. data/spec/models/stamp_action_spec.rb +0 -142
  284. data/spec/models/stamp_res_spec.rb +0 -42
  285. data/spec/models/stamp_spec.rb +0 -54
  286. data/spec/models/storage_folder_spec.rb +0 -58
  287. data/spec/models/text_spec.rb +0 -104
  288. data/spec/models/transform_spec.rb +0 -72
  289. data/spec/models/translate_spec.rb +0 -48
  290. data/spec/models/user_fingerprint_spec.rb +0 -48
  291. data/spec/models/version_res_spec.rb +0 -42
@@ -1,124 +1,54 @@
1
- =begin
2
- #DmsApi
1
+ require 'active_model'
2
+ require 'faraday'
3
+ require 'json'
4
+ require 'logger'
5
+ require 'pry'
6
+ require 'uri'
7
+ require 'typhoeus'
8
+ require 'date'
3
9
 
4
- #No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)
5
-
6
- OpenAPI spec version: v1
7
-
8
- Generated by: https://github.com/swagger-api/swagger-codegen.git
9
- Swagger Codegen version: 2.3.0
10
-
11
- =end
12
-
13
- # Common files
14
- require 'pdf4me/api_client'
15
- require 'pdf4me/api_error'
16
10
  require 'pdf4me/version'
17
11
  require 'pdf4me/configuration'
18
-
19
- # Models
20
- require 'pdf4me/models/action_flow'
21
- require 'pdf4me/models/api_usage_res'
22
- require 'pdf4me/models/archive_config'
23
- require 'pdf4me/models/archive_job_req'
24
- require 'pdf4me/models/archive_job_res'
25
- require 'pdf4me/models/color'
26
- require 'pdf4me/models/convert_to_pdf'
12
+ require 'pdf4me/client'
13
+ require 'pdf4me/exceptions'
14
+
15
+ #utils
16
+ require 'pdf4me/utils/assigner'
17
+ require 'pdf4me/utils/serializer'
18
+
19
+ require 'pdf4me/actions/wrapper_action'
20
+ require 'pdf4me/actions/optimize_by_profile'
21
+ require 'pdf4me/actions/convert_file_to_pdf'
22
+ require 'pdf4me/actions/extract_pages'
23
+ require 'pdf4me/actions/create_thumbnail'
24
+ require 'pdf4me/actions/merge_two_pdfs'
25
+ require 'pdf4me/actions/create_pdf_a'
26
+ require 'pdf4me/actions/split_by_page_nr'
27
+ require 'pdf4me/actions/text_stamp'
28
+
29
+ # complex operations
30
+ require 'pdf4me/actions/complex_action'
31
+ require 'pdf4me/actions/convert_to_pdf'
32
+ require 'pdf4me/actions/optimize'
33
+
34
+ # models
35
+ require 'pdf4me/models/base'
36
+ require 'pdf4me/models/document'
27
37
  require 'pdf4me/models/convert_to_pdf_action'
38
+ require 'pdf4me/models/notification'
28
39
  require 'pdf4me/models/convert_to_pdf_res'
29
- require 'pdf4me/models/create_images'
30
- require 'pdf4me/models/create_images_res'
31
- require 'pdf4me/models/create_pdf_a'
32
- require 'pdf4me/models/create_pdf_a_res'
33
- require 'pdf4me/models/custom_cms_config'
34
- require 'pdf4me/models/doc_action'
35
40
  require 'pdf4me/models/doc_log'
36
41
  require 'pdf4me/models/doc_metadata'
37
- require 'pdf4me/models/document'
38
- require 'pdf4me/models/drop_document_req'
39
- require 'pdf4me/models/drop_document_res'
40
- require 'pdf4me/models/execution_trigger'
41
- require 'pdf4me/models/extract'
42
- require 'pdf4me/models/extract_action'
43
- require 'pdf4me/models/extract_res'
44
- require 'pdf4me/models/get_document_list_res'
45
- require 'pdf4me/models/get_document_req'
46
- require 'pdf4me/models/get_document_res'
47
- require 'pdf4me/models/i_form_file'
48
- require 'pdf4me/models/image'
49
- require 'pdf4me/models/image_action'
50
- require 'pdf4me/models/job'
51
- require 'pdf4me/models/job_config'
52
- require 'pdf4me/models/job_config_res'
53
- require 'pdf4me/models/key_value_pair_string_object'
54
- require 'pdf4me/models/key_value_pair_string_string'
55
- require 'pdf4me/models/merge'
56
- require 'pdf4me/models/merge_action'
57
- require 'pdf4me/models/merge_res'
58
- require 'pdf4me/models/notification'
59
- require 'pdf4me/models/ocr_action'
60
- require 'pdf4me/models/optimize'
42
+ require 'pdf4me/models/page'
61
43
  require 'pdf4me/models/optimize_action'
62
44
  require 'pdf4me/models/optimize_res'
63
- require 'pdf4me/models/page'
64
- require 'pdf4me/models/page_selection'
65
- require 'pdf4me/models/pdf4me_action'
66
- require 'pdf4me/models/pdf4me_document'
67
- require 'pdf4me/models/pdf4me_exception'
68
- require 'pdf4me/models/pdf_a_action'
69
- require 'pdf4me/models/pdf_font'
70
- require 'pdf4me/models/pricing'
71
- require 'pdf4me/models/produce_documents'
72
- require 'pdf4me/models/produce_documents_res'
73
- require 'pdf4me/models/produce_output'
74
- require 'pdf4me/models/rgb_set'
75
- require 'pdf4me/models/recognize_document'
76
- require 'pdf4me/models/recognize_document_res'
77
- require 'pdf4me/models/rectangle'
78
- require 'pdf4me/models/rotate'
79
- require 'pdf4me/models/run_job_res'
80
- require 'pdf4me/models/signature_config'
81
- require 'pdf4me/models/split'
82
- require 'pdf4me/models/split_action'
83
- require 'pdf4me/models/split_res'
84
- require 'pdf4me/models/stamp'
85
- require 'pdf4me/models/stamp_action'
86
- require 'pdf4me/models/stamp_res'
87
- require 'pdf4me/models/storage_folder'
88
- require 'pdf4me/models/text'
89
- require 'pdf4me/models/transform'
90
- require 'pdf4me/models/translate'
91
- require 'pdf4me/models/user_fingerprint'
92
- require 'pdf4me/models/version_res'
93
-
94
- # APIs
95
- require 'pdf4me/api/convert_api'
96
- require 'pdf4me/api/document_api'
97
- require 'pdf4me/api/extract_api'
98
- require 'pdf4me/api/image_api'
99
- require 'pdf4me/api/job_api'
100
- require 'pdf4me/api/management_api'
101
- require 'pdf4me/api/merge_api'
102
- require 'pdf4me/api/ocr_api'
103
- require 'pdf4me/api/optimize_api'
104
- require 'pdf4me/api/pdf_a_api'
105
- require 'pdf4me/api/split_api'
106
- require 'pdf4me/api/stamp_api'
107
45
 
108
46
  module Pdf4me
109
- class << self
110
- # Customize default settings for the SDK using block.
111
- # Pdf4me.configure do |config|
112
- # config.username = "xxx"
113
- # config.password = "xxx"
114
- # end
115
- # If no block given, return the default Configuration object.
116
- def configure
117
- if block_given?
118
- yield(Configuration.default)
119
- else
120
- Configuration.default
121
- end
47
+ def self.configure
48
+ if block_given?
49
+ yield(Configuration.default)
50
+ else
51
+ Configuration.default
122
52
  end
123
53
  end
124
54
  end
@@ -0,0 +1,64 @@
1
+ module Pdf4me
2
+ class ComplexAction
3
+ attr_reader :client
4
+
5
+ def client
6
+ @client ||= Client.default
7
+ end
8
+
9
+ def assign_attributes(attributes = {})
10
+ attributes.to_h.each do |key, value|
11
+ writer_method = "#{key}="
12
+ send(writer_method, value) if respond_to?(writer_method)
13
+ end
14
+ end
15
+
16
+ def initialize(attributes = {})
17
+ assign_attributes(attributes)
18
+ end
19
+
20
+ def run
21
+ return unless valid?
22
+ response = client.post(
23
+ path,
24
+ serialize_attributes.to_json
25
+ )
26
+ Pdf4me.const_get("#{self.class.name}Res").from_response(response)
27
+ end
28
+
29
+ def valid?
30
+ valid_objects? && valid_instances?
31
+ end
32
+
33
+ def errors
34
+ errors = attributes.map do |attribute|
35
+ send(attribute).errors.full_messages
36
+ end
37
+ errors.flatten
38
+ end
39
+
40
+ protected
41
+
42
+ def attributes
43
+ self.class::ATTRIBUTES
44
+ end
45
+
46
+ def valid_objects?
47
+ attributes.all? do |value|
48
+ send(value).class.name == "pdf4me/#{value}".classify
49
+ end
50
+ end
51
+
52
+ def valid_instances?
53
+ attributes.all? do |attribute|
54
+ send(attribute).valid?
55
+ end
56
+ end
57
+
58
+ def serialize_attributes
59
+ attributes.each_with_object({}) do |attribute, hash|
60
+ hash[attribute.camelize(:lower)] = send(attribute).attributes
61
+ end
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,30 @@
1
+ module Pdf4me
2
+ class ConvertFileToPdf < WrapperAction
3
+ attr_accessor(
4
+ :file,
5
+ :save_path
6
+ )
7
+ validates_presence_of(
8
+ :file,
9
+ :save_path
10
+ )
11
+
12
+ def path
13
+ '/Convert/ConvertFileToPdf'
14
+ end
15
+
16
+ def save_path
17
+ @save_path ||= File.join(File.dirname(file), "#{File.basename(file, ".*")}.pdf")
18
+ end
19
+
20
+ def call_api
21
+ client.multipart_post(
22
+ path,
23
+ file_name: File.basename(file),
24
+ file: File.open(file, 'rb'),
25
+ ) do |request|
26
+ download(request, save_path)
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,14 @@
1
+ module Pdf4me
2
+ class ConvertToPdf < ComplexAction
3
+ ATTRIBUTES = %w|document convert_to_pdf_action notification|
4
+ attr_accessor *ATTRIBUTES
5
+
6
+ def path
7
+ '/Convert/ConvertToPdf'
8
+ end
9
+
10
+ def notification
11
+ @notification || Pdf4me::Notification.new
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,29 @@
1
+ module Pdf4me
2
+ class CreatePdfA < WrapperAction
3
+ attr_accessor(
4
+ :file,
5
+ :compliance
6
+ )
7
+ validates_presence_of(
8
+ :compliance,
9
+ :file
10
+ )
11
+ validates_inclusion_of(
12
+ :compliance,
13
+ in: %w|pdfA1b pdfA1a pdfA2b pdfA2u pdfA2a pdfA3b pdfA3u pdfA3a|,
14
+ message: 'is invalid. It should be any of pdfA1b, pdfA1a, pdfA2b, pdfA2u, pdfA2a, pdfA3b, pdfA3u, pdfA3a'
15
+ )
16
+
17
+ def path
18
+ '/PdfA/CreatePdfA'
19
+ end
20
+
21
+ def call_api
22
+ client.multipart_post(
23
+ path,
24
+ file: File.open(file, 'rb'),
25
+ pdfCompliance: compliance
26
+ )
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,55 @@
1
+ module Pdf4me
2
+ class CreateThumbnail < WrapperAction
3
+ attr_accessor(
4
+ :file,
5
+ :width,
6
+ :page_number,
7
+ :image_format,
8
+ :save_path
9
+ )
10
+
11
+ validates_presence_of(
12
+ :file,
13
+ :page_number,
14
+ :width,
15
+ :image_format,
16
+ :save_path
17
+ )
18
+
19
+ validates_inclusion_of(
20
+ :image_format,
21
+ in: %w|jpg jpeg bmp gif jb2 jp2 jpf jpx png tif tiff"|,
22
+ message: 'is invalid - should be one of jpg, jpeg, bmp, gif, jb2, jp2, jpf, jpx, png, tif, tiff'
23
+ )
24
+ validates_numericality_of :page_number, :width
25
+
26
+ def path
27
+ '/Image/CreateThumbnail'
28
+ end
29
+
30
+ def defaults
31
+ {
32
+ width: 100,
33
+ image_format: 'png',
34
+ page_number: 1
35
+ }
36
+ end
37
+
38
+ def save_path
39
+ @save_path ||= File.join(File.dirname(file), "#{File.basename(file, ".*")}-thumbnail.#{image_format}")
40
+ end
41
+
42
+ def call_api
43
+ client.multipart_post(
44
+ path,
45
+ file: File.open(file, 'rb'),
46
+ pageNr: page_number,
47
+ width: width,
48
+ imageFormat: image_format
49
+ ) do |request|
50
+ download(request, save_path)
51
+ end
52
+ end
53
+
54
+ end
55
+ end
@@ -0,0 +1,49 @@
1
+ module Pdf4me
2
+ class ExtractPages < WrapperAction
3
+ attr_accessor(
4
+ :file,
5
+ :save_path,
6
+ :pages
7
+ )
8
+ validates_presence_of(
9
+ :file,
10
+ :save_path
11
+ )
12
+
13
+ validate :page_attributes
14
+
15
+ def pages=(value)
16
+ @pages = Array(value)
17
+ end
18
+
19
+ def path
20
+ '/Extract/ExtractPages'
21
+ end
22
+
23
+ def save_path
24
+ @save_path ||= File.join(File.dirname(file), "extracted_pages.pdf")
25
+ end
26
+
27
+ def call_api
28
+ client.multipart_post(
29
+ path,
30
+ file: File.open(file, 'rb'),
31
+ pageNrs: pages.join(',')
32
+ ) do |request|
33
+ download(request, save_path)
34
+ end
35
+ end
36
+
37
+ private
38
+
39
+ def page_attributes
40
+ if pages.empty?
41
+ errors.add(:pages, 'must be valid numeric value')
42
+ end
43
+
44
+ unless pages.all? {|i| i.is_a?(Integer) }
45
+ errors.add(:pages, 'contains values that are not numbers')
46
+ end
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,34 @@
1
+ module Pdf4me
2
+ class MergeTwoPdfs < WrapperAction
3
+ attr_accessor(
4
+ :file1,
5
+ :file2,
6
+ :save_path
7
+ )
8
+ validates_presence_of(
9
+ :file1,
10
+ :file2
11
+ )
12
+
13
+ def path
14
+ '/Merge/Merge2Pdfs'
15
+ end
16
+
17
+ def save_path
18
+ @save_path ||= File.join(
19
+ File.dirname(file1),
20
+ "Merged-#{File.basename(file1, ".*")}-#{File.basename(file2, ".*")}.pdf"
21
+ )
22
+ end
23
+
24
+ def call_api
25
+ client.multipart_post(
26
+ path,
27
+ file1: File.open(file1, 'rb'),
28
+ file2: File.open(file2, 'rb'),
29
+ ) do |request|
30
+ download(request, save_path)
31
+ end
32
+ end
33
+ end
34
+ end