libis-format 1.0.7 → 2.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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