hexapdf 0.17.2 → 0.17.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +9 -0
- data/lib/hexapdf/parser.rb +3 -0
- data/lib/hexapdf/version.rb +1 -1
- data/test/hexapdf/test_dictionary_fields.rb +2 -2
- data/test/hexapdf/test_parser.rb +11 -0
- data/test/hexapdf/test_writer.rb +2 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 15efadb34e0a5dc93ec7659d02cb95a19400a38fe7ccffcbc2438fa6e6f51b8f
|
4
|
+
data.tar.gz: 29ddd43180432e648c107ae40c2618415f0ead8bf6e6fcbe46bc1f0557eae271
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0a3668dd377838665e75b6c8325efbe237e379823deb060acdf5c7be26d799ab4eee65e94a75b50e9ffc27c81693cb0158765402d9d6f4ddbacc3c1b3be531d4
|
7
|
+
data.tar.gz: 759a4a692997d50022f26fd6e5fbf06859a93a00b5d371286a084ffbcb98d3571d72eeb1d3c8d733b4b8917d195c236f7dac3654e4fddae8cb9c2cf7b2f9ab42
|
data/CHANGELOG.md
CHANGED
data/lib/hexapdf/parser.rb
CHANGED
@@ -404,6 +404,7 @@ module HexaPDF
|
|
404
404
|
def reconstruct_revision
|
405
405
|
return if @in_reconstruct_revision
|
406
406
|
@in_reconstruct_revision = true
|
407
|
+
@header_offset = 0
|
407
408
|
|
408
409
|
raise unless @document.config['parser.try_xref_reconstruction']
|
409
410
|
msg = "#{$!} - trying cross-reference table reconstruction"
|
@@ -428,8 +429,10 @@ module HexaPDF
|
|
428
429
|
elsif gen.kind_of?(Integer) && tok.kind_of?(Tokenizer::Token) && tok == 'obj'
|
429
430
|
xref.add_in_use_entry(token, gen, pos)
|
430
431
|
if linearized.nil?
|
432
|
+
pos = @tokenizer.pos
|
431
433
|
obj = @tokenizer.next_object rescue nil
|
432
434
|
linearized = obj.kind_of?(Hash) && obj.key?(:Linearized)
|
435
|
+
@tokenizer.pos = pos
|
433
436
|
end
|
434
437
|
@tokenizer.scan_until(/(?:\n|\r\n?)endobj\b/)
|
435
438
|
end
|
data/lib/hexapdf/version.rb
CHANGED
@@ -135,12 +135,12 @@ describe HexaPDF::DictionaryFields do
|
|
135
135
|
end
|
136
136
|
|
137
137
|
def configuration
|
138
|
-
|
138
|
+
HexaPDF::Configuration.with_defaults
|
139
139
|
end
|
140
140
|
|
141
141
|
it "calls document.on_invalid_string if the provided string is invalid" do
|
142
142
|
str = "\xfe\xff\xD8\x00\x00s\x00t".b
|
143
|
-
assert_equal("
|
143
|
+
assert_equal("st", @field.convert(str, self))
|
144
144
|
end
|
145
145
|
end
|
146
146
|
|
data/test/hexapdf/test_parser.rb
CHANGED
@@ -607,11 +607,22 @@ describe HexaPDF::Parser do
|
|
607
607
|
assert_equal(4, @parser.load_object(@xref).value)
|
608
608
|
end
|
609
609
|
|
610
|
+
it "handles an invalid object as first object" do
|
611
|
+
create_parser("2 0 obj\n(a(b\nendobj\n1 0 obj\n6\nendobj #)(\ntrailer\n<</Size 1>>")
|
612
|
+
assert_equal(6, @parser.load_object(@xref).value)
|
613
|
+
end
|
614
|
+
|
610
615
|
it "ignores invalid lines" do
|
611
616
|
create_parser("1 0 obj\n5\nendobj\nhello there\n1 0 obj\n6\nendobj\ntrailer\n<</Size 1>>")
|
612
617
|
assert_equal(6, @parser.load_object(@xref).value)
|
613
618
|
end
|
614
619
|
|
620
|
+
it "resets the header offset" do
|
621
|
+
create_parser("1 0 obj\n5\nendobj\ntrailer\n<</Size 1>>")
|
622
|
+
@parser.instance_variable_set(:@header_offset, 5)
|
623
|
+
assert_equal(5, @parser.load_object(@xref).value)
|
624
|
+
end
|
625
|
+
|
615
626
|
it "uses the last trailer" do
|
616
627
|
create_parser("trailer <</Size 1>>\ntrailer <</Size 2/Prev 342>>")
|
617
628
|
assert_equal({Size: 2}, @parser.reconstructed_revision.trailer.value)
|
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.17.
|
43
|
+
<</Producer(HexaPDF version 0.17.3)>>
|
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.17.
|
75
|
+
<</Producer(HexaPDF version 0.17.3)>>
|
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.17.
|
4
|
+
version: 0.17.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Thomas Leitner
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-10-
|
11
|
+
date: 2021-10-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: cmdparse
|