pdf4me 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (271) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +7 -0
  3. data/README.md +472 -0
  4. data/Rakefile +8 -0
  5. data/docs/ActionFlow.md +8 -0
  6. data/docs/ApiUsageRes.md +11 -0
  7. data/docs/ArchiveConfig.md +11 -0
  8. data/docs/ArchiveJobReq.md +12 -0
  9. data/docs/ArchiveJobRes.md +9 -0
  10. data/docs/Color.md +10 -0
  11. data/docs/ConvertApi.md +102 -0
  12. data/docs/ConvertToPdf.md +10 -0
  13. data/docs/ConvertToPdfAction.md +10 -0
  14. data/docs/ConvertToPdfRes.md +8 -0
  15. data/docs/CreateImages.md +10 -0
  16. data/docs/CreateImagesRes.md +8 -0
  17. data/docs/CreatePdfA.md +10 -0
  18. data/docs/CreatePdfARes.md +8 -0
  19. data/docs/CustomCMSConfig.md +23 -0
  20. data/docs/DocAction.md +8 -0
  21. data/docs/DocLog.md +12 -0
  22. data/docs/DocMetadata.md +16 -0
  23. data/docs/Document.md +16 -0
  24. data/docs/DocumentApi.md +203 -0
  25. data/docs/DropDocumentReq.md +20 -0
  26. data/docs/DropDocumentRes.md +15 -0
  27. data/docs/ExecutionTrigger.md +10 -0
  28. data/docs/Extract.md +10 -0
  29. data/docs/ExtractAction.md +9 -0
  30. data/docs/ExtractApi.md +102 -0
  31. data/docs/ExtractRes.md +8 -0
  32. data/docs/GetDocumentListRes.md +13 -0
  33. data/docs/GetDocumentReq.md +14 -0
  34. data/docs/GetDocumentRes.md +14 -0
  35. data/docs/IFormFile.md +13 -0
  36. data/docs/Image.md +15 -0
  37. data/docs/ImageAction.md +30 -0
  38. data/docs/ImageApi.md +107 -0
  39. data/docs/Job.md +10 -0
  40. data/docs/JobApi.md +197 -0
  41. data/docs/JobConfig.md +18 -0
  42. data/docs/JobConfigRes.md +8 -0
  43. data/docs/KeyValuePairStringObject.md +9 -0
  44. data/docs/KeyValuePairStringString.md +9 -0
  45. data/docs/ManagementApi.md +92 -0
  46. data/docs/Merge.md +10 -0
  47. data/docs/MergeAction.md +8 -0
  48. data/docs/MergeApi.md +102 -0
  49. data/docs/MergeRes.md +8 -0
  50. data/docs/Notification.md +9 -0
  51. data/docs/OcrAction.md +12 -0
  52. data/docs/OcrApi.md +57 -0
  53. data/docs/Optimize.md +10 -0
  54. data/docs/OptimizeAction.md +35 -0
  55. data/docs/OptimizeApi.md +103 -0
  56. data/docs/OptimizeRes.md +9 -0
  57. data/docs/Page.md +14 -0
  58. data/docs/PageSelection.md +10 -0
  59. data/docs/Pdf4meAction.md +12 -0
  60. data/docs/Pdf4meDocument.md +32 -0
  61. data/docs/Pdf4meException.md +8 -0
  62. data/docs/PdfAAction.md +14 -0
  63. data/docs/PdfAApi.md +102 -0
  64. data/docs/PdfFont.md +9 -0
  65. data/docs/Pricing.md +13 -0
  66. data/docs/ProduceDocuments.md +14 -0
  67. data/docs/ProduceDocumentsRes.md +8 -0
  68. data/docs/ProduceOutput.md +8 -0
  69. data/docs/RGBSet.md +10 -0
  70. data/docs/RecognizeDocument.md +10 -0
  71. data/docs/RecognizeDocumentRes.md +9 -0
  72. data/docs/Rectangle.md +11 -0
  73. data/docs/Rotate.md +10 -0
  74. data/docs/RunJobRes.md +10 -0
  75. data/docs/SignatureConfig.md +7 -0
  76. data/docs/Split.md +10 -0
  77. data/docs/SplitAction.md +11 -0
  78. data/docs/SplitApi.md +103 -0
  79. data/docs/SplitRes.md +8 -0
  80. data/docs/Stamp.md +10 -0
  81. data/docs/StampAction.md +22 -0
  82. data/docs/StampApi.md +110 -0
  83. data/docs/StampRes.md +8 -0
  84. data/docs/StorageFolder.md +10 -0
  85. data/docs/Text.md +17 -0
  86. data/docs/Transform.md +13 -0
  87. data/docs/Translate.md +9 -0
  88. data/docs/UserFingerprint.md +9 -0
  89. data/docs/VersionRes.md +8 -0
  90. data/docs/java.md +425 -0
  91. data/git_push.sh +55 -0
  92. data/lib/pdf4me.rb +124 -0
  93. data/lib/pdf4me/api/convert_api.rb +130 -0
  94. data/lib/pdf4me/api/document_api.rb +218 -0
  95. data/lib/pdf4me/api/extract_api.rb +131 -0
  96. data/lib/pdf4me/api/image_api.rb +139 -0
  97. data/lib/pdf4me/api/job_api.rb +223 -0
  98. data/lib/pdf4me/api/management_api.rb +117 -0
  99. data/lib/pdf4me/api/merge_api.rb +131 -0
  100. data/lib/pdf4me/api/ocr_api.rb +74 -0
  101. data/lib/pdf4me/api/optimize_api.rb +139 -0
  102. data/lib/pdf4me/api/pdf_a_api.rb +134 -0
  103. data/lib/pdf4me/api/split_api.rb +135 -0
  104. data/lib/pdf4me/api/stamp_api.rb +159 -0
  105. data/lib/pdf4me/api_client.rb +380 -0
  106. data/lib/pdf4me/api_error.rb +38 -0
  107. data/lib/pdf4me/configuration.rb +109 -0
  108. data/lib/pdf4me/models/action_flow.rb +190 -0
  109. data/lib/pdf4me/models/api_usage_res.rb +219 -0
  110. data/lib/pdf4me/models/archive_config.rb +226 -0
  111. data/lib/pdf4me/models/archive_job_req.rb +249 -0
  112. data/lib/pdf4me/models/archive_job_res.rb +207 -0
  113. data/lib/pdf4me/models/color.rb +206 -0
  114. data/lib/pdf4me/models/convert_to_pdf.rb +209 -0
  115. data/lib/pdf4me/models/convert_to_pdf_action.rb +253 -0
  116. data/lib/pdf4me/models/convert_to_pdf_res.rb +189 -0
  117. data/lib/pdf4me/models/create_images.rb +209 -0
  118. data/lib/pdf4me/models/create_images_res.rb +189 -0
  119. data/lib/pdf4me/models/create_pdf_a.rb +209 -0
  120. data/lib/pdf4me/models/create_pdf_a_res.rb +189 -0
  121. data/lib/pdf4me/models/custom_cms_config.rb +323 -0
  122. data/lib/pdf4me/models/doc_action.rb +190 -0
  123. data/lib/pdf4me/models/doc_log.rb +257 -0
  124. data/lib/pdf4me/models/doc_metadata.rb +285 -0
  125. data/lib/pdf4me/models/document.rb +285 -0
  126. data/lib/pdf4me/models/drop_document_req.rb +348 -0
  127. data/lib/pdf4me/models/drop_document_res.rb +260 -0
  128. data/lib/pdf4me/models/execution_trigger.rb +206 -0
  129. data/lib/pdf4me/models/extract.rb +207 -0
  130. data/lib/pdf4me/models/extract_action.rb +201 -0
  131. data/lib/pdf4me/models/extract_res.rb +188 -0
  132. data/lib/pdf4me/models/get_document_list_res.rb +237 -0
  133. data/lib/pdf4me/models/get_document_req.rb +243 -0
  134. data/lib/pdf4me/models/get_document_res.rb +246 -0
  135. data/lib/pdf4me/models/i_form_file.rb +235 -0
  136. data/lib/pdf4me/models/image.rb +300 -0
  137. data/lib/pdf4me/models/image_action.rb +513 -0
  138. data/lib/pdf4me/models/job.rb +213 -0
  139. data/lib/pdf4me/models/job_config.rb +298 -0
  140. data/lib/pdf4me/models/job_config_res.rb +193 -0
  141. data/lib/pdf4me/models/key_value_pair_string_object.rb +197 -0
  142. data/lib/pdf4me/models/key_value_pair_string_string.rb +197 -0
  143. data/lib/pdf4me/models/merge.rb +209 -0
  144. data/lib/pdf4me/models/merge_action.rb +190 -0
  145. data/lib/pdf4me/models/merge_res.rb +188 -0
  146. data/lib/pdf4me/models/notification.rb +199 -0
  147. data/lib/pdf4me/models/ocr_action.rb +259 -0
  148. data/lib/pdf4me/models/optimize.rb +209 -0
  149. data/lib/pdf4me/models/optimize_action.rb +514 -0
  150. data/lib/pdf4me/models/optimize_res.rb +199 -0
  151. data/lib/pdf4me/models/page.rb +258 -0
  152. data/lib/pdf4me/models/page_selection.rb +246 -0
  153. data/lib/pdf4me/models/pdf4me_action.rb +259 -0
  154. data/lib/pdf4me/models/pdf4me_document.rb +511 -0
  155. data/lib/pdf4me/models/pdf4me_exception.rb +189 -0
  156. data/lib/pdf4me/models/pdf_a_action.rb +297 -0
  157. data/lib/pdf4me/models/pdf_font.rb +213 -0
  158. data/lib/pdf4me/models/pricing.rb +278 -0
  159. data/lib/pdf4me/models/produce_documents.rb +251 -0
  160. data/lib/pdf4me/models/produce_documents_res.rb +191 -0
  161. data/lib/pdf4me/models/produce_output.rb +221 -0
  162. data/lib/pdf4me/models/recognize_document.rb +209 -0
  163. data/lib/pdf4me/models/recognize_document_res.rb +198 -0
  164. data/lib/pdf4me/models/rectangle.rb +215 -0
  165. data/lib/pdf4me/models/rgb_set.rb +206 -0
  166. data/lib/pdf4me/models/rotate.rb +221 -0
  167. data/lib/pdf4me/models/run_job_res.rb +215 -0
  168. data/lib/pdf4me/models/signature_config.rb +179 -0
  169. data/lib/pdf4me/models/split.rb +207 -0
  170. data/lib/pdf4me/models/split_action.rb +219 -0
  171. data/lib/pdf4me/models/split_res.rb +190 -0
  172. data/lib/pdf4me/models/stamp.rb +209 -0
  173. data/lib/pdf4me/models/stamp_action.rb +387 -0
  174. data/lib/pdf4me/models/stamp_res.rb +189 -0
  175. data/lib/pdf4me/models/storage_folder.rb +239 -0
  176. data/lib/pdf4me/models/text.rb +320 -0
  177. data/lib/pdf4me/models/transform.rb +263 -0
  178. data/lib/pdf4me/models/translate.rb +207 -0
  179. data/lib/pdf4me/models/user_fingerprint.rb +197 -0
  180. data/lib/pdf4me/models/version_res.rb +188 -0
  181. data/lib/pdf4me/version.rb +15 -0
  182. data/pdf4me.gemspec +47 -0
  183. data/spec/api/convert_api_spec.rb +60 -0
  184. data/spec/api/document_api_spec.rb +83 -0
  185. data/spec/api/extract_api_spec.rb +60 -0
  186. data/spec/api/image_api_spec.rb +62 -0
  187. data/spec/api/job_api_spec.rb +82 -0
  188. data/spec/api/management_api_spec.rb +57 -0
  189. data/spec/api/merge_api_spec.rb +60 -0
  190. data/spec/api/ocr_api_spec.rb +47 -0
  191. data/spec/api/optimize_api_spec.rb +60 -0
  192. data/spec/api/pdf_a_api_spec.rb +60 -0
  193. data/spec/api/split_api_spec.rb +60 -0
  194. data/spec/api/stamp_api_spec.rb +63 -0
  195. data/spec/api_client_spec.rb +226 -0
  196. data/spec/configuration_spec.rb +42 -0
  197. data/spec/models/action_flow_spec.rb +42 -0
  198. data/spec/models/api_usage_res_spec.rb +60 -0
  199. data/spec/models/archive_config_spec.rb +60 -0
  200. data/spec/models/archive_job_req_spec.rb +66 -0
  201. data/spec/models/archive_job_res_spec.rb +48 -0
  202. data/spec/models/color_spec.rb +54 -0
  203. data/spec/models/convert_to_pdf_action_spec.rb +62 -0
  204. data/spec/models/convert_to_pdf_res_spec.rb +42 -0
  205. data/spec/models/convert_to_pdf_spec.rb +54 -0
  206. data/spec/models/create_images_res_spec.rb +42 -0
  207. data/spec/models/create_images_spec.rb +54 -0
  208. data/spec/models/create_pdf_a_res_spec.rb +42 -0
  209. data/spec/models/create_pdf_a_spec.rb +54 -0
  210. data/spec/models/custom_cms_config_spec.rb +132 -0
  211. data/spec/models/doc_action_spec.rb +42 -0
  212. data/spec/models/doc_log_spec.rb +70 -0
  213. data/spec/models/doc_metadata_spec.rb +90 -0
  214. data/spec/models/document_spec.rb +90 -0
  215. data/spec/models/drop_document_req_spec.rb +118 -0
  216. data/spec/models/drop_document_res_spec.rb +84 -0
  217. data/spec/models/execution_trigger_spec.rb +54 -0
  218. data/spec/models/extract_action_spec.rb +48 -0
  219. data/spec/models/extract_res_spec.rb +42 -0
  220. data/spec/models/extract_spec.rb +54 -0
  221. data/spec/models/get_document_list_res_spec.rb +72 -0
  222. data/spec/models/get_document_req_spec.rb +78 -0
  223. data/spec/models/get_document_res_spec.rb +78 -0
  224. data/spec/models/i_form_file_spec.rb +72 -0
  225. data/spec/models/image_action_spec.rb +206 -0
  226. data/spec/models/image_spec.rb +88 -0
  227. data/spec/models/job_config_res_spec.rb +42 -0
  228. data/spec/models/job_config_spec.rb +102 -0
  229. data/spec/models/job_spec.rb +54 -0
  230. data/spec/models/key_value_pair_string_object_spec.rb +48 -0
  231. data/spec/models/key_value_pair_string_string_spec.rb +48 -0
  232. data/spec/models/merge_action_spec.rb +42 -0
  233. data/spec/models/merge_res_spec.rb +42 -0
  234. data/spec/models/merge_spec.rb +54 -0
  235. data/spec/models/notification_spec.rb +48 -0
  236. data/spec/models/ocr_action_spec.rb +70 -0
  237. data/spec/models/optimize_action_spec.rb +228 -0
  238. data/spec/models/optimize_res_spec.rb +48 -0
  239. data/spec/models/optimize_spec.rb +54 -0
  240. data/spec/models/page_selection_spec.rb +58 -0
  241. data/spec/models/page_spec.rb +78 -0
  242. data/spec/models/pdf4me_action_spec.rb +70 -0
  243. data/spec/models/pdf4me_document_spec.rb +202 -0
  244. data/spec/models/pdf4me_exception_spec.rb +42 -0
  245. data/spec/models/pdf_a_action_spec.rb +86 -0
  246. data/spec/models/pdf_font_spec.rb +48 -0
  247. data/spec/models/pricing_spec.rb +80 -0
  248. data/spec/models/produce_documents_res_spec.rb +42 -0
  249. data/spec/models/produce_documents_spec.rb +78 -0
  250. data/spec/models/produce_output_spec.rb +46 -0
  251. data/spec/models/recognize_document_res_spec.rb +48 -0
  252. data/spec/models/recognize_document_spec.rb +54 -0
  253. data/spec/models/rectangle_spec.rb +60 -0
  254. data/spec/models/rgb_set_spec.rb +54 -0
  255. data/spec/models/rotate_spec.rb +54 -0
  256. data/spec/models/run_job_res_spec.rb +54 -0
  257. data/spec/models/signature_config_spec.rb +36 -0
  258. data/spec/models/split_action_spec.rb +60 -0
  259. data/spec/models/split_res_spec.rb +42 -0
  260. data/spec/models/split_spec.rb +54 -0
  261. data/spec/models/stamp_action_spec.rb +142 -0
  262. data/spec/models/stamp_res_spec.rb +42 -0
  263. data/spec/models/stamp_spec.rb +54 -0
  264. data/spec/models/storage_folder_spec.rb +58 -0
  265. data/spec/models/text_spec.rb +104 -0
  266. data/spec/models/transform_spec.rb +72 -0
  267. data/spec/models/translate_spec.rb +48 -0
  268. data/spec/models/user_fingerprint_spec.rb +48 -0
  269. data/spec/models/version_res_spec.rb +42 -0
  270. data/spec/spec_helper.rb +111 -0
  271. metadata +594 -0
@@ -0,0 +1,189 @@
1
+ =begin
2
+ #DmsApi
3
+
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
+ require 'date'
14
+
15
+ module Pdf4me
16
+ # Pdf4me Exception gives more information of what is the error.
17
+ class Pdf4meException
18
+ # Human Readable Message of the error
19
+ attr_accessor :error_message
20
+
21
+
22
+ # Attribute mapping from ruby-style variable name to JSON key.
23
+ def self.attribute_map
24
+ {
25
+ :'error_message' => :'errorMessage'
26
+ }
27
+ end
28
+
29
+ # Attribute type mapping.
30
+ def self.swagger_types
31
+ {
32
+ :'error_message' => :'String'
33
+ }
34
+ end
35
+
36
+ # Initializes the object
37
+ # @param [Hash] attributes Model attributes in the form of hash
38
+ def initialize(attributes = {})
39
+ return unless attributes.is_a?(Hash)
40
+
41
+ # convert string to symbol for hash key
42
+ attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
43
+
44
+ if attributes.has_key?(:'errorMessage')
45
+ self.error_message = attributes[:'errorMessage']
46
+ end
47
+
48
+ end
49
+
50
+ # Show invalid properties with the reasons. Usually used together with valid?
51
+ # @return Array for valid properties with the reasons
52
+ def list_invalid_properties
53
+ invalid_properties = Array.new
54
+ return invalid_properties
55
+ end
56
+
57
+ # Check to see if the all the properties in the model are valid
58
+ # @return true if the model is valid
59
+ def valid?
60
+ return true
61
+ end
62
+
63
+ # Checks equality by comparing each attribute.
64
+ # @param [Object] Object to be compared
65
+ def ==(o)
66
+ return true if self.equal?(o)
67
+ self.class == o.class &&
68
+ error_message == o.error_message
69
+ end
70
+
71
+ # @see the `==` method
72
+ # @param [Object] Object to be compared
73
+ def eql?(o)
74
+ self == o
75
+ end
76
+
77
+ # Calculates hash code according to all attributes.
78
+ # @return [Fixnum] Hash code
79
+ def hash
80
+ [error_message].hash
81
+ end
82
+
83
+ # Builds the object from hash
84
+ # @param [Hash] attributes Model attributes in the form of hash
85
+ # @return [Object] Returns the model itself
86
+ def build_from_hash(attributes)
87
+ return nil unless attributes.is_a?(Hash)
88
+ self.class.swagger_types.each_pair do |key, type|
89
+ if type =~ /\AArray<(.*)>/i
90
+ # check to ensure the input is an array given that the the attribute
91
+ # is documented as an array but the input is not
92
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
93
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
94
+ end
95
+ elsif !attributes[self.class.attribute_map[key]].nil?
96
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
97
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
98
+ end
99
+
100
+ self
101
+ end
102
+
103
+ # Deserializes the data based on type
104
+ # @param string type Data type
105
+ # @param string value Value to be deserialized
106
+ # @return [Object] Deserialized data
107
+ def _deserialize(type, value)
108
+ case type.to_sym
109
+ when :DateTime
110
+ DateTime.parse(value)
111
+ when :Date
112
+ Date.parse(value)
113
+ when :String
114
+ value.to_s
115
+ when :Integer
116
+ value.to_i
117
+ when :Float
118
+ value.to_f
119
+ when :BOOLEAN
120
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
121
+ true
122
+ else
123
+ false
124
+ end
125
+ when :Object
126
+ # generic object (usually a Hash), return directly
127
+ value
128
+ when /\AArray<(?<inner_type>.+)>\z/
129
+ inner_type = Regexp.last_match[:inner_type]
130
+ value.map { |v| _deserialize(inner_type, v) }
131
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
132
+ k_type = Regexp.last_match[:k_type]
133
+ v_type = Regexp.last_match[:v_type]
134
+ {}.tap do |hash|
135
+ value.each do |k, v|
136
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
137
+ end
138
+ end
139
+ else # model
140
+ temp_model = Pdf4me.const_get(type).new
141
+ temp_model.build_from_hash(value)
142
+ end
143
+ end
144
+
145
+ # Returns the string representation of the object
146
+ # @return [String] String presentation of the object
147
+ def to_s
148
+ to_hash.to_s
149
+ end
150
+
151
+ # to_body is an alias to to_hash (backward compatibility)
152
+ # @return [Hash] Returns the object in the form of hash
153
+ def to_body
154
+ to_hash
155
+ end
156
+
157
+ # Returns the object in the form of hash
158
+ # @return [Hash] Returns the object in the form of hash
159
+ def to_hash
160
+ hash = {}
161
+ self.class.attribute_map.each_pair do |attr, param|
162
+ value = self.send(attr)
163
+ next if value.nil?
164
+ hash[param] = _to_hash(value)
165
+ end
166
+ hash
167
+ end
168
+
169
+ # Outputs non-array value in the form of hash
170
+ # For object, use to_hash. Otherwise, just return the value
171
+ # @param [Object] value Any valid value
172
+ # @return [Hash] Returns the value in the form of hash
173
+ def _to_hash(value)
174
+ if value.is_a?(Array)
175
+ value.compact.map{ |v| _to_hash(v) }
176
+ elsif value.is_a?(Hash)
177
+ {}.tap do |hash|
178
+ value.each { |k, v| hash[k] = _to_hash(v) }
179
+ end
180
+ elsif value.respond_to? :to_hash
181
+ value.to_hash
182
+ else
183
+ value
184
+ end
185
+ end
186
+
187
+ end
188
+
189
+ end
@@ -0,0 +1,297 @@
1
+ =begin
2
+ #DmsApi
3
+
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
+ require 'date'
14
+
15
+ module Pdf4me
16
+ # The CreatePdfA accepts files from many different applications and automatically converts them into PDF/A. The level of conformity can be set to level A, U, or B. ICC color profiles for device-dependent color profiles and font types are embedded in the document.There is an option to provide the entire character set for fonts (no subsetting) to facilitate editing at a later stage. Missing fonts are reproduced as close to the original as possible via font recognition. Metadata can be generated automatically or added from external sources. The tool also detects and automatically repairs problems typical of the PDF format.A digital signature can be applied and a conformity check carried out at the end of the process.
17
+ class PdfAAction
18
+ # By default, fonts that are embedded are automatically subset to minimize the file size. If for any reason, e.g. postprocessing, fonts shall not be subset, set the property SubsetFonts to false. Whether fonts are subset or not is irrelevant with respect to the compliance with PDF/A. (Relevant is only that all used glyphs are contained in the font program.) Additionals Fonts can be given in this FontsToSubset List
19
+ attr_accessor :fonts_to_subset
20
+
21
+ # Other listed entries (e.g. ePDF10, ePDF11, .. .ePDF17, ePDFUnk) are not supported as output compliance level. Some files cannot be converted to the compliance requested. This will be detected and up- (AllowUpgrade) or downgrade (AllowDowngrade) the compliance automatically.
22
+ attr_accessor :compliance
23
+
24
+ # If set to True, automatic downgrade of the PDF/A conformance level is allowed, e.g. from PDF/A-1a to PDF/A-1b. If this property is set to True, the level is downgraded under the following conditions: - Downgrade to level B: If a file contains text that is not extractable (i.e.missing ToUnicode information). Example: Downgrade PDF/A-2u to PDF/A-2b. - Downgrade to level U (PDF/A-2 and PDF/A-3) or B(PDF/A-1): Level A requires logical structure information and “tagging” information, so if a file contains no such information, its level is downgraded. <para> Logical structure information in a PDF defines the structure of content, such as titles, paragraphs, figures, reading order, tables or articles.Logical structure elements can be “tagged” with descriptions or alternative text. “Tagging” allows the contents of an image to be described to the visually impaired. It is not possible for Pdf/A converter to add meaningful tagging information. Adding tagging information without prior knowledge about the input file’s structure and content is neither possible nor allowed by the PDF/A standard. For that reason, the conformance level is automatically downgraded to level B or U. Example: Downgrade PDF/A-1a to PDF/A-1b. </para><para> If set to False and an input file cannot be converted to the requested standard, e.g.because of missing “tagging” information, the conversion is aborted and the ErrorCode set to PDF_E_DOWNGRADE. </para>
25
+ attr_accessor :allow_downgrade
26
+
27
+ # If set to True, automatic upgrade of the PDF/A version is allowed. If the target standard is PDF/A-1 and a file contains elements that cannot be converted to PDF/A-1, the target standard is upgraded to PDF/A-2. This avoids significant visual differences in the output file. For example, the following elements may lead to an automatic upgrade: - Transpanrecy - Optional content groups(OCG, layers) - Real values that exceed the implementation limit of PDF/A-1 - Embedded OpenType font files - Predefined CMap encodings in Type0 fonts If set to False, the compliance is not upgraded.Depeding on the value of the ConversionErrorMask the conversion this will fail with a conversion error PDF_E_CONVERSION
28
+ attr_accessor :allow_upgrade
29
+
30
+ # <para> Set or get the path to the ICC profile for the output intent. </para> <para> The given profile is embedded only if the input file does not contain a PDF/A output intent already </para>
31
+ attr_accessor :output_intent_profile
32
+
33
+ # <para> Get or set whether to linearize the PDF output file, i.e. optimize file for fast web access. A linearized document has a slightly larger file size than a non-linearized file and provides the following main features: - When a document is opened in a PDF viewer of a web browser, the first page can be viewed without downloading the entire PDF file.In contrast, a non-linearized PDF file must be downloaded completely before the firstpage can be displayed. - When another page is requested by the user, that page is displayed as quickly as possible and incrementally as data arrives, without downloading the entire PDF file. </para> <para> Signed files cannot be linearizes.So this property must be set to False if a digital signature is applied. </para>
34
+ attr_accessor :linearize
35
+
36
+ attr_accessor :custom_properties
37
+
38
+ class EnumAttributeValidator
39
+ attr_reader :datatype
40
+ attr_reader :allowable_values
41
+
42
+ def initialize(datatype, allowable_values)
43
+ @allowable_values = allowable_values.map do |value|
44
+ case datatype.to_s
45
+ when /Integer/i
46
+ value.to_i
47
+ when /Float/i
48
+ value.to_f
49
+ else
50
+ value
51
+ end
52
+ end
53
+ end
54
+
55
+ def valid?(value)
56
+ !value || allowable_values.include?(value)
57
+ end
58
+ end
59
+
60
+ # Attribute mapping from ruby-style variable name to JSON key.
61
+ def self.attribute_map
62
+ {
63
+ :'fonts_to_subset' => :'fontsToSubset',
64
+ :'compliance' => :'compliance',
65
+ :'allow_downgrade' => :'allowDowngrade',
66
+ :'allow_upgrade' => :'allowUpgrade',
67
+ :'output_intent_profile' => :'outputIntentProfile',
68
+ :'linearize' => :'linearize',
69
+ :'custom_properties' => :'customProperties'
70
+ }
71
+ end
72
+
73
+ # Attribute type mapping.
74
+ def self.swagger_types
75
+ {
76
+ :'fonts_to_subset' => :'Array<PdfFont>',
77
+ :'compliance' => :'String',
78
+ :'allow_downgrade' => :'BOOLEAN',
79
+ :'allow_upgrade' => :'BOOLEAN',
80
+ :'output_intent_profile' => :'String',
81
+ :'linearize' => :'BOOLEAN',
82
+ :'custom_properties' => :'Array<KeyValuePairStringString>'
83
+ }
84
+ end
85
+
86
+ # Initializes the object
87
+ # @param [Hash] attributes Model attributes in the form of hash
88
+ def initialize(attributes = {})
89
+ return unless attributes.is_a?(Hash)
90
+
91
+ # convert string to symbol for hash key
92
+ attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
93
+
94
+ if attributes.has_key?(:'fontsToSubset')
95
+ if (value = attributes[:'fontsToSubset']).is_a?(Array)
96
+ self.fonts_to_subset = value
97
+ end
98
+ end
99
+
100
+ if attributes.has_key?(:'compliance')
101
+ self.compliance = attributes[:'compliance']
102
+ end
103
+
104
+ if attributes.has_key?(:'allowDowngrade')
105
+ self.allow_downgrade = attributes[:'allowDowngrade']
106
+ end
107
+
108
+ if attributes.has_key?(:'allowUpgrade')
109
+ self.allow_upgrade = attributes[:'allowUpgrade']
110
+ end
111
+
112
+ if attributes.has_key?(:'outputIntentProfile')
113
+ self.output_intent_profile = attributes[:'outputIntentProfile']
114
+ end
115
+
116
+ if attributes.has_key?(:'linearize')
117
+ self.linearize = attributes[:'linearize']
118
+ end
119
+
120
+ if attributes.has_key?(:'customProperties')
121
+ if (value = attributes[:'customProperties']).is_a?(Array)
122
+ self.custom_properties = value
123
+ end
124
+ end
125
+
126
+ end
127
+
128
+ # Show invalid properties with the reasons. Usually used together with valid?
129
+ # @return Array for valid properties with the reasons
130
+ def list_invalid_properties
131
+ invalid_properties = Array.new
132
+ return invalid_properties
133
+ end
134
+
135
+ # Check to see if the all the properties in the model are valid
136
+ # @return true if the model is valid
137
+ def valid?
138
+ compliance_validator = EnumAttributeValidator.new('String', ["pdfA1b", "pdfA1a", "pdfA2b", "pdfA2u", "pdfA2a", "pdfA3b", "pdfA3u", "pdfA3a"])
139
+ return false unless compliance_validator.valid?(@compliance)
140
+ output_intent_profile_validator = EnumAttributeValidator.new('String', ["notSet", "sRGBColorSpace"])
141
+ return false unless output_intent_profile_validator.valid?(@output_intent_profile)
142
+ return true
143
+ end
144
+
145
+ # Custom attribute writer method checking allowed values (enum).
146
+ # @param [Object] compliance Object to be assigned
147
+ def compliance=(compliance)
148
+ validator = EnumAttributeValidator.new('String', ["pdfA1b", "pdfA1a", "pdfA2b", "pdfA2u", "pdfA2a", "pdfA3b", "pdfA3u", "pdfA3a"])
149
+ unless validator.valid?(compliance)
150
+ fail ArgumentError, "invalid value for 'compliance', must be one of #{validator.allowable_values}."
151
+ end
152
+ @compliance = compliance
153
+ end
154
+
155
+ # Custom attribute writer method checking allowed values (enum).
156
+ # @param [Object] output_intent_profile Object to be assigned
157
+ def output_intent_profile=(output_intent_profile)
158
+ validator = EnumAttributeValidator.new('String', ["notSet", "sRGBColorSpace"])
159
+ unless validator.valid?(output_intent_profile)
160
+ fail ArgumentError, "invalid value for 'output_intent_profile', must be one of #{validator.allowable_values}."
161
+ end
162
+ @output_intent_profile = output_intent_profile
163
+ end
164
+
165
+ # Checks equality by comparing each attribute.
166
+ # @param [Object] Object to be compared
167
+ def ==(o)
168
+ return true if self.equal?(o)
169
+ self.class == o.class &&
170
+ fonts_to_subset == o.fonts_to_subset &&
171
+ compliance == o.compliance &&
172
+ allow_downgrade == o.allow_downgrade &&
173
+ allow_upgrade == o.allow_upgrade &&
174
+ output_intent_profile == o.output_intent_profile &&
175
+ linearize == o.linearize &&
176
+ custom_properties == o.custom_properties
177
+ end
178
+
179
+ # @see the `==` method
180
+ # @param [Object] Object to be compared
181
+ def eql?(o)
182
+ self == o
183
+ end
184
+
185
+ # Calculates hash code according to all attributes.
186
+ # @return [Fixnum] Hash code
187
+ def hash
188
+ [fonts_to_subset, compliance, allow_downgrade, allow_upgrade, output_intent_profile, linearize, custom_properties].hash
189
+ end
190
+
191
+ # Builds the object from hash
192
+ # @param [Hash] attributes Model attributes in the form of hash
193
+ # @return [Object] Returns the model itself
194
+ def build_from_hash(attributes)
195
+ return nil unless attributes.is_a?(Hash)
196
+ self.class.swagger_types.each_pair do |key, type|
197
+ if type =~ /\AArray<(.*)>/i
198
+ # check to ensure the input is an array given that the the attribute
199
+ # is documented as an array but the input is not
200
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
201
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
202
+ end
203
+ elsif !attributes[self.class.attribute_map[key]].nil?
204
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
205
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
206
+ end
207
+
208
+ self
209
+ end
210
+
211
+ # Deserializes the data based on type
212
+ # @param string type Data type
213
+ # @param string value Value to be deserialized
214
+ # @return [Object] Deserialized data
215
+ def _deserialize(type, value)
216
+ case type.to_sym
217
+ when :DateTime
218
+ DateTime.parse(value)
219
+ when :Date
220
+ Date.parse(value)
221
+ when :String
222
+ value.to_s
223
+ when :Integer
224
+ value.to_i
225
+ when :Float
226
+ value.to_f
227
+ when :BOOLEAN
228
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
229
+ true
230
+ else
231
+ false
232
+ end
233
+ when :Object
234
+ # generic object (usually a Hash), return directly
235
+ value
236
+ when /\AArray<(?<inner_type>.+)>\z/
237
+ inner_type = Regexp.last_match[:inner_type]
238
+ value.map { |v| _deserialize(inner_type, v) }
239
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
240
+ k_type = Regexp.last_match[:k_type]
241
+ v_type = Regexp.last_match[:v_type]
242
+ {}.tap do |hash|
243
+ value.each do |k, v|
244
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
245
+ end
246
+ end
247
+ else # model
248
+ temp_model = Pdf4me.const_get(type).new
249
+ temp_model.build_from_hash(value)
250
+ end
251
+ end
252
+
253
+ # Returns the string representation of the object
254
+ # @return [String] String presentation of the object
255
+ def to_s
256
+ to_hash.to_s
257
+ end
258
+
259
+ # to_body is an alias to to_hash (backward compatibility)
260
+ # @return [Hash] Returns the object in the form of hash
261
+ def to_body
262
+ to_hash
263
+ end
264
+
265
+ # Returns the object in the form of hash
266
+ # @return [Hash] Returns the object in the form of hash
267
+ def to_hash
268
+ hash = {}
269
+ self.class.attribute_map.each_pair do |attr, param|
270
+ value = self.send(attr)
271
+ next if value.nil?
272
+ hash[param] = _to_hash(value)
273
+ end
274
+ hash
275
+ end
276
+
277
+ # Outputs non-array value in the form of hash
278
+ # For object, use to_hash. Otherwise, just return the value
279
+ # @param [Object] value Any valid value
280
+ # @return [Hash] Returns the value in the form of hash
281
+ def _to_hash(value)
282
+ if value.is_a?(Array)
283
+ value.compact.map{ |v| _to_hash(v) }
284
+ elsif value.is_a?(Hash)
285
+ {}.tap do |hash|
286
+ value.each { |k, v| hash[k] = _to_hash(v) }
287
+ end
288
+ elsif value.respond_to? :to_hash
289
+ value.to_hash
290
+ else
291
+ value
292
+ end
293
+ end
294
+
295
+ end
296
+
297
+ end