combine_pdf 0.2.29 → 0.2.30
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -0
- data/lib/combine_pdf/parser.rb +5 -3
- data/lib/combine_pdf/version.rb +1 -1
- data/test/automated +1 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f81f9412da41045468ecaa6e10104fc9062eee8d
|
4
|
+
data.tar.gz: 23410127dcabe19c6b9ddee352752f9b7bd0abb6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 03fdcce50faf9045930e435cbdf4d31e4ed96419f6e594796df89ab7c6e0891568467d5c1b632338c5e33fe17f3e68fe14c1c7c6c199e6d6d8a33ec47e438a46
|
7
|
+
data.tar.gz: 24442ecac5ee2ed427de851eb5de4081ab8bb4a8625cdcaa2c9d4a84da86c79feaf3b02928ebee22462b2963a94ea9683fde5a47a3e6a35400d9ace2f3b13489
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,12 @@
|
|
2
2
|
|
3
3
|
***
|
4
4
|
|
5
|
+
Change log v.0.2.30
|
6
|
+
|
7
|
+
**Fix**: Fixed an issue where HTTP artifacts before the beginning of a PDF file / string would prevent the PDF from being parsed. This fixes issue #78 reported by @robvitaro.
|
8
|
+
|
9
|
+
***
|
10
|
+
|
5
11
|
Change log v.0.2.29
|
6
12
|
|
7
13
|
**Fix**: Fixed an issue where updating a page's rotation might raise a `NoMethodError` exception. Credit to Danny (@dikond) both for discovering the issue and for PR #77 that fixes this.
|
data/lib/combine_pdf/parser.rb
CHANGED
@@ -62,6 +62,7 @@ module CombinePDF
|
|
62
62
|
return @parsed unless @parsed.empty?
|
63
63
|
@scanner = StringScanner.new @string_to_parse
|
64
64
|
@scanner.pos = 0
|
65
|
+
@scanner.skip(/[^%]*/) if @scanner.exist?(/%PDF/i)
|
65
66
|
if @scanner.scan /\%PDF\-[\d\-\.]+/
|
66
67
|
@version = @scanner.matched.scan(/[\d\.]+/)[0].to_f
|
67
68
|
loop do
|
@@ -355,7 +356,7 @@ module CombinePDF
|
|
355
356
|
##########################################
|
356
357
|
## XREF - check for encryption... anything else?
|
357
358
|
##########################################
|
358
|
-
elsif @scanner.scan(/xref/)
|
359
|
+
elsif @scanner.scan(/(startxref)|(xref)/)
|
359
360
|
##########
|
360
361
|
## get root object to check for encryption
|
361
362
|
@scanner.scan_until(/(trailer)|(\%EOF)/)
|
@@ -399,7 +400,7 @@ module CombinePDF
|
|
399
400
|
fresh = false
|
400
401
|
else
|
401
402
|
# always advance
|
402
|
-
# warn "Advancing for unknown reason... #{@scanner.string[@scanner.pos-4, 8]} ... #{@scanner.peek(4)}" unless @scanner.peek(1) =~ /[\s\n]/
|
403
|
+
# warn "Advancing for unknown reason... #{@scanner.string[@scanner.pos - 4, 8]} ... #{@scanner.peek(4)}" unless @scanner.peek(1) =~ /[\s\n]/
|
403
404
|
warn 'Warning: parser advancing for unknown reason. Potential data-loss.'
|
404
405
|
@scanner.pos = @scanner.pos + 1
|
405
406
|
end
|
@@ -418,7 +419,8 @@ module CombinePDF
|
|
418
419
|
else
|
419
420
|
catalogs = (@parsed.select { |obj| obj[:Type] == :Catalog }).last
|
420
421
|
end
|
421
|
-
|
422
|
+
|
423
|
+
@parsed.delete_if { |obj| obj.nil? || obj[:Type] == :Catalog }
|
422
424
|
@parsed << catalogs
|
423
425
|
|
424
426
|
raise "Unknown error - parsed data doesn't contain a cataloged object!" unless catalogs
|
data/lib/combine_pdf/version.rb
CHANGED
data/test/automated
CHANGED
@@ -54,6 +54,7 @@ CombinePDF.load("./Ruby/test\ pdfs/Scribus-unknown_err.pdf").save '08_1-unknown-
|
|
54
54
|
CombinePDF.load("./Ruby/test\ pdfs/Scribus-unknown_err2.pdf").save '08_2-unknown-err-empty-str.pdf'
|
55
55
|
CombinePDF.load("./Ruby/test\ pdfs/Scribus-unknown_err3.pdf").save '08_3-unknown-err-empty-str.pdf'
|
56
56
|
|
57
|
+
CombinePDF.load("/Users/2Be/Ruby/test\ pdfs/nil_object.pdf").save('09_nil_in_parsed_array.pdf')
|
57
58
|
# unify = [
|
58
59
|
# "./Ruby/test\ pdfs/AESv2\ encrypted.pdf",
|
59
60
|
# "./Ruby/test\ pdfs/data-in-comment.pdf",
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: combine_pdf
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.30
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Boaz Segev
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-07-
|
11
|
+
date: 2016-07-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ruby-rc4
|