hexapdf 0.3.0 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +68 -0
- data/CONTRIBUTERS +1 -1
- data/README.md +35 -4
- data/Rakefile +1 -0
- data/VERSION +1 -1
- data/data/hexapdf/cmap/83pv-RKSJ-H +314 -0
- data/data/hexapdf/cmap/90ms-RKSJ-H +259 -0
- data/data/hexapdf/cmap/90ms-RKSJ-V +156 -0
- data/data/hexapdf/cmap/90msp-RKSJ-H +257 -0
- data/data/hexapdf/cmap/90msp-RKSJ-V +155 -0
- data/data/hexapdf/cmap/90pv-RKSJ-H +355 -0
- data/data/hexapdf/cmap/Add-RKSJ-H +738 -0
- data/data/hexapdf/cmap/Add-RKSJ-V +135 -0
- data/data/hexapdf/cmap/Adobe-CNS1-UCS2 +18209 -0
- data/data/hexapdf/cmap/Adobe-GB1-UCS2 +14267 -0
- data/data/hexapdf/cmap/Adobe-Japan1-UCS2 +19159 -0
- data/data/hexapdf/cmap/Adobe-Korea1-UCS2 +9267 -0
- data/data/hexapdf/cmap/B5pc-H +337 -0
- data/data/hexapdf/cmap/B5pc-V +90 -0
- data/data/hexapdf/cmap/CNS-EUC-H +490 -0
- data/data/hexapdf/cmap/CNS-EUC-V +538 -0
- data/data/hexapdf/cmap/ETen-B5-H +343 -0
- data/data/hexapdf/cmap/ETen-B5-V +91 -0
- data/data/hexapdf/cmap/ETenms-B5-H +79 -0
- data/data/hexapdf/cmap/ETenms-B5-V +99 -0
- data/data/hexapdf/cmap/EUC-H +207 -0
- data/data/hexapdf/cmap/EUC-V +105 -0
- data/data/hexapdf/cmap/Ext-RKSJ-H +768 -0
- data/data/hexapdf/cmap/Ext-RKSJ-V +117 -0
- data/data/hexapdf/cmap/GB-EUC-H +173 -0
- data/data/hexapdf/cmap/GB-EUC-V +98 -0
- data/data/hexapdf/cmap/GBK-EUC-H +4273 -0
- data/data/hexapdf/cmap/GBK-EUC-V +97 -0
- data/data/hexapdf/cmap/GBK2K-H +5325 -0
- data/data/hexapdf/cmap/GBK2K-V +118 -0
- data/data/hexapdf/cmap/GBKp-EUC-H +4272 -0
- data/data/hexapdf/cmap/GBKp-EUC-V +97 -0
- data/data/hexapdf/cmap/GBpc-EUC-H +175 -0
- data/data/hexapdf/cmap/GBpc-EUC-V +98 -0
- data/data/hexapdf/cmap/H +200 -0
- data/data/hexapdf/cmap/HKscs-B5-H +1331 -0
- data/data/hexapdf/cmap/HKscs-B5-V +90 -0
- data/data/hexapdf/cmap/Identity-H +339 -0
- data/data/hexapdf/cmap/Identity-V +73 -0
- data/data/hexapdf/cmap/KSC-EUC-H +562 -0
- data/data/hexapdf/cmap/KSC-EUC-V +94 -0
- data/data/hexapdf/cmap/KSCms-UHC-H +776 -0
- data/data/hexapdf/cmap/KSCms-UHC-HW-H +775 -0
- data/data/hexapdf/cmap/KSCms-UHC-HW-V +93 -0
- data/data/hexapdf/cmap/KSCms-UHC-V +94 -0
- data/data/hexapdf/cmap/KSCpc-EUC-H +608 -0
- data/data/hexapdf/cmap/LICENSE.txt +26 -0
- data/data/hexapdf/cmap/README.txt +9 -0
- data/data/hexapdf/cmap/UniCNS-UCS2-H +16992 -0
- data/data/hexapdf/cmap/UniCNS-UCS2-V +90 -0
- data/data/hexapdf/cmap/UniCNS-UTF16-H +19117 -0
- data/data/hexapdf/cmap/UniCNS-UTF16-V +94 -0
- data/data/hexapdf/cmap/UniGB-UCS2-H +14321 -0
- data/data/hexapdf/cmap/UniGB-UCS2-V +101 -0
- data/data/hexapdf/cmap/UniGB-UTF16-H +14381 -0
- data/data/hexapdf/cmap/UniGB-UTF16-V +104 -0
- data/data/hexapdf/cmap/UniJIS-UCS2-H +8870 -0
- data/data/hexapdf/cmap/UniJIS-UCS2-HW-H +81 -0
- data/data/hexapdf/cmap/UniJIS-UCS2-HW-V +279 -0
- data/data/hexapdf/cmap/UniJIS-UCS2-V +275 -0
- data/data/hexapdf/cmap/UniJIS-UTF16-H +14450 -0
- data/data/hexapdf/cmap/UniJIS-UTF16-V +299 -0
- data/data/hexapdf/cmap/UniKS-UCS2-H +8725 -0
- data/data/hexapdf/cmap/UniKS-UCS2-V +95 -0
- data/data/hexapdf/cmap/UniKS-UTF16-H +8895 -0
- data/data/hexapdf/cmap/UniKS-UTF16-V +99 -0
- data/data/hexapdf/cmap/V +105 -0
- data/examples/arc.rb +3 -3
- data/examples/merging.rb +4 -1
- data/examples/optimizing.rb +3 -0
- data/examples/show_char_bboxes.rb +2 -2
- data/examples/truetype.rb +2 -2
- data/lib/hexapdf/cli.rb +40 -1
- data/lib/hexapdf/cli/batch.rb +72 -0
- data/lib/hexapdf/cli/command.rb +112 -15
- data/lib/hexapdf/cli/files.rb +2 -2
- data/lib/hexapdf/cli/images.rb +14 -6
- data/lib/hexapdf/cli/info.rb +6 -8
- data/lib/hexapdf/cli/inspect.rb +5 -8
- data/lib/hexapdf/cli/merge.rb +13 -20
- data/lib/hexapdf/cli/modify.rb +4 -7
- data/lib/hexapdf/cli/optimize.rb +2 -5
- data/lib/hexapdf/configuration.rb +32 -3
- data/lib/hexapdf/content/canvas.rb +130 -37
- data/lib/hexapdf/content/parser.rb +40 -6
- data/lib/hexapdf/content/processor.rb +4 -4
- data/lib/hexapdf/document.rb +40 -10
- data/lib/hexapdf/document/fonts.rb +1 -0
- data/lib/hexapdf/encryption/security_handler.rb +8 -12
- data/lib/hexapdf/filter/flate_decode.rb +25 -2
- data/lib/hexapdf/font/cmap.rb +124 -8
- data/lib/hexapdf/font/cmap/parser.rb +65 -15
- data/lib/hexapdf/font/encoding/base.rb +2 -2
- data/lib/hexapdf/font/encoding/glyph_list.rb +2 -4
- data/lib/hexapdf/font/true_type.rb +1 -0
- data/lib/hexapdf/font/true_type/builder.rb +75 -0
- data/lib/hexapdf/font/true_type/optimizer.rb +65 -0
- data/lib/hexapdf/font/true_type/subsetter.rb +9 -22
- data/lib/hexapdf/font/true_type_wrapper.rb +9 -21
- data/lib/hexapdf/font_loader.rb +1 -1
- data/lib/hexapdf/importer.rb +1 -1
- data/lib/hexapdf/serializer.rb +5 -3
- data/lib/hexapdf/type.rb +2 -0
- data/lib/hexapdf/type/cid_font.rb +120 -0
- data/lib/hexapdf/type/font.rb +32 -12
- data/lib/hexapdf/type/font_simple.rb +34 -42
- data/lib/hexapdf/type/font_type0.rb +148 -0
- data/lib/hexapdf/type/form.rb +4 -4
- data/lib/hexapdf/type/page.rb +12 -11
- data/lib/hexapdf/type/resources.rb +14 -0
- data/lib/hexapdf/utils/graphics_helpers.rb +77 -0
- data/lib/hexapdf/version.rb +1 -1
- data/man/man1/hexapdf.1 +43 -1
- data/test/hexapdf/content/test_canvas.rb +76 -0
- data/test/hexapdf/content/test_parser.rb +20 -1
- data/test/hexapdf/content/test_processor.rb +11 -7
- data/test/hexapdf/document/test_fonts.rb +3 -1
- data/test/hexapdf/font/cmap/test_parser.rb +42 -7
- data/test/hexapdf/font/encoding/test_base.rb +1 -1
- data/test/hexapdf/font/encoding/test_glyph_list.rb +3 -3
- data/test/hexapdf/font/test_cmap.rb +104 -0
- data/test/hexapdf/font/test_true_type_wrapper.rb +63 -46
- data/test/hexapdf/font/true_type/test_builder.rb +37 -0
- data/test/hexapdf/font/true_type/test_optimizer.rb +27 -0
- data/test/hexapdf/font/true_type/test_subsetter.rb +6 -13
- data/test/hexapdf/test_configuration.rb +12 -7
- data/test/hexapdf/test_document.rb +24 -0
- data/test/hexapdf/test_importer.rb +9 -1
- data/test/hexapdf/test_writer.rb +2 -2
- data/test/hexapdf/type/test_cid_font.rb +61 -0
- data/test/hexapdf/type/test_font.rb +31 -4
- data/test/hexapdf/type/test_font_simple.rb +6 -21
- data/test/hexapdf/type/test_font_type0.rb +114 -0
- data/test/hexapdf/type/test_resources.rb +17 -1
- data/test/hexapdf/utils/test_graphics_helpers.rb +29 -0
- metadata +82 -3
@@ -0,0 +1,114 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
require 'test_helper'
|
4
|
+
require 'hexapdf/document'
|
5
|
+
require 'hexapdf/type/font_type0'
|
6
|
+
|
7
|
+
describe HexaPDF::Type::FontType0 do
|
8
|
+
before do
|
9
|
+
@doc = HexaPDF::Document.new
|
10
|
+
fd = @doc.add(Type: :FontDescriptor, FontBBox: [0, 1, 2, 3])
|
11
|
+
@cid_font = @doc.wrap(Type: :Font, Subtype: :CIDFontType2, W: [633, [100]], FontDescriptor: fd,
|
12
|
+
CIDSystemInfo: {Registry: 'Adobe', Ordering: 'Japan1', Supplement: 1})
|
13
|
+
@font = @doc.wrap(Type: :Font, Subtype: :Type0, Encoding: :H, DescendantFonts: [@cid_font])
|
14
|
+
end
|
15
|
+
|
16
|
+
it "returns the correct writing mode" do
|
17
|
+
assert_equal(:horizontal, @font.writing_mode)
|
18
|
+
font = @doc.wrap(Type: :Font, Subtype: :Type0, Encoding: :V)
|
19
|
+
assert_equal(:vertical, font.writing_mode)
|
20
|
+
end
|
21
|
+
|
22
|
+
it "uses the descendant font for getting the width of a code point" do
|
23
|
+
assert_equal(100, @font.width(0x2121))
|
24
|
+
end
|
25
|
+
|
26
|
+
it "uses the descendant font for getting the bounding box" do
|
27
|
+
assert_equal([0, 1, 2, 3], @font.bounding_box)
|
28
|
+
end
|
29
|
+
|
30
|
+
it "uses the descendant font for determining whether the font is embedded" do
|
31
|
+
refute(@font.embedded?)
|
32
|
+
@cid_font[:FontDescriptor][:FontFile2] = 5
|
33
|
+
assert(@font.embedded?)
|
34
|
+
end
|
35
|
+
|
36
|
+
it "uses the descendant font for returning the embedded font file" do
|
37
|
+
@cid_font[:FontDescriptor][:FontFile2] = 5
|
38
|
+
assert_equal(5, @font.font_file)
|
39
|
+
end
|
40
|
+
|
41
|
+
describe "word_spacing_applicable?" do
|
42
|
+
it "returns false if code point 32 is not a single-byte code point" do
|
43
|
+
refute(@font.word_spacing_applicable?)
|
44
|
+
end
|
45
|
+
|
46
|
+
it "returns true if code point 32 is a single-byte code point" do
|
47
|
+
@font[:Encoding] = @doc.wrap({}, stream: <<-EOF)
|
48
|
+
begincodespacerange
|
49
|
+
<00> <ff>
|
50
|
+
endcodespacerange
|
51
|
+
EOF
|
52
|
+
assert(@font.word_spacing_applicable?)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
|
57
|
+
describe "handling of /Encoding value" do
|
58
|
+
it "can use predefined CMaps" do
|
59
|
+
assert_equal([0x2121], @font.decode("\x21\x21"))
|
60
|
+
end
|
61
|
+
|
62
|
+
it "can use custom CMaps" do
|
63
|
+
@font[:Encoding] = @doc.wrap({}, stream: <<-EOF)
|
64
|
+
begincodespacerange
|
65
|
+
<00> <ff>
|
66
|
+
endcodespacerange
|
67
|
+
EOF
|
68
|
+
assert_equal([0x41], @font.decode("\x41"))
|
69
|
+
end
|
70
|
+
|
71
|
+
it "raises an error if the /Encoding value is invalid" do
|
72
|
+
@font.delete(:Encoding)
|
73
|
+
assert_raises(HexaPDF::Error) { @font.decode("a") }
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
describe "decode" do
|
78
|
+
it "allows reading CIDs from string using the encoding CMap" do
|
79
|
+
assert_equal([0x2121, 0x7e7e], @font.decode("\x21\x21\x7e\x7e"))
|
80
|
+
end
|
81
|
+
|
82
|
+
it "fails if the string contains invalid codes" do
|
83
|
+
assert_raises(HexaPDF::Error) { @font.decode("a") }
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
describe "to_utf" do
|
88
|
+
it "uses the /ToUnicode CMap if it is available" do
|
89
|
+
@font[:ToUnicode] = @doc.add({}, stream: <<-EOF)
|
90
|
+
2 beginbfchar
|
91
|
+
<20> <0041>
|
92
|
+
endbfchar
|
93
|
+
EOF
|
94
|
+
assert_equal("A", @font.to_utf8(32))
|
95
|
+
end
|
96
|
+
|
97
|
+
describe "it uses a predefined UCS2 CMap" do
|
98
|
+
it "for predefined CMaps except Identity-H/-V" do
|
99
|
+
assert_equal("?", @font.to_utf8(32))
|
100
|
+
end
|
101
|
+
|
102
|
+
it "for CMaps with predefined character collections" do
|
103
|
+
@font[:Encoding] = @doc.add({}, stream: "")
|
104
|
+
assert_equal("?", @font.to_utf8(32))
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
it "calls the configured proc if no mapping is available" do
|
109
|
+
@font[:Encoding] = :"Identity-H"
|
110
|
+
@cid_font[:CIDSystemInfo][:Registry] = :Unknown
|
111
|
+
assert_raises(HexaPDF::Error) { @font.to_utf8(32) }
|
112
|
+
end
|
113
|
+
end
|
114
|
+
end
|
@@ -136,7 +136,7 @@ describe HexaPDF::Type::Resources do
|
|
136
136
|
end
|
137
137
|
end
|
138
138
|
|
139
|
-
describe "
|
139
|
+
describe "font" do
|
140
140
|
it "invokes the object_getter method" do
|
141
141
|
assert_method_invoked(@res, :object_getter, [:Font, :test]) do
|
142
142
|
@res.font(:test)
|
@@ -152,6 +152,22 @@ describe HexaPDF::Type::Resources do
|
|
152
152
|
end
|
153
153
|
end
|
154
154
|
|
155
|
+
describe "property_list" do
|
156
|
+
it "invokes the object_getter method" do
|
157
|
+
assert_method_invoked(@res, :object_getter, [:Properties, :test]) do
|
158
|
+
@res.property_list(:test)
|
159
|
+
end
|
160
|
+
end
|
161
|
+
end
|
162
|
+
|
163
|
+
describe "add_property_list" do
|
164
|
+
it "invokes the object_setter method" do
|
165
|
+
assert_method_invoked(@res, :object_setter, [:Properties, 'P', :test]) do
|
166
|
+
@res.add_property_list(:test)
|
167
|
+
end
|
168
|
+
end
|
169
|
+
end
|
170
|
+
|
155
171
|
describe "validation" do
|
156
172
|
it "assigns the default value if ProcSet is not set" do
|
157
173
|
@res.validate
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
require 'test_helper'
|
4
|
+
require 'hexapdf/utils/graphics_helpers'
|
5
|
+
|
6
|
+
describe HexaPDF::Utils::GraphicsHelpers do
|
7
|
+
include HexaPDF::Utils::GraphicsHelpers
|
8
|
+
|
9
|
+
describe "calculate_dimensions" do
|
10
|
+
it "returns the requested dimensions if both are specified" do
|
11
|
+
assert_equal([7, 8], calculate_dimensions(5, 6, rwidth: 7, rheight: 8))
|
12
|
+
end
|
13
|
+
|
14
|
+
it "returns the requested width and an adjusted height" do
|
15
|
+
assert_equal([10, 12], calculate_dimensions(5, 6, rwidth: 10))
|
16
|
+
end
|
17
|
+
|
18
|
+
it "returns the requested height and an adjusted width" do
|
19
|
+
assert_equal([10, 12], calculate_dimensions(5, 6, rheight: 12))
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
describe "point_on_line" do
|
24
|
+
it "returns the correct point" do
|
25
|
+
assert_equal([5, 5], point_on_line(0, 0, 10, 10, distance: Math.sqrt(50)))
|
26
|
+
assert_equal([5, 5], point_on_line(10, 10, 0, 0, distance: Math.sqrt(50)))
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hexapdf
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Thomas Leitner
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-03-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: cmdparse
|
@@ -85,6 +85,73 @@ files:
|
|
85
85
|
- data/hexapdf/afm/Times-Italic.afm
|
86
86
|
- data/hexapdf/afm/Times-Roman.afm
|
87
87
|
- data/hexapdf/afm/ZapfDingbats.afm
|
88
|
+
- data/hexapdf/cmap/83pv-RKSJ-H
|
89
|
+
- data/hexapdf/cmap/90ms-RKSJ-H
|
90
|
+
- data/hexapdf/cmap/90ms-RKSJ-V
|
91
|
+
- data/hexapdf/cmap/90msp-RKSJ-H
|
92
|
+
- data/hexapdf/cmap/90msp-RKSJ-V
|
93
|
+
- data/hexapdf/cmap/90pv-RKSJ-H
|
94
|
+
- data/hexapdf/cmap/Add-RKSJ-H
|
95
|
+
- data/hexapdf/cmap/Add-RKSJ-V
|
96
|
+
- data/hexapdf/cmap/Adobe-CNS1-UCS2
|
97
|
+
- data/hexapdf/cmap/Adobe-GB1-UCS2
|
98
|
+
- data/hexapdf/cmap/Adobe-Japan1-UCS2
|
99
|
+
- data/hexapdf/cmap/Adobe-Korea1-UCS2
|
100
|
+
- data/hexapdf/cmap/B5pc-H
|
101
|
+
- data/hexapdf/cmap/B5pc-V
|
102
|
+
- data/hexapdf/cmap/CNS-EUC-H
|
103
|
+
- data/hexapdf/cmap/CNS-EUC-V
|
104
|
+
- data/hexapdf/cmap/ETen-B5-H
|
105
|
+
- data/hexapdf/cmap/ETen-B5-V
|
106
|
+
- data/hexapdf/cmap/ETenms-B5-H
|
107
|
+
- data/hexapdf/cmap/ETenms-B5-V
|
108
|
+
- data/hexapdf/cmap/EUC-H
|
109
|
+
- data/hexapdf/cmap/EUC-V
|
110
|
+
- data/hexapdf/cmap/Ext-RKSJ-H
|
111
|
+
- data/hexapdf/cmap/Ext-RKSJ-V
|
112
|
+
- data/hexapdf/cmap/GB-EUC-H
|
113
|
+
- data/hexapdf/cmap/GB-EUC-V
|
114
|
+
- data/hexapdf/cmap/GBK-EUC-H
|
115
|
+
- data/hexapdf/cmap/GBK-EUC-V
|
116
|
+
- data/hexapdf/cmap/GBK2K-H
|
117
|
+
- data/hexapdf/cmap/GBK2K-V
|
118
|
+
- data/hexapdf/cmap/GBKp-EUC-H
|
119
|
+
- data/hexapdf/cmap/GBKp-EUC-V
|
120
|
+
- data/hexapdf/cmap/GBpc-EUC-H
|
121
|
+
- data/hexapdf/cmap/GBpc-EUC-V
|
122
|
+
- data/hexapdf/cmap/H
|
123
|
+
- data/hexapdf/cmap/HKscs-B5-H
|
124
|
+
- data/hexapdf/cmap/HKscs-B5-V
|
125
|
+
- data/hexapdf/cmap/Identity-H
|
126
|
+
- data/hexapdf/cmap/Identity-V
|
127
|
+
- data/hexapdf/cmap/KSC-EUC-H
|
128
|
+
- data/hexapdf/cmap/KSC-EUC-V
|
129
|
+
- data/hexapdf/cmap/KSCms-UHC-H
|
130
|
+
- data/hexapdf/cmap/KSCms-UHC-HW-H
|
131
|
+
- data/hexapdf/cmap/KSCms-UHC-HW-V
|
132
|
+
- data/hexapdf/cmap/KSCms-UHC-V
|
133
|
+
- data/hexapdf/cmap/KSCpc-EUC-H
|
134
|
+
- data/hexapdf/cmap/LICENSE.txt
|
135
|
+
- data/hexapdf/cmap/README.txt
|
136
|
+
- data/hexapdf/cmap/UniCNS-UCS2-H
|
137
|
+
- data/hexapdf/cmap/UniCNS-UCS2-V
|
138
|
+
- data/hexapdf/cmap/UniCNS-UTF16-H
|
139
|
+
- data/hexapdf/cmap/UniCNS-UTF16-V
|
140
|
+
- data/hexapdf/cmap/UniGB-UCS2-H
|
141
|
+
- data/hexapdf/cmap/UniGB-UCS2-V
|
142
|
+
- data/hexapdf/cmap/UniGB-UTF16-H
|
143
|
+
- data/hexapdf/cmap/UniGB-UTF16-V
|
144
|
+
- data/hexapdf/cmap/UniJIS-UCS2-H
|
145
|
+
- data/hexapdf/cmap/UniJIS-UCS2-HW-H
|
146
|
+
- data/hexapdf/cmap/UniJIS-UCS2-HW-V
|
147
|
+
- data/hexapdf/cmap/UniJIS-UCS2-V
|
148
|
+
- data/hexapdf/cmap/UniJIS-UTF16-H
|
149
|
+
- data/hexapdf/cmap/UniJIS-UTF16-V
|
150
|
+
- data/hexapdf/cmap/UniKS-UCS2-H
|
151
|
+
- data/hexapdf/cmap/UniKS-UCS2-V
|
152
|
+
- data/hexapdf/cmap/UniKS-UTF16-H
|
153
|
+
- data/hexapdf/cmap/UniKS-UTF16-V
|
154
|
+
- data/hexapdf/cmap/V
|
88
155
|
- data/hexapdf/encoding/glyphlist.txt
|
89
156
|
- data/hexapdf/encoding/zapfdingbats.txt
|
90
157
|
- examples/arc.rb
|
@@ -98,6 +165,7 @@ files:
|
|
98
165
|
- examples/truetype.rb
|
99
166
|
- lib/hexapdf.rb
|
100
167
|
- lib/hexapdf/cli.rb
|
168
|
+
- lib/hexapdf/cli/batch.rb
|
101
169
|
- lib/hexapdf/cli/command.rb
|
102
170
|
- lib/hexapdf/cli/files.rb
|
103
171
|
- lib/hexapdf/cli/images.rb
|
@@ -162,7 +230,9 @@ files:
|
|
162
230
|
- lib/hexapdf/font/encoding/win_ansi_encoding.rb
|
163
231
|
- lib/hexapdf/font/encoding/zapf_dingbats_encoding.rb
|
164
232
|
- lib/hexapdf/font/true_type.rb
|
233
|
+
- lib/hexapdf/font/true_type/builder.rb
|
165
234
|
- lib/hexapdf/font/true_type/font.rb
|
235
|
+
- lib/hexapdf/font/true_type/optimizer.rb
|
166
236
|
- lib/hexapdf/font/true_type/subsetter.rb
|
167
237
|
- lib/hexapdf/font/true_type/table.rb
|
168
238
|
- lib/hexapdf/font/true_type/table/cmap.rb
|
@@ -209,12 +279,14 @@ files:
|
|
209
279
|
- lib/hexapdf/tokenizer.rb
|
210
280
|
- lib/hexapdf/type.rb
|
211
281
|
- lib/hexapdf/type/catalog.rb
|
282
|
+
- lib/hexapdf/type/cid_font.rb
|
212
283
|
- lib/hexapdf/type/embedded_file.rb
|
213
284
|
- lib/hexapdf/type/file_specification.rb
|
214
285
|
- lib/hexapdf/type/font.rb
|
215
286
|
- lib/hexapdf/type/font_descriptor.rb
|
216
287
|
- lib/hexapdf/type/font_simple.rb
|
217
288
|
- lib/hexapdf/type/font_true_type.rb
|
289
|
+
- lib/hexapdf/type/font_type0.rb
|
218
290
|
- lib/hexapdf/type/font_type1.rb
|
219
291
|
- lib/hexapdf/type/form.rb
|
220
292
|
- lib/hexapdf/type/graphics_state_parameter.rb
|
@@ -230,6 +302,7 @@ files:
|
|
230
302
|
- lib/hexapdf/type/xref_stream.rb
|
231
303
|
- lib/hexapdf/utils/bit_field.rb
|
232
304
|
- lib/hexapdf/utils/bit_stream.rb
|
305
|
+
- lib/hexapdf/utils/graphics_helpers.rb
|
233
306
|
- lib/hexapdf/utils/lru_cache.rb
|
234
307
|
- lib/hexapdf/utils/math_helpers.rb
|
235
308
|
- lib/hexapdf/utils/object_hash.rb
|
@@ -348,6 +421,7 @@ files:
|
|
348
421
|
- test/hexapdf/font/encoding/test_difference_encoding.rb
|
349
422
|
- test/hexapdf/font/encoding/test_glyph_list.rb
|
350
423
|
- test/hexapdf/font/encoding/test_zapf_dingbats_encoding.rb
|
424
|
+
- test/hexapdf/font/test_cmap.rb
|
351
425
|
- test/hexapdf/font/test_encoding.rb
|
352
426
|
- test/hexapdf/font/test_true_type_wrapper.rb
|
353
427
|
- test/hexapdf/font/test_type1_wrapper.rb
|
@@ -364,7 +438,9 @@ files:
|
|
364
438
|
- test/hexapdf/font/true_type/table/test_name.rb
|
365
439
|
- test/hexapdf/font/true_type/table/test_os2.rb
|
366
440
|
- test/hexapdf/font/true_type/table/test_post.rb
|
441
|
+
- test/hexapdf/font/true_type/test_builder.rb
|
367
442
|
- test/hexapdf/font/true_type/test_font.rb
|
443
|
+
- test/hexapdf/font/true_type/test_optimizer.rb
|
368
444
|
- test/hexapdf/font/true_type/test_subsetter.rb
|
369
445
|
- test/hexapdf/font/true_type/test_table.rb
|
370
446
|
- test/hexapdf/font/type1/test_afm_parser.rb
|
@@ -397,11 +473,13 @@ files:
|
|
397
473
|
- test/hexapdf/test_writer.rb
|
398
474
|
- test/hexapdf/test_xref_section.rb
|
399
475
|
- test/hexapdf/type/test_catalog.rb
|
476
|
+
- test/hexapdf/type/test_cid_font.rb
|
400
477
|
- test/hexapdf/type/test_embedded_file.rb
|
401
478
|
- test/hexapdf/type/test_file_specification.rb
|
402
479
|
- test/hexapdf/type/test_font.rb
|
403
480
|
- test/hexapdf/type/test_font_descriptor.rb
|
404
481
|
- test/hexapdf/type/test_font_simple.rb
|
482
|
+
- test/hexapdf/type/test_font_type0.rb
|
405
483
|
- test/hexapdf/type/test_font_type1.rb
|
406
484
|
- test/hexapdf/type/test_form.rb
|
407
485
|
- test/hexapdf/type/test_image.rb
|
@@ -415,6 +493,7 @@ files:
|
|
415
493
|
- test/hexapdf/type/test_xref_stream.rb
|
416
494
|
- test/hexapdf/utils/test_bit_field.rb
|
417
495
|
- test/hexapdf/utils/test_bit_stream.rb
|
496
|
+
- test/hexapdf/utils/test_graphics_helpers.rb
|
418
497
|
- test/hexapdf/utils/test_lru_cache.rb
|
419
498
|
- test/hexapdf/utils/test_object_hash.rb
|
420
499
|
- test/hexapdf/utils/test_pdf_doc_encoding.rb
|
@@ -432,7 +511,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
432
511
|
requirements:
|
433
512
|
- - ">="
|
434
513
|
- !ruby/object:Gem::Version
|
435
|
-
version: '
|
514
|
+
version: '2.3'
|
436
515
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
437
516
|
requirements:
|
438
517
|
- - ">="
|