libis-format 1.3.8.1 → 2.0.0
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.
- checksums.yaml +4 -4
- data/.coveralls.yml +2 -0
- data/.gitignore +20 -0
- data/.travis.yml +70 -0
- data/Gemfile +0 -12
- data/README.md +2 -2
- data/Rakefile +8 -0
- data/base/Dockerfile +35 -0
- data/base/Dockerfile.alpine +20 -0
- data/base/Dockerfile.rvm +56 -0
- data/base/rework_path +20 -0
- data/bin/{pdf_tool → pdf_copy} +2 -3
- data/data/PDFA_def.ps +3 -3
- data/data/eciRGB_v2.icc +0 -0
- data/data/types.yml +4 -17
- data/docker_cfg.yml +1 -0
- data/lib/libis/format/cli/convert.rb +4 -4
- data/lib/libis/format/cli/prompt_helper.rb +24 -32
- data/lib/libis/format/command_line.rb +3 -2
- data/lib/libis/format/config.rb +23 -19
- data/lib/libis/format/converter/audio_converter.rb +31 -56
- data/lib/libis/format/converter/base.rb +36 -16
- data/lib/libis/format/converter/chain.rb +32 -62
- data/lib/libis/format/converter/fop_pdf_converter.rb +8 -4
- data/lib/libis/format/converter/image_assembler.rb +82 -0
- data/lib/libis/format/converter/image_converter.rb +45 -248
- data/lib/libis/format/converter/image_splitter.rb +80 -0
- data/lib/libis/format/converter/image_watermarker.rb +261 -0
- data/lib/libis/format/converter/jp2_converter.rb +38 -36
- data/lib/libis/format/converter/office_converter.rb +28 -22
- data/lib/libis/format/converter/pdf_assembler.rb +66 -0
- data/lib/libis/format/converter/pdf_converter.rb +52 -200
- data/lib/libis/format/converter/pdf_optimizer.rb +70 -0
- data/lib/libis/format/converter/pdf_splitter.rb +65 -0
- data/lib/libis/format/converter/pdf_watermarker.rb +110 -0
- data/lib/libis/format/converter/repository.rb +13 -7
- data/lib/libis/format/converter/spreadsheet_converter.rb +16 -10
- data/lib/libis/format/converter/video_converter.rb +73 -109
- data/lib/libis/format/converter/xslt_converter.rb +11 -13
- data/lib/libis/format/converter.rb +1 -1
- data/lib/libis/format/identifier.rb +46 -44
- data/lib/libis/format/info.rb +27 -0
- data/lib/libis/format/library.rb +147 -0
- data/lib/libis/format/tool/droid.rb +30 -29
- data/lib/libis/format/tool/extension_identification.rb +26 -24
- data/lib/libis/format/tool/{ff_mpeg.rb → ffmpeg.rb} +10 -17
- data/lib/libis/format/tool/fido.rb +27 -22
- data/lib/libis/format/tool/file_tool.rb +24 -11
- data/lib/libis/format/tool/fop_pdf.rb +14 -25
- data/lib/libis/format/tool/identification_tool.rb +40 -38
- data/lib/libis/format/tool/office_to_pdf.rb +18 -30
- data/lib/libis/format/tool/pdf_copy.rb +47 -0
- data/lib/libis/format/tool/pdf_merge.rb +19 -25
- data/lib/libis/format/tool/pdf_optimizer.rb +19 -22
- data/lib/libis/format/tool/pdf_split.rb +33 -6
- data/lib/libis/format/tool/pdf_to_pdfa.rb +31 -45
- data/lib/libis/format/tool/pdfa_validator.rb +30 -24
- data/lib/libis/format/tool/spreadsheet_to_ods.rb +18 -29
- data/lib/libis/format/tool.rb +3 -4
- data/lib/libis/format/version.rb +1 -3
- data/lib/libis/format/yaml_loader.rb +71 -0
- data/lib/libis/format.rb +7 -5
- data/lib/libis-format.rb +0 -2
- data/libis-format.gemspec +19 -29
- data/tools/PdfTool.jar +0 -0
- data/tools/pdfbox/pdfbox-app-2.0.13.jar +0 -0
- data/tools/pdfbox/{preflight-app-3.0.3.jar → preflight-app-2.0.13.jar} +0 -0
- metadata +83 -152
- data/data/AdobeRGB1998.icc +0 -0
- data/lib/libis/format/converter/email_converter.rb +0 -51
- data/lib/libis/format/tool/eml_to_pdf.rb +0 -168
- data/lib/libis/format/tool/mail_to_pdf.rb +0 -447
- data/lib/libis/format/tool/msg_to_pdf.rb +0 -154
- data/lib/libis/format/tool/pdf_tool.rb +0 -52
- data/lib/libis/format/type_database.rb +0 -156
- data/lib/libis/format/type_database_impl.rb +0 -153
- data/tools/pdf2pdfa +0 -395
- data/tools/pdfbox/pdfbox-app-3.0.3.jar +0 -0
- /data/bin/{droid_tool → droid} +0 -0
- /data/bin/{fido_tool → fido} +0 -0
metadata
CHANGED
|
@@ -1,114 +1,87 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: libis-format
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 2.0.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Kris Dekeyser
|
|
8
|
+
autorequire:
|
|
8
9
|
bindir: bin
|
|
9
10
|
cert_chain: []
|
|
10
|
-
date:
|
|
11
|
+
date: 2020-11-09 00:00:00.000000000 Z
|
|
11
12
|
dependencies:
|
|
12
13
|
- !ruby/object:Gem::Dependency
|
|
13
|
-
name:
|
|
14
|
-
requirement: !ruby/object:Gem::Requirement
|
|
15
|
-
requirements:
|
|
16
|
-
- - "~>"
|
|
17
|
-
- !ruby/object:Gem::Version
|
|
18
|
-
version: 0.0.2
|
|
19
|
-
type: :runtime
|
|
20
|
-
prerelease: false
|
|
21
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
22
|
-
requirements:
|
|
23
|
-
- - "~>"
|
|
24
|
-
- !ruby/object:Gem::Version
|
|
25
|
-
version: 0.0.2
|
|
26
|
-
- !ruby/object:Gem::Dependency
|
|
27
|
-
name: deep_dive
|
|
28
|
-
requirement: !ruby/object:Gem::Requirement
|
|
29
|
-
requirements:
|
|
30
|
-
- - "~>"
|
|
31
|
-
- !ruby/object:Gem::Version
|
|
32
|
-
version: '0.3'
|
|
33
|
-
type: :runtime
|
|
34
|
-
prerelease: false
|
|
35
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
36
|
-
requirements:
|
|
37
|
-
- - "~>"
|
|
38
|
-
- !ruby/object:Gem::Version
|
|
39
|
-
version: '0.3'
|
|
40
|
-
- !ruby/object:Gem::Dependency
|
|
41
|
-
name: libis-tools
|
|
14
|
+
name: rake
|
|
42
15
|
requirement: !ruby/object:Gem::Requirement
|
|
43
16
|
requirements:
|
|
44
17
|
- - "~>"
|
|
45
18
|
- !ruby/object:Gem::Version
|
|
46
|
-
version: '
|
|
47
|
-
type: :
|
|
19
|
+
version: '10.3'
|
|
20
|
+
type: :development
|
|
48
21
|
prerelease: false
|
|
49
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
50
23
|
requirements:
|
|
51
24
|
- - "~>"
|
|
52
25
|
- !ruby/object:Gem::Version
|
|
53
|
-
version: '
|
|
26
|
+
version: '10.3'
|
|
54
27
|
- !ruby/object:Gem::Dependency
|
|
55
|
-
name:
|
|
28
|
+
name: rspec
|
|
56
29
|
requirement: !ruby/object:Gem::Requirement
|
|
57
30
|
requirements:
|
|
58
31
|
- - "~>"
|
|
59
32
|
- !ruby/object:Gem::Version
|
|
60
|
-
version: '
|
|
61
|
-
type: :
|
|
33
|
+
version: '3.1'
|
|
34
|
+
type: :development
|
|
62
35
|
prerelease: false
|
|
63
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
64
37
|
requirements:
|
|
65
38
|
- - "~>"
|
|
66
39
|
- !ruby/object:Gem::Version
|
|
67
|
-
version: '
|
|
40
|
+
version: '3.1'
|
|
68
41
|
- !ruby/object:Gem::Dependency
|
|
69
|
-
name:
|
|
42
|
+
name: awesome_print
|
|
70
43
|
requirement: !ruby/object:Gem::Requirement
|
|
71
44
|
requirements:
|
|
72
|
-
- - "
|
|
45
|
+
- - ">="
|
|
73
46
|
- !ruby/object:Gem::Version
|
|
74
|
-
version:
|
|
75
|
-
type: :
|
|
47
|
+
version: '0'
|
|
48
|
+
type: :development
|
|
76
49
|
prerelease: false
|
|
77
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
78
51
|
requirements:
|
|
79
|
-
- - "
|
|
52
|
+
- - ">="
|
|
80
53
|
- !ruby/object:Gem::Version
|
|
81
|
-
version:
|
|
54
|
+
version: '0'
|
|
82
55
|
- !ruby/object:Gem::Dependency
|
|
83
|
-
name:
|
|
56
|
+
name: equivalent-xml
|
|
84
57
|
requirement: !ruby/object:Gem::Requirement
|
|
85
58
|
requirements:
|
|
86
59
|
- - "~>"
|
|
87
60
|
- !ruby/object:Gem::Version
|
|
88
|
-
version: '0.
|
|
89
|
-
type: :
|
|
61
|
+
version: '0.5'
|
|
62
|
+
type: :development
|
|
90
63
|
prerelease: false
|
|
91
64
|
version_requirements: !ruby/object:Gem::Requirement
|
|
92
65
|
requirements:
|
|
93
66
|
- - "~>"
|
|
94
67
|
- !ruby/object:Gem::Version
|
|
95
|
-
version: '0.
|
|
68
|
+
version: '0.5'
|
|
96
69
|
- !ruby/object:Gem::Dependency
|
|
97
|
-
name:
|
|
70
|
+
name: nokogiri
|
|
98
71
|
requirement: !ruby/object:Gem::Requirement
|
|
99
72
|
requirements:
|
|
100
|
-
- - "
|
|
73
|
+
- - ">="
|
|
101
74
|
- !ruby/object:Gem::Version
|
|
102
|
-
version: '
|
|
103
|
-
type: :
|
|
75
|
+
version: '0'
|
|
76
|
+
type: :development
|
|
104
77
|
prerelease: false
|
|
105
78
|
version_requirements: !ruby/object:Gem::Requirement
|
|
106
79
|
requirements:
|
|
107
|
-
- - "
|
|
80
|
+
- - ">="
|
|
108
81
|
- !ruby/object:Gem::Version
|
|
109
|
-
version: '
|
|
82
|
+
version: '0'
|
|
110
83
|
- !ruby/object:Gem::Dependency
|
|
111
|
-
name:
|
|
84
|
+
name: libis-tools
|
|
112
85
|
requirement: !ruby/object:Gem::Requirement
|
|
113
86
|
requirements:
|
|
114
87
|
- - "~>"
|
|
@@ -125,156 +98,109 @@ dependencies:
|
|
|
125
98
|
name: os
|
|
126
99
|
requirement: !ruby/object:Gem::Requirement
|
|
127
100
|
requirements:
|
|
128
|
-
- -
|
|
101
|
+
- - '='
|
|
129
102
|
- !ruby/object:Gem::Version
|
|
130
|
-
version:
|
|
103
|
+
version: 0.9.6
|
|
131
104
|
type: :runtime
|
|
132
105
|
prerelease: false
|
|
133
106
|
version_requirements: !ruby/object:Gem::Requirement
|
|
134
107
|
requirements:
|
|
135
|
-
- -
|
|
108
|
+
- - '='
|
|
136
109
|
- !ruby/object:Gem::Version
|
|
137
|
-
version:
|
|
110
|
+
version: 0.9.6
|
|
138
111
|
- !ruby/object:Gem::Dependency
|
|
139
|
-
name:
|
|
112
|
+
name: mini_magick
|
|
140
113
|
requirement: !ruby/object:Gem::Requirement
|
|
141
114
|
requirements:
|
|
142
115
|
- - "~>"
|
|
143
116
|
- !ruby/object:Gem::Version
|
|
144
|
-
version: '
|
|
117
|
+
version: '4.3'
|
|
145
118
|
type: :runtime
|
|
146
119
|
prerelease: false
|
|
147
120
|
version_requirements: !ruby/object:Gem::Requirement
|
|
148
121
|
requirements:
|
|
149
122
|
- - "~>"
|
|
150
123
|
- !ruby/object:Gem::Version
|
|
151
|
-
version: '
|
|
124
|
+
version: '4.3'
|
|
152
125
|
- !ruby/object:Gem::Dependency
|
|
153
|
-
name:
|
|
126
|
+
name: deep_dive
|
|
154
127
|
requirement: !ruby/object:Gem::Requirement
|
|
155
128
|
requirements:
|
|
156
129
|
- - "~>"
|
|
157
130
|
- !ruby/object:Gem::Version
|
|
158
|
-
version: '0.
|
|
131
|
+
version: '0.3'
|
|
159
132
|
type: :runtime
|
|
160
133
|
prerelease: false
|
|
161
134
|
version_requirements: !ruby/object:Gem::Requirement
|
|
162
135
|
requirements:
|
|
163
136
|
- - "~>"
|
|
164
137
|
- !ruby/object:Gem::Version
|
|
165
|
-
version: '0.
|
|
138
|
+
version: '0.3'
|
|
166
139
|
- !ruby/object:Gem::Dependency
|
|
167
|
-
name:
|
|
140
|
+
name: chromaprint
|
|
168
141
|
requirement: !ruby/object:Gem::Requirement
|
|
169
142
|
requirements:
|
|
170
143
|
- - "~>"
|
|
171
144
|
- !ruby/object:Gem::Version
|
|
172
|
-
version:
|
|
145
|
+
version: 0.0.2
|
|
173
146
|
type: :runtime
|
|
174
147
|
prerelease: false
|
|
175
148
|
version_requirements: !ruby/object:Gem::Requirement
|
|
176
149
|
requirements:
|
|
177
150
|
- - "~>"
|
|
178
151
|
- !ruby/object:Gem::Version
|
|
179
|
-
version:
|
|
180
|
-
- !ruby/object:Gem::Dependency
|
|
181
|
-
name: awesome_print
|
|
182
|
-
requirement: !ruby/object:Gem::Requirement
|
|
183
|
-
requirements:
|
|
184
|
-
- - ">="
|
|
185
|
-
- !ruby/object:Gem::Version
|
|
186
|
-
version: '0'
|
|
187
|
-
type: :development
|
|
188
|
-
prerelease: false
|
|
189
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
190
|
-
requirements:
|
|
191
|
-
- - ">="
|
|
192
|
-
- !ruby/object:Gem::Version
|
|
193
|
-
version: '0'
|
|
194
|
-
- !ruby/object:Gem::Dependency
|
|
195
|
-
name: equivalent-xml
|
|
196
|
-
requirement: !ruby/object:Gem::Requirement
|
|
197
|
-
requirements:
|
|
198
|
-
- - ">="
|
|
199
|
-
- !ruby/object:Gem::Version
|
|
200
|
-
version: '0'
|
|
201
|
-
type: :development
|
|
202
|
-
prerelease: false
|
|
203
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
204
|
-
requirements:
|
|
205
|
-
- - ">="
|
|
206
|
-
- !ruby/object:Gem::Version
|
|
207
|
-
version: '0'
|
|
208
|
-
- !ruby/object:Gem::Dependency
|
|
209
|
-
name: rake
|
|
210
|
-
requirement: !ruby/object:Gem::Requirement
|
|
211
|
-
requirements:
|
|
212
|
-
- - ">="
|
|
213
|
-
- !ruby/object:Gem::Version
|
|
214
|
-
version: '0'
|
|
215
|
-
type: :development
|
|
216
|
-
prerelease: false
|
|
217
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
218
|
-
requirements:
|
|
219
|
-
- - ">="
|
|
220
|
-
- !ruby/object:Gem::Version
|
|
221
|
-
version: '0'
|
|
222
|
-
- !ruby/object:Gem::Dependency
|
|
223
|
-
name: rspec
|
|
224
|
-
requirement: !ruby/object:Gem::Requirement
|
|
225
|
-
requirements:
|
|
226
|
-
- - ">="
|
|
227
|
-
- !ruby/object:Gem::Version
|
|
228
|
-
version: '0'
|
|
229
|
-
type: :development
|
|
230
|
-
prerelease: false
|
|
231
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
232
|
-
requirements:
|
|
233
|
-
- - ">="
|
|
234
|
-
- !ruby/object:Gem::Version
|
|
235
|
-
version: '0'
|
|
152
|
+
version: 0.0.2
|
|
236
153
|
- !ruby/object:Gem::Dependency
|
|
237
|
-
name:
|
|
154
|
+
name: naturally
|
|
238
155
|
requirement: !ruby/object:Gem::Requirement
|
|
239
156
|
requirements:
|
|
240
|
-
- - "
|
|
157
|
+
- - "~>"
|
|
241
158
|
- !ruby/object:Gem::Version
|
|
242
|
-
version: '
|
|
243
|
-
type: :
|
|
159
|
+
version: '2.1'
|
|
160
|
+
type: :runtime
|
|
244
161
|
prerelease: false
|
|
245
162
|
version_requirements: !ruby/object:Gem::Requirement
|
|
246
163
|
requirements:
|
|
247
|
-
- - "
|
|
164
|
+
- - "~>"
|
|
248
165
|
- !ruby/object:Gem::Version
|
|
249
|
-
version: '
|
|
250
|
-
description: Collection of tools and classes that help to identify
|
|
251
|
-
create derivative copies.
|
|
166
|
+
version: '2.1'
|
|
167
|
+
description: Collection of tools and classes that help to identify formats of binary
|
|
168
|
+
files and create derivative copies (e.g. PDF from Word).
|
|
252
169
|
email:
|
|
253
170
|
- kris.dekeyser@libis.be
|
|
254
171
|
executables:
|
|
255
|
-
-
|
|
256
|
-
-
|
|
172
|
+
- droid
|
|
173
|
+
- fido
|
|
257
174
|
- formatinfo
|
|
258
175
|
- libis_format
|
|
259
|
-
-
|
|
176
|
+
- pdf_copy
|
|
260
177
|
extensions: []
|
|
261
178
|
extra_rdoc_files: []
|
|
262
179
|
files:
|
|
180
|
+
- ".coveralls.yml"
|
|
181
|
+
- ".gitignore"
|
|
182
|
+
- ".travis.yml"
|
|
263
183
|
- Gemfile
|
|
264
184
|
- LICENSE.txt
|
|
265
185
|
- README.md
|
|
266
|
-
-
|
|
267
|
-
-
|
|
186
|
+
- Rakefile
|
|
187
|
+
- base/Dockerfile
|
|
188
|
+
- base/Dockerfile.alpine
|
|
189
|
+
- base/Dockerfile.rvm
|
|
190
|
+
- base/rework_path
|
|
191
|
+
- bin/droid
|
|
192
|
+
- bin/fido
|
|
268
193
|
- bin/formatinfo
|
|
269
194
|
- bin/libis_format
|
|
270
|
-
- bin/
|
|
271
|
-
- data/AdobeRGB1998.icc
|
|
195
|
+
- bin/pdf_copy
|
|
272
196
|
- data/ISOcoated_v2_eci.icc
|
|
273
197
|
- data/PDFA_def.ps
|
|
274
198
|
- data/ead.xsd
|
|
199
|
+
- data/eciRGB_v2.icc
|
|
275
200
|
- data/lias_formats.xml
|
|
276
201
|
- data/types.yml
|
|
277
202
|
- data/xlink.xsd
|
|
203
|
+
- docker_cfg.yml
|
|
278
204
|
- lib/libis-format.rb
|
|
279
205
|
- lib/libis/format.rb
|
|
280
206
|
- lib/libis/format/cli/convert.rb
|
|
@@ -287,39 +213,43 @@ files:
|
|
|
287
213
|
- lib/libis/format/converter/audio_converter.rb
|
|
288
214
|
- lib/libis/format/converter/base.rb
|
|
289
215
|
- lib/libis/format/converter/chain.rb
|
|
290
|
-
- lib/libis/format/converter/email_converter.rb
|
|
291
216
|
- lib/libis/format/converter/fop_pdf_converter.rb
|
|
217
|
+
- lib/libis/format/converter/image_assembler.rb
|
|
292
218
|
- lib/libis/format/converter/image_converter.rb
|
|
219
|
+
- lib/libis/format/converter/image_splitter.rb
|
|
220
|
+
- lib/libis/format/converter/image_watermarker.rb
|
|
293
221
|
- lib/libis/format/converter/jp2_converter.rb
|
|
294
222
|
- lib/libis/format/converter/office_converter.rb
|
|
223
|
+
- lib/libis/format/converter/pdf_assembler.rb
|
|
295
224
|
- lib/libis/format/converter/pdf_converter.rb
|
|
225
|
+
- lib/libis/format/converter/pdf_optimizer.rb
|
|
226
|
+
- lib/libis/format/converter/pdf_splitter.rb
|
|
227
|
+
- lib/libis/format/converter/pdf_watermarker.rb
|
|
296
228
|
- lib/libis/format/converter/repository.rb
|
|
297
229
|
- lib/libis/format/converter/spreadsheet_converter.rb
|
|
298
230
|
- lib/libis/format/converter/video_converter.rb
|
|
299
231
|
- lib/libis/format/converter/xslt_converter.rb
|
|
300
232
|
- lib/libis/format/identifier.rb
|
|
233
|
+
- lib/libis/format/info.rb
|
|
234
|
+
- lib/libis/format/library.rb
|
|
301
235
|
- lib/libis/format/tool.rb
|
|
302
236
|
- lib/libis/format/tool/droid.rb
|
|
303
|
-
- lib/libis/format/tool/eml_to_pdf.rb
|
|
304
237
|
- lib/libis/format/tool/extension_identification.rb
|
|
305
|
-
- lib/libis/format/tool/
|
|
238
|
+
- lib/libis/format/tool/ffmpeg.rb
|
|
306
239
|
- lib/libis/format/tool/fido.rb
|
|
307
240
|
- lib/libis/format/tool/file_tool.rb
|
|
308
241
|
- lib/libis/format/tool/fop_pdf.rb
|
|
309
242
|
- lib/libis/format/tool/identification_tool.rb
|
|
310
|
-
- lib/libis/format/tool/mail_to_pdf.rb
|
|
311
|
-
- lib/libis/format/tool/msg_to_pdf.rb
|
|
312
243
|
- lib/libis/format/tool/office_to_pdf.rb
|
|
244
|
+
- lib/libis/format/tool/pdf_copy.rb
|
|
313
245
|
- lib/libis/format/tool/pdf_merge.rb
|
|
314
246
|
- lib/libis/format/tool/pdf_optimizer.rb
|
|
315
247
|
- lib/libis/format/tool/pdf_split.rb
|
|
316
248
|
- lib/libis/format/tool/pdf_to_pdfa.rb
|
|
317
|
-
- lib/libis/format/tool/pdf_tool.rb
|
|
318
249
|
- lib/libis/format/tool/pdfa_validator.rb
|
|
319
250
|
- lib/libis/format/tool/spreadsheet_to_ods.rb
|
|
320
|
-
- lib/libis/format/type_database.rb
|
|
321
|
-
- lib/libis/format/type_database_impl.rb
|
|
322
251
|
- lib/libis/format/version.rb
|
|
252
|
+
- lib/libis/format/yaml_loader.rb
|
|
323
253
|
- libis-format.gemspec
|
|
324
254
|
- tools/PdfTool.jar
|
|
325
255
|
- tools/bcpkix-jdk15on-1.49.jar
|
|
@@ -374,13 +304,13 @@ files:
|
|
|
374
304
|
- tools/fop/lib/xmlgraphics-commons-2.3.jar
|
|
375
305
|
- tools/fop/lib/xmlgraphics-commons.LICENSE.txt
|
|
376
306
|
- tools/fop/lib/xmlgraphics-commons.NOTICE.txt
|
|
377
|
-
- tools/
|
|
378
|
-
- tools/pdfbox/
|
|
379
|
-
- tools/pdfbox/preflight-app-3.0.3.jar
|
|
307
|
+
- tools/pdfbox/pdfbox-app-2.0.13.jar
|
|
308
|
+
- tools/pdfbox/preflight-app-2.0.13.jar
|
|
380
309
|
homepage: ''
|
|
381
310
|
licenses:
|
|
382
311
|
- MIT
|
|
383
312
|
metadata: {}
|
|
313
|
+
post_install_message:
|
|
384
314
|
rdoc_options: []
|
|
385
315
|
require_paths:
|
|
386
316
|
- lib
|
|
@@ -388,14 +318,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
388
318
|
requirements:
|
|
389
319
|
- - ">="
|
|
390
320
|
- !ruby/object:Gem::Version
|
|
391
|
-
version: '
|
|
321
|
+
version: '0'
|
|
392
322
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
393
323
|
requirements:
|
|
394
324
|
- - ">="
|
|
395
325
|
- !ruby/object:Gem::Version
|
|
396
326
|
version: '0'
|
|
397
327
|
requirements: []
|
|
398
|
-
rubygems_version:
|
|
328
|
+
rubygems_version: 3.0.8
|
|
329
|
+
signing_key:
|
|
399
330
|
specification_version: 4
|
|
400
331
|
summary: LIBIS File format format services.
|
|
401
332
|
test_files: []
|
data/data/AdobeRGB1998.icc
DELETED
|
Binary file
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require_relative 'base'
|
|
4
|
-
|
|
5
|
-
require 'libis/format/tool/msg_to_pdf'
|
|
6
|
-
require 'libis/format/tool/eml_to_pdf'
|
|
7
|
-
require 'libis/format/type_database'
|
|
8
|
-
require 'rexml/document'
|
|
9
|
-
|
|
10
|
-
module Libis
|
|
11
|
-
module Format
|
|
12
|
-
module Converter
|
|
13
|
-
class EmailConverter < Libis::Format::Converter::Base
|
|
14
|
-
def self.input_types
|
|
15
|
-
%i[MSG EML]
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
def self.output_types(format = nil)
|
|
19
|
-
return [] unless input_types.include?(format)
|
|
20
|
-
|
|
21
|
-
%i[PDF]
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
def email_convert(_)
|
|
25
|
-
# force usage of this converter
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
def convert(source, target, format, opts = {})
|
|
29
|
-
super
|
|
30
|
-
|
|
31
|
-
tool = tool_for_format(opts, source)
|
|
32
|
-
tool.run(source, target)
|
|
33
|
-
rescue StandardError => e
|
|
34
|
-
{ command: { status: -1 }, errors: [{ error: e.message, error_class: e.class, error_trace: e.backtrace }] }
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
private
|
|
38
|
-
|
|
39
|
-
def tool_for_format(opts, source)
|
|
40
|
-
if opts[:source_format] == :MSG || File.extname(source).casecmp('.msg').zero?
|
|
41
|
-
Format::Tool::MsgToPdf
|
|
42
|
-
elsif opts[:source_format] == :EML || File.extname(source).casecmp('.eml').zero?
|
|
43
|
-
Format::Tool::EmlToPdf
|
|
44
|
-
else
|
|
45
|
-
raise "Unsupported file extension #{File.extname(source)}"
|
|
46
|
-
end
|
|
47
|
-
end
|
|
48
|
-
end
|
|
49
|
-
end
|
|
50
|
-
end
|
|
51
|
-
end
|
|
@@ -1,168 +0,0 @@
|
|
|
1
|
-
# rubocop:disable Style/Documentation, Metrics/*
|
|
2
|
-
# frozen_string_literal: true
|
|
3
|
-
|
|
4
|
-
require_relative 'mail_to_pdf'
|
|
5
|
-
|
|
6
|
-
require 'mail'
|
|
7
|
-
require 'word_wrap'
|
|
8
|
-
|
|
9
|
-
module Libis
|
|
10
|
-
module Format
|
|
11
|
-
module Tool
|
|
12
|
-
class EmlToPdf < MailToPdf
|
|
13
|
-
protected
|
|
14
|
-
|
|
15
|
-
def open_email(source)
|
|
16
|
-
eml = File.read(source)
|
|
17
|
-
begin
|
|
18
|
-
msg = Mail.new(eml)
|
|
19
|
-
rescue StandardError => e
|
|
20
|
-
eml.force_encoding('ASCII-8BIT')
|
|
21
|
-
msg = Mail.new(eml)
|
|
22
|
-
@warnings << "Failed to parse message with default encoding, forced ASCII-8BIT: #{e.message}"
|
|
23
|
-
end
|
|
24
|
-
msg
|
|
25
|
-
rescue StandardError => e
|
|
26
|
-
raise "Failed to open message: #{e.message}"
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
def close_email(_msg)
|
|
30
|
-
true
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
def get_body_html(msg)
|
|
34
|
-
# Get the encoding
|
|
35
|
-
|
|
36
|
-
if !msg.multipart?
|
|
37
|
-
HTML_WRAPPER_TEMPLATE % WordWrap.ww(msg.decoded, 120, false)
|
|
38
|
-
|
|
39
|
-
elsif msg.html_part
|
|
40
|
-
body = msg.html_part.body.decoded
|
|
41
|
-
|
|
42
|
-
# if the encoding is not UTF-8, then the HTML may contain metadata that specifies the encoding
|
|
43
|
-
# the browser will use that metadata to render the HTML correctly, so we should not force it to UTF-8
|
|
44
|
-
encoding = body.scan(/<\?xml\s[^?>]*encoding="([^"]*)"[^?>]*\?>/).flatten.first
|
|
45
|
-
encoding ||= body.scan(/<meta\s+[^>]*charset=["']?([^"'>\s]+)["']?[^>]*>/).flatten.first
|
|
46
|
-
encoding ||= msg.html_part.charset
|
|
47
|
-
encoding ||= msg.content_type_parameters['charset'] || msg.charset || 'UTF-8'
|
|
48
|
-
|
|
49
|
-
body.force_encoding(encoding) unless encoding.casecmp(body.encoding.name).zero?
|
|
50
|
-
|
|
51
|
-
body
|
|
52
|
-
elsif msg.text_part
|
|
53
|
-
HTML_WRAPPER_TEMPLATE % msg.text_part.decoded
|
|
54
|
-
|
|
55
|
-
else
|
|
56
|
-
HTML_WRAPPER_TEMPLATE % ''
|
|
57
|
-
|
|
58
|
-
end
|
|
59
|
-
end
|
|
60
|
-
|
|
61
|
-
def get_subject(msg)
|
|
62
|
-
msg.subject || 'No Subject'
|
|
63
|
-
end
|
|
64
|
-
|
|
65
|
-
def get_headers(msg)
|
|
66
|
-
headers = {}
|
|
67
|
-
html = ''
|
|
68
|
-
|
|
69
|
-
field_list = msg.header_fields
|
|
70
|
-
|
|
71
|
-
%w[From To Cc Subject Date].each do |key|
|
|
72
|
-
value = find_hdr(field_list, key)
|
|
73
|
-
next unless value
|
|
74
|
-
|
|
75
|
-
if value.is_a? Time
|
|
76
|
-
begin
|
|
77
|
-
headers[key.downcase.to_sym] = value.iso8601
|
|
78
|
-
html += hdr_html(key, value.rfc2822)
|
|
79
|
-
rescue StandardError => e
|
|
80
|
-
logger.warn "Failed to parse date header '#{value}': #{e.message}"
|
|
81
|
-
end
|
|
82
|
-
else
|
|
83
|
-
headers[key.downcase.to_sym] = value
|
|
84
|
-
html += hdr_html(key, value)
|
|
85
|
-
end
|
|
86
|
-
end
|
|
87
|
-
|
|
88
|
-
[headers, html]
|
|
89
|
-
end
|
|
90
|
-
|
|
91
|
-
def get_inline_attachment_data(attachments, cid)
|
|
92
|
-
attachments.each do |attachment|
|
|
93
|
-
next unless attachment.has_content_id?
|
|
94
|
-
next unless attachment.cid == cid
|
|
95
|
-
|
|
96
|
-
begin
|
|
97
|
-
attachment.data.rewind
|
|
98
|
-
rescue NoMethodError
|
|
99
|
-
# do nothing, attachment.data is not a stream
|
|
100
|
-
end
|
|
101
|
-
return {
|
|
102
|
-
mime_type: attachment.mime_type,
|
|
103
|
-
base64: Base64.strict_encode64(attachment.read)
|
|
104
|
-
}
|
|
105
|
-
end
|
|
106
|
-
nil
|
|
107
|
-
end
|
|
108
|
-
|
|
109
|
-
def get_file_attachments(attachments, _used_files)
|
|
110
|
-
attachments.select do |attachment|
|
|
111
|
-
!attachment.inline? &&
|
|
112
|
-
!attachment.has_content_id? &&
|
|
113
|
-
attachment.mime_type != 'message/rfc822'
|
|
114
|
-
end
|
|
115
|
-
end
|
|
116
|
-
|
|
117
|
-
def get_mail_attachments(attachments)
|
|
118
|
-
attachments.select do |attachment|
|
|
119
|
-
!attachment.inline? &&
|
|
120
|
-
!attachment.has_content_id? &&
|
|
121
|
-
attachment.mime_type == 'message/rfc822'
|
|
122
|
-
end
|
|
123
|
-
end
|
|
124
|
-
|
|
125
|
-
def get_attachment_info(attachment)
|
|
126
|
-
if attachment.mime_type == 'message/rfc822'
|
|
127
|
-
sub_msg = Mail.new(attachment.body.to_s)
|
|
128
|
-
subject = sub_msg.subject.to_s.strip
|
|
129
|
-
|
|
130
|
-
{
|
|
131
|
-
embedded_msg: sub_msg,
|
|
132
|
-
filename: subject
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
elsif attachment.filename
|
|
136
|
-
|
|
137
|
-
{
|
|
138
|
-
data: attachment.decoded,
|
|
139
|
-
filename: attachment.filename
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
else
|
|
143
|
-
{
|
|
144
|
-
filename: attachment.content_id.to_s
|
|
145
|
-
}
|
|
146
|
-
end
|
|
147
|
-
end
|
|
148
|
-
|
|
149
|
-
private
|
|
150
|
-
|
|
151
|
-
def find_hdr(list, key)
|
|
152
|
-
hdr = list.find { |x| x.name.to_s =~ /^#{key}$/i }
|
|
153
|
-
return nil unless hdr
|
|
154
|
-
|
|
155
|
-
field = hdr.field
|
|
156
|
-
return hdr.value unless field
|
|
157
|
-
|
|
158
|
-
return field.decoded unless field.is_a? Mail::CommonDateField
|
|
159
|
-
|
|
160
|
-
return field.date_time.to_time.localtime if field.respond_to?(:date_time)
|
|
161
|
-
|
|
162
|
-
DateTime.parse(field.decoded).to_time.localtime
|
|
163
|
-
end
|
|
164
|
-
end
|
|
165
|
-
end
|
|
166
|
-
end
|
|
167
|
-
end
|
|
168
|
-
# rubocop:enable Style/Documentation, Metrics/*
|