hexapdf 0.20.1 → 0.20.2
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/CHANGELOG.md +8 -0
- data/data/hexapdf/encoding/glyphlist.txt +4283 -4282
- data/data/hexapdf/encoding/zapfdingbats.txt +203 -202
- data/lib/hexapdf/font/encoding/glyph_list.rb +5 -6
- data/lib/hexapdf/task/optimize.rb +3 -3
- data/lib/hexapdf/version.rb +1 -1
- data/test/hexapdf/task/test_optimize.rb +4 -1
- data/test/hexapdf/test_writer.rb +2 -2
- metadata +2 -2
|
@@ -12,6 +12,8 @@
|
|
|
12
12
|
# implied. See the License for the specific language governing
|
|
13
13
|
# permissions and limitations under the License.
|
|
14
14
|
# -----------------------------------------------------------
|
|
15
|
+
# Modified for use with HexaPDF
|
|
16
|
+
# -----------------------------------------------------------
|
|
15
17
|
# Name: ITC Zapf Dingbats Glyph List
|
|
16
18
|
# Table version: 2.0
|
|
17
19
|
# Date: September 20, 2002
|
|
@@ -21,205 +23,204 @@
|
|
|
21
23
|
# (1) glyph name--upper/lowercase letters and digits
|
|
22
24
|
# (2) Unicode scalar value--four uppercase hexadecimal digits
|
|
23
25
|
#
|
|
24
|
-
a100
|
|
25
|
-
a101
|
|
26
|
-
a102
|
|
27
|
-
a103
|
|
28
|
-
a104
|
|
29
|
-
a105
|
|
30
|
-
a106
|
|
31
|
-
a107
|
|
32
|
-
a108
|
|
33
|
-
a109
|
|
34
|
-
a10
|
|
35
|
-
a110
|
|
36
|
-
a111
|
|
37
|
-
a112
|
|
38
|
-
a117
|
|
39
|
-
a118
|
|
40
|
-
a119
|
|
41
|
-
a11
|
|
42
|
-
a120
|
|
43
|
-
a121
|
|
44
|
-
a122
|
|
45
|
-
a123
|
|
46
|
-
a124
|
|
47
|
-
a125
|
|
48
|
-
a126
|
|
49
|
-
a127
|
|
50
|
-
a128
|
|
51
|
-
a129
|
|
52
|
-
a12
|
|
53
|
-
a130
|
|
54
|
-
a131
|
|
55
|
-
a132
|
|
56
|
-
a133
|
|
57
|
-
a134
|
|
58
|
-
a135
|
|
59
|
-
a136
|
|
60
|
-
a137
|
|
61
|
-
a138
|
|
62
|
-
a139
|
|
63
|
-
a13
|
|
64
|
-
a140
|
|
65
|
-
a141
|
|
66
|
-
a142
|
|
67
|
-
a143
|
|
68
|
-
a144
|
|
69
|
-
a145
|
|
70
|
-
a146
|
|
71
|
-
a147
|
|
72
|
-
a148
|
|
73
|
-
a149
|
|
74
|
-
a14
|
|
75
|
-
a150
|
|
76
|
-
a151
|
|
77
|
-
a152
|
|
78
|
-
a153
|
|
79
|
-
a154
|
|
80
|
-
a155
|
|
81
|
-
a156
|
|
82
|
-
a157
|
|
83
|
-
a158
|
|
84
|
-
a159
|
|
85
|
-
a15
|
|
86
|
-
a160
|
|
87
|
-
a161
|
|
88
|
-
a162
|
|
89
|
-
a163
|
|
90
|
-
a164
|
|
91
|
-
a165
|
|
92
|
-
a166
|
|
93
|
-
a167
|
|
94
|
-
a168
|
|
95
|
-
a169
|
|
96
|
-
a16
|
|
97
|
-
a170
|
|
98
|
-
a171
|
|
99
|
-
a172
|
|
100
|
-
a173
|
|
101
|
-
a174
|
|
102
|
-
a175
|
|
103
|
-
a176
|
|
104
|
-
a177
|
|
105
|
-
a178
|
|
106
|
-
a179
|
|
107
|
-
a17
|
|
108
|
-
a180
|
|
109
|
-
a181
|
|
110
|
-
a182
|
|
111
|
-
a183
|
|
112
|
-
a184
|
|
113
|
-
a185
|
|
114
|
-
a186
|
|
115
|
-
a187
|
|
116
|
-
a188
|
|
117
|
-
a189
|
|
118
|
-
a18
|
|
119
|
-
a190
|
|
120
|
-
a191
|
|
121
|
-
a192
|
|
122
|
-
a193
|
|
123
|
-
a194
|
|
124
|
-
a195
|
|
125
|
-
a196
|
|
126
|
-
a197
|
|
127
|
-
a198
|
|
128
|
-
a199
|
|
129
|
-
a19
|
|
130
|
-
a1
|
|
131
|
-
a200
|
|
132
|
-
a201
|
|
133
|
-
a202
|
|
134
|
-
a203
|
|
135
|
-
a204
|
|
136
|
-
a205
|
|
137
|
-
a206
|
|
138
|
-
a20
|
|
139
|
-
a21
|
|
140
|
-
a22
|
|
141
|
-
a23
|
|
142
|
-
a24
|
|
143
|
-
a25
|
|
144
|
-
a26
|
|
145
|
-
a27
|
|
146
|
-
a28
|
|
147
|
-
a29
|
|
148
|
-
a2
|
|
149
|
-
a30
|
|
150
|
-
a31
|
|
151
|
-
a32
|
|
152
|
-
a33
|
|
153
|
-
a34
|
|
154
|
-
a35
|
|
155
|
-
a36
|
|
156
|
-
a37
|
|
157
|
-
a38
|
|
158
|
-
a39
|
|
159
|
-
a3
|
|
160
|
-
a40
|
|
161
|
-
a41
|
|
162
|
-
a42
|
|
163
|
-
a43
|
|
164
|
-
a44
|
|
165
|
-
a45
|
|
166
|
-
a46
|
|
167
|
-
a47
|
|
168
|
-
a48
|
|
169
|
-
a49
|
|
170
|
-
a4
|
|
171
|
-
a50
|
|
172
|
-
a51
|
|
173
|
-
a52
|
|
174
|
-
a53
|
|
175
|
-
a54
|
|
176
|
-
a55
|
|
177
|
-
a56
|
|
178
|
-
a57
|
|
179
|
-
a58
|
|
180
|
-
a59
|
|
181
|
-
a5
|
|
182
|
-
a60
|
|
183
|
-
a61
|
|
184
|
-
a62
|
|
185
|
-
a63
|
|
186
|
-
a64
|
|
187
|
-
a65
|
|
188
|
-
a66
|
|
189
|
-
a67
|
|
190
|
-
a68
|
|
191
|
-
a69
|
|
192
|
-
a6
|
|
193
|
-
a70
|
|
194
|
-
a71
|
|
195
|
-
a72
|
|
196
|
-
a73
|
|
197
|
-
a74
|
|
198
|
-
a75
|
|
199
|
-
a76
|
|
200
|
-
a77
|
|
201
|
-
a78
|
|
202
|
-
a79
|
|
203
|
-
a7
|
|
204
|
-
a81
|
|
205
|
-
a82
|
|
206
|
-
a83
|
|
207
|
-
a84
|
|
208
|
-
a85
|
|
209
|
-
a86
|
|
210
|
-
a87
|
|
211
|
-
a88
|
|
212
|
-
a89
|
|
213
|
-
a8
|
|
214
|
-
a90
|
|
215
|
-
a91
|
|
216
|
-
a92
|
|
217
|
-
a93
|
|
218
|
-
a94
|
|
219
|
-
a95
|
|
220
|
-
a96
|
|
221
|
-
a97
|
|
222
|
-
a98
|
|
223
|
-
a99
|
|
224
|
-
a9
|
|
225
|
-
#END
|
|
26
|
+
a100;❞
|
|
27
|
+
a101;❡
|
|
28
|
+
a102;❢
|
|
29
|
+
a103;❣
|
|
30
|
+
a104;❤
|
|
31
|
+
a105;✐
|
|
32
|
+
a106;❥
|
|
33
|
+
a107;❦
|
|
34
|
+
a108;❧
|
|
35
|
+
a109;♠
|
|
36
|
+
a10;✡
|
|
37
|
+
a110;♥
|
|
38
|
+
a111;♦
|
|
39
|
+
a112;♣
|
|
40
|
+
a117;✉
|
|
41
|
+
a118;✈
|
|
42
|
+
a119;✇
|
|
43
|
+
a11;☛
|
|
44
|
+
a120;①
|
|
45
|
+
a121;②
|
|
46
|
+
a122;③
|
|
47
|
+
a123;④
|
|
48
|
+
a124;⑤
|
|
49
|
+
a125;⑥
|
|
50
|
+
a126;⑦
|
|
51
|
+
a127;⑧
|
|
52
|
+
a128;⑨
|
|
53
|
+
a129;⑩
|
|
54
|
+
a12;☞
|
|
55
|
+
a130;❶
|
|
56
|
+
a131;❷
|
|
57
|
+
a132;❸
|
|
58
|
+
a133;❹
|
|
59
|
+
a134;❺
|
|
60
|
+
a135;❻
|
|
61
|
+
a136;❼
|
|
62
|
+
a137;❽
|
|
63
|
+
a138;❾
|
|
64
|
+
a139;❿
|
|
65
|
+
a13;✌
|
|
66
|
+
a140;➀
|
|
67
|
+
a141;➁
|
|
68
|
+
a142;➂
|
|
69
|
+
a143;➃
|
|
70
|
+
a144;➄
|
|
71
|
+
a145;➅
|
|
72
|
+
a146;➆
|
|
73
|
+
a147;➇
|
|
74
|
+
a148;➈
|
|
75
|
+
a149;➉
|
|
76
|
+
a14;✍
|
|
77
|
+
a150;➊
|
|
78
|
+
a151;➋
|
|
79
|
+
a152;➌
|
|
80
|
+
a153;➍
|
|
81
|
+
a154;➎
|
|
82
|
+
a155;➏
|
|
83
|
+
a156;➐
|
|
84
|
+
a157;➑
|
|
85
|
+
a158;➒
|
|
86
|
+
a159;➓
|
|
87
|
+
a15;✎
|
|
88
|
+
a160;➔
|
|
89
|
+
a161;→
|
|
90
|
+
a162;➣
|
|
91
|
+
a163;↔
|
|
92
|
+
a164;↕
|
|
93
|
+
a165;➙
|
|
94
|
+
a166;➛
|
|
95
|
+
a167;➜
|
|
96
|
+
a168;➝
|
|
97
|
+
a169;➞
|
|
98
|
+
a16;✏
|
|
99
|
+
a170;➟
|
|
100
|
+
a171;➠
|
|
101
|
+
a172;➡
|
|
102
|
+
a173;➢
|
|
103
|
+
a174;➤
|
|
104
|
+
a175;➥
|
|
105
|
+
a176;➦
|
|
106
|
+
a177;➧
|
|
107
|
+
a178;➨
|
|
108
|
+
a179;➩
|
|
109
|
+
a17;✑
|
|
110
|
+
a180;➫
|
|
111
|
+
a181;➭
|
|
112
|
+
a182;➯
|
|
113
|
+
a183;➲
|
|
114
|
+
a184;➳
|
|
115
|
+
a185;➵
|
|
116
|
+
a186;➸
|
|
117
|
+
a187;➺
|
|
118
|
+
a188;➻
|
|
119
|
+
a189;➼
|
|
120
|
+
a18;✒
|
|
121
|
+
a190;➽
|
|
122
|
+
a191;➾
|
|
123
|
+
a192;➚
|
|
124
|
+
a193;➪
|
|
125
|
+
a194;➶
|
|
126
|
+
a195;➹
|
|
127
|
+
a196;➘
|
|
128
|
+
a197;➴
|
|
129
|
+
a198;➷
|
|
130
|
+
a199;➬
|
|
131
|
+
a19;✓
|
|
132
|
+
a1;✁
|
|
133
|
+
a200;➮
|
|
134
|
+
a201;➱
|
|
135
|
+
a202;✃
|
|
136
|
+
a203;❐
|
|
137
|
+
a204;❒
|
|
138
|
+
a205;❮
|
|
139
|
+
a206;❰
|
|
140
|
+
a20;✔
|
|
141
|
+
a21;✕
|
|
142
|
+
a22;✖
|
|
143
|
+
a23;✗
|
|
144
|
+
a24;✘
|
|
145
|
+
a25;✙
|
|
146
|
+
a26;✚
|
|
147
|
+
a27;✛
|
|
148
|
+
a28;✜
|
|
149
|
+
a29;✢
|
|
150
|
+
a2;✂
|
|
151
|
+
a30;✣
|
|
152
|
+
a31;✤
|
|
153
|
+
a32;✥
|
|
154
|
+
a33;✦
|
|
155
|
+
a34;✧
|
|
156
|
+
a35;★
|
|
157
|
+
a36;✩
|
|
158
|
+
a37;✪
|
|
159
|
+
a38;✫
|
|
160
|
+
a39;✬
|
|
161
|
+
a3;✄
|
|
162
|
+
a40;✭
|
|
163
|
+
a41;✮
|
|
164
|
+
a42;✯
|
|
165
|
+
a43;✰
|
|
166
|
+
a44;✱
|
|
167
|
+
a45;✲
|
|
168
|
+
a46;✳
|
|
169
|
+
a47;✴
|
|
170
|
+
a48;✵
|
|
171
|
+
a49;✶
|
|
172
|
+
a4;☎
|
|
173
|
+
a50;✷
|
|
174
|
+
a51;✸
|
|
175
|
+
a52;✹
|
|
176
|
+
a53;✺
|
|
177
|
+
a54;✻
|
|
178
|
+
a55;✼
|
|
179
|
+
a56;✽
|
|
180
|
+
a57;✾
|
|
181
|
+
a58;✿
|
|
182
|
+
a59;❀
|
|
183
|
+
a5;✆
|
|
184
|
+
a60;❁
|
|
185
|
+
a61;❂
|
|
186
|
+
a62;❃
|
|
187
|
+
a63;❄
|
|
188
|
+
a64;❅
|
|
189
|
+
a65;❆
|
|
190
|
+
a66;❇
|
|
191
|
+
a67;❈
|
|
192
|
+
a68;❉
|
|
193
|
+
a69;❊
|
|
194
|
+
a6;✝
|
|
195
|
+
a70;❋
|
|
196
|
+
a71;●
|
|
197
|
+
a72;❍
|
|
198
|
+
a73;■
|
|
199
|
+
a74;❏
|
|
200
|
+
a75;❑
|
|
201
|
+
a76;▲
|
|
202
|
+
a77;▼
|
|
203
|
+
a78;◆
|
|
204
|
+
a79;❖
|
|
205
|
+
a7;✞
|
|
206
|
+
a81;◗
|
|
207
|
+
a82;❘
|
|
208
|
+
a83;❙
|
|
209
|
+
a84;❚
|
|
210
|
+
a85;❯
|
|
211
|
+
a86;❱
|
|
212
|
+
a87;❲
|
|
213
|
+
a88;❳
|
|
214
|
+
a89;❨
|
|
215
|
+
a8;✟
|
|
216
|
+
a90;❩
|
|
217
|
+
a91;❬
|
|
218
|
+
a92;❭
|
|
219
|
+
a93;❪
|
|
220
|
+
a94;❫
|
|
221
|
+
a95;❴
|
|
222
|
+
a96;❵
|
|
223
|
+
a97;❛
|
|
224
|
+
a98;❜
|
|
225
|
+
a99;❝
|
|
226
|
+
a9;✠
|
|
@@ -131,13 +131,12 @@ module HexaPDF
|
|
|
131
131
|
def load_file(file)
|
|
132
132
|
name2uni = {}
|
|
133
133
|
uni2name = {}
|
|
134
|
-
File.open(file, '
|
|
134
|
+
File.open(file, 'r:UTF-8') do |f|
|
|
135
|
+
25.times { f.gets } # Skip comments
|
|
135
136
|
while (line = f.gets)
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
name =
|
|
139
|
-
codes = line[index + 1, 50].split(" ").map(&:hex).pack('U*')
|
|
140
|
-
name2uni[name] = codes
|
|
137
|
+
name, codes = line.split(';', 2)
|
|
138
|
+
name = name.to_sym
|
|
139
|
+
name2uni[name] = codes.chomp!
|
|
141
140
|
uni2name[codes] = name unless uni2name.key?(codes)
|
|
142
141
|
end
|
|
143
142
|
end
|
|
@@ -234,7 +234,7 @@ module HexaPDF
|
|
|
234
234
|
page.contents = processor.result
|
|
235
235
|
page[:Contents].set_filter(:FlateDecode)
|
|
236
236
|
xobjects = page.resources[:XObject]
|
|
237
|
-
processor.used_references.each {|ref| used_refs[xobjects[ref]] = true }
|
|
237
|
+
processor.used_references.each {|ref| used_refs[xobjects[ref]] = true } if xobjects
|
|
238
238
|
end
|
|
239
239
|
used_refs
|
|
240
240
|
end
|
|
@@ -245,7 +245,7 @@ module HexaPDF
|
|
|
245
245
|
unless used_refs
|
|
246
246
|
used_refs = {}
|
|
247
247
|
doc.pages.each do |page|
|
|
248
|
-
xobjects = page.resources[:XObject]
|
|
248
|
+
next unless (xobjects = page.resources[:XObject])
|
|
249
249
|
HexaPDF::Content::Parser.parse(page.contents) do |op, operands|
|
|
250
250
|
used_refs[xobjects[operands[0]]] = true if op == :Do
|
|
251
251
|
end
|
|
@@ -253,7 +253,7 @@ module HexaPDF
|
|
|
253
253
|
end
|
|
254
254
|
|
|
255
255
|
doc.pages.each do |page|
|
|
256
|
-
xobjects = page.resources[:XObject]
|
|
256
|
+
next unless (xobjects = page.resources[:XObject])
|
|
257
257
|
xobjects.each do |key, obj|
|
|
258
258
|
next if used_refs[obj]
|
|
259
259
|
xobjects.delete(key)
|
data/lib/hexapdf/version.rb
CHANGED
|
@@ -168,12 +168,14 @@ describe HexaPDF::Task::Optimize do
|
|
|
168
168
|
page1.resources[:XObject][:test] = @doc.add({})
|
|
169
169
|
page1.resources[:XObject][:used_on_page2] = @doc.add({})
|
|
170
170
|
page1.resources[:XObject][:unused] = @doc.add({})
|
|
171
|
-
page1.contents = "/test Do"
|
|
171
|
+
page1.contents = "/test Do /InvalidRef Do"
|
|
172
172
|
page2 = @doc.pages.add
|
|
173
173
|
page2.resources[:XObject] = {}
|
|
174
174
|
page2.resources[:XObject][:used_on2] = page1.resources[:XObject][:used_on_page2]
|
|
175
175
|
page2.resources[:XObject][:also_unused] = page1.resources[:XObject][:unused]
|
|
176
176
|
page2.contents = "/used_on2 Do"
|
|
177
|
+
page3 = @doc.pages.add
|
|
178
|
+
page3.contents = "/unused Do "
|
|
177
179
|
|
|
178
180
|
@doc.task(:optimize, prune_page_resources: true, compress_pages: compress_pages)
|
|
179
181
|
|
|
@@ -182,6 +184,7 @@ describe HexaPDF::Task::Optimize do
|
|
|
182
184
|
refute(page1.resources[:XObject].key?(:unused))
|
|
183
185
|
assert(page2.resources[:XObject].key?(:used_on2))
|
|
184
186
|
refute(page2.resources[:XObject].key?(:also_unused))
|
|
187
|
+
assert_equal("/unused Do#{compress_pages ? "\n" : ' '}", page3.contents)
|
|
185
188
|
end
|
|
186
189
|
end
|
|
187
190
|
end
|
data/test/hexapdf/test_writer.rb
CHANGED
|
@@ -40,7 +40,7 @@ describe HexaPDF::Writer do
|
|
|
40
40
|
219
|
|
41
41
|
%%EOF
|
|
42
42
|
3 0 obj
|
|
43
|
-
<</Producer(HexaPDF version 0.20.
|
|
43
|
+
<</Producer(HexaPDF version 0.20.2)>>
|
|
44
44
|
endobj
|
|
45
45
|
xref
|
|
46
46
|
3 1
|
|
@@ -72,7 +72,7 @@ describe HexaPDF::Writer do
|
|
|
72
72
|
141
|
|
73
73
|
%%EOF
|
|
74
74
|
6 0 obj
|
|
75
|
-
<</Producer(HexaPDF version 0.20.
|
|
75
|
+
<</Producer(HexaPDF version 0.20.2)>>
|
|
76
76
|
endobj
|
|
77
77
|
2 0 obj
|
|
78
78
|
<</Length 10>>stream
|
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.20.
|
|
4
|
+
version: 0.20.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Thomas Leitner
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2022-01-
|
|
11
|
+
date: 2022-01-17 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: cmdparse
|