libis-format 1.0.7 → 2.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (64) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -0
  3. data/.travis.yml +32 -24
  4. data/README.md +2 -2
  5. data/base/Dockerfile +5 -3
  6. data/base/rework_path +5 -10
  7. data/bin/{droid → droid_tool} +0 -0
  8. data/bin/{fido → fido_tool} +0 -0
  9. data/lib/libis/format.rb +12 -3
  10. data/lib/libis/format/cli/convert.rb +4 -4
  11. data/lib/libis/format/config.rb +16 -12
  12. data/lib/libis/format/converter/audio_converter.rb +2 -36
  13. data/lib/libis/format/converter/base.rb +22 -8
  14. data/lib/libis/format/converter/chain.rb +3 -3
  15. data/lib/libis/format/converter/image_assembler.rb +82 -0
  16. data/lib/libis/format/converter/image_converter.rb +20 -138
  17. data/lib/libis/format/converter/image_splitter.rb +84 -0
  18. data/lib/libis/format/converter/image_watermarker.rb +261 -0
  19. data/lib/libis/format/converter/jp2_converter.rb +1 -1
  20. data/lib/libis/format/converter/office_converter.rb +2 -2
  21. data/lib/libis/format/converter/pdf_assembler.rb +66 -0
  22. data/lib/libis/format/converter/pdf_converter.rb +6 -132
  23. data/lib/libis/format/converter/pdf_metadata.rb +82 -0
  24. data/lib/libis/format/converter/pdf_optimizer.rb +67 -0
  25. data/lib/libis/format/converter/pdf_protecter.rb +147 -0
  26. data/lib/libis/format/converter/pdf_selecter.rb +83 -0
  27. data/lib/libis/format/converter/pdf_splitter.rb +70 -0
  28. data/lib/libis/format/converter/pdf_watermarker_header.rb +71 -0
  29. data/lib/libis/format/converter/pdf_watermarker_image.rb +76 -0
  30. data/lib/libis/format/converter/pdf_watermarker_text.rb +93 -0
  31. data/lib/libis/format/converter/spreadsheet_converter.rb +2 -2
  32. data/lib/libis/format/converter/video_converter.rb +1 -1
  33. data/lib/libis/format/identifier.rb +3 -3
  34. data/lib/libis/format/info.rb +27 -0
  35. data/lib/libis/format/library.rb +147 -0
  36. data/lib/libis/format/tool.rb +4 -1
  37. data/lib/libis/format/tool/extension_identification.rb +4 -4
  38. data/lib/libis/format/tool/identification_tool.rb +6 -6
  39. data/lib/libis/format/tool/pdf_merge.rb +3 -3
  40. data/lib/libis/format/tool/{pdf_copy.rb → pdf_metadata.rb} +5 -5
  41. data/lib/libis/format/tool/pdf_protect.rb +47 -0
  42. data/lib/libis/format/tool/pdf_select.rb +47 -0
  43. data/lib/libis/format/tool/pdf_split.rb +4 -4
  44. data/lib/libis/format/tool/pdf_watermark.rb +47 -0
  45. data/lib/libis/format/tool/spreadsheet_to_ods.rb +1 -0
  46. data/lib/libis/format/version.rb +1 -1
  47. data/lib/libis/format/yaml_loader.rb +71 -0
  48. data/libis-format.gemspec +3 -2
  49. data/tools/PdfTool.jar +0 -0
  50. data/tools/bcpkix-jdk15on-167.jar +0 -0
  51. data/tools/bcprov-jdk15on-167.jar +0 -0
  52. data/tools/fop/fop.bat +75 -75
  53. data/tools/fop/fop.cmd +31 -31
  54. data/tools/fop/fop.js +341 -341
  55. data/tools/fop/lib/avalon-framework.NOTICE.TXT +11 -11
  56. data/tools/fop/lib/xml-apis.LICENSE-SAX.html +17 -17
  57. data/tools/fop/lib/xml-apis.LICENSE.DOM-documentation.html +74 -74
  58. data/tools/fop/lib/xml-apis.LICENSE.DOM-software.html +66 -66
  59. metadata +32 -19
  60. data/bin/pdf_copy +0 -13
  61. data/lib/libis/format/type_database.rb +0 -133
  62. data/lib/libis/format/type_database_impl.rb +0 -120
  63. data/tools/bcpkix-jdk15on-1.49.jar +0 -0
  64. data/tools/bcprov-jdk15on-1.49.jar +0 -0
data/bin/pdf_copy DELETED
@@ -1,13 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require 'libis-format'
4
- require 'libis-tools'
5
-
6
- ::Libis::Tools::Config.logger.level = :WARN
7
-
8
- source = ARGV.shift
9
- target = ARGV.shift
10
- options = ARGV
11
-
12
- ::Libis::Format::Tool::PdfCopy.run source, target, options
13
-
@@ -1,133 +0,0 @@
1
- # coding: utf-8
2
-
3
- require 'yaml'
4
- require 'libis/tools/extend/hash'
5
-
6
- module Libis
7
- module Format
8
-
9
- # noinspection RubyClassVariableUsageInspection
10
- class TypeDatabase
11
- @implementation = Libis::Format::TypeDatabaseImpl.instance
12
-
13
- def self.implementation(impl)
14
- @implementation = impl
15
- end
16
-
17
- def self.enrich(info, map_keys = {})
18
- return {} unless info.is_a? Hash
19
- mapper = Hash.new {|hash,key| hash[key] = key}
20
- mapper.merge! map_keys
21
- unless (puid = info[mapper[:PUID]]).blank?
22
- info[mapper[:TYPE]] ||= puid_infos(puid).first[:TYPE] rescue nil
23
- end
24
- unless (mime = info[mapper[:MIME]]).blank?
25
- info[mapper[:TYPE]] ||= mime_infos(mime).first[:TYPE] rescue nil
26
- end
27
- unless (type_name = info[mapper[:TYPE]]).nil?
28
- mapper.keys.each do |key|
29
- info[mapper[key]] = get(type_name, key) || info[mapper[key]]
30
- end
31
- info[mapper[:GROUP]] = type_group(type_name)
32
- end
33
- info
34
- end
35
-
36
- def self.normalize(info, map_keys = {})
37
- return {} unless info.is_a? Hash
38
- mapper = Hash.new {|hash,key| hash[key] = key}
39
- mapper.merge! map_keys
40
- unless (puid = info[mapper[:PUID]]).blank?
41
- info[mapper[:TYPE]] ||= puid_infos(puid).first[:TYPE] rescue nil
42
- end
43
- unless (mime = info[mapper[:MIME]]).blank?
44
- info[mapper[:TYPE]] ||= mime_infos(mime).first[:TYPE] rescue nil
45
- end
46
- unless (type_name = info[mapper[:TYPE]]).nil?
47
- info[mapper[:MIME]] = type_mimetypes(type_name).first if type_mimetypes(type_name).first
48
- info[mapper[:GROUP]] = type_group(type_name)
49
- end
50
- info
51
- end
52
-
53
- def self.get(type_name, key)
54
- case key
55
- when :MIME
56
- type_mimetypes(type_name).first
57
- when :PUID
58
- type_puids(type_name).first
59
- when :EXTENSION
60
- type_extentions(type_name).first
61
- else
62
- typeinfo(type_name)[key]
63
- end
64
- end
65
-
66
- def self.type_group(t)
67
- typeinfo(t)[:GROUP]
68
- end
69
-
70
- def self.type_mimetypes(t)
71
- typeinfo(t)[:MIME] || []
72
- end
73
-
74
- def self.type_puids(t)
75
- typeinfo(t)[:PUID] || []
76
- end
77
-
78
- def self.type_extentions(t)
79
- typeinfo(t)[:EXTENSIONS] || []
80
- end
81
-
82
- def self.typeinfo(t)
83
- @implementation.typeinfo(t)
84
- end
85
-
86
- def self.group_types(group)
87
- @implementation.group_types(group)
88
- end
89
-
90
- def self.puid_infos(puid)
91
- @implementation.puid_infos(puid)
92
- end
93
-
94
- def self.puid_types(puid)
95
- @implementation.puid_types(puid)
96
- end
97
-
98
- def self.puid_groups(puid)
99
- puid_types(puid).map(&method(:type_group))
100
- end
101
-
102
- def self.mime_infos(mime)
103
- @implementation.mime_infos(mime)
104
- end
105
-
106
- def self.mime_types(mime)
107
- @implementation.mime_types(mime)
108
- end
109
-
110
- def self.mime_groups(mime)
111
- mime_types(mime).map(&method(:type_group))
112
- end
113
-
114
- def self.ext_infos(ext)
115
- @implementation.ext_infos(ext)
116
- end
117
-
118
- def self.ext_types(ext)
119
- @implementation.ext_types(ext)
120
- end
121
-
122
- def self.puid_typeinfo(puid)
123
- @implementation.puid_typeinfo(puid)
124
- end
125
-
126
- def self.known_mime?(mime)
127
- @implementation.known_mime?(mime)
128
- end
129
-
130
- end
131
-
132
- end
133
- end
@@ -1,120 +0,0 @@
1
- # coding: utf-8
2
-
3
- require 'singleton'
4
- require 'yaml'
5
-
6
- require 'libis/tools/logger'
7
- require 'libis/tools/extend/hash'
8
- require 'libis/tools/extend/string'
9
-
10
- module Libis
11
- module Format
12
-
13
- class TypeDatabaseImpl
14
- include Singleton
15
- include ::Libis::Tools::Logger
16
-
17
- def typeinfo(t)
18
- @types[t.to_sym] || {}
19
- end
20
-
21
- def group_types(group)
22
- @types.select do |_, v|
23
- v[:GROUP] == group.to_sym
24
- end.keys
25
- end
26
-
27
- def puid_infos(puid)
28
- @types.select do |_, v|
29
- v[:PUID].include? puid rescue false
30
- end.values
31
- end
32
-
33
- def puid_types(puid)
34
- @types.select do |_, v|
35
- v[:PUID].include? puid rescue false
36
- end.keys
37
- end
38
-
39
- def mime_infos(mime)
40
- @types.select do |_, v|
41
- v[:MIME].include? mime rescue false
42
- end.values
43
- end
44
-
45
- def mime_types(mime)
46
- @types.select do |_, v|
47
- v[:MIME].include? mime rescue false
48
- end.keys
49
- end
50
-
51
- def ext_infos(ext)
52
- ext = ext.gsub /^\./, ''
53
- @types.select do |_, v|
54
- v[:EXTENSIONS].include?(ext) rescue false
55
- end.values
56
- end
57
-
58
- def ext_types(ext)
59
- ext = ext.gsub /^\./, ''
60
- @types.select do |_, v|
61
- v[:EXTENSIONS].include?(ext) rescue false
62
- end.keys
63
- end
64
-
65
- def puid_typeinfo(puid)
66
- @types.each do |_, v|
67
- return v if v[:PUID] and v[:PUID].include?(puid)
68
- end
69
- nil
70
- end
71
-
72
- def known_mime?(mime)
73
- @types.each do |_, v|
74
- return true if v[:MIME].include? mime
75
- end
76
- false
77
- end
78
-
79
- def load_types(file_or_hash = {}, append = true)
80
- hash = file_or_hash.is_a?(Hash) ? file_or_hash : YAML::load_file(file_or_hash)
81
- # noinspection RubyResolve
82
- hash.each do |group, type_info|
83
- type_info.each do |type_name, info|
84
- type_key = type_name.to_sym
85
- info.symbolize_keys!
86
- info[:TYPE] = type_key
87
- info[:GROUP] = group.to_sym
88
- info[:MIME] = info[:MIME].strip.split(/[\s,]+/).map(&:strip) rescue []
89
- info[:EXTENSIONS] = info[:EXTENSIONS].strip.split(/[\s,]+/).map { |v| v.strip } rescue []
90
- info[:PUID] = info[:PUID].strip.split(/[\s,]+/).map { |v| v.strip } if info[:PUID]
91
- if @types.has_key?(type_key)
92
- warn 'Type %s already defined; merging with info from %s.', type_name.to_s, file_or_hash
93
- info.merge!(@types[type_key]) do |_,v_new,v_old|
94
- case v_old
95
- when Array
96
- append ? v_old + v_new : v_new + v_old
97
- when Hash
98
- append ? v_new.merge(v_old) : v_old.merge(v_new)
99
- else
100
- append ? v_old : v_new
101
- end
102
- end
103
- end
104
- @types[type_key] = info
105
- end
106
- end
107
- end
108
-
109
- protected
110
-
111
- def initialize
112
- @types = Hash.new
113
- type_database = Libis::Format::Config[:type_database]
114
- load_types(type_database)
115
- end
116
-
117
- end
118
-
119
- end
120
- end
Binary file
Binary file