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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2f282a79a5cf28d268806efc53ba4b21daaede88
4
- data.tar.gz: 57e4153629f11d8db42cce3d0aaebb44504666c2
3
+ metadata.gz: f81f9412da41045468ecaa6e10104fc9062eee8d
4
+ data.tar.gz: 23410127dcabe19c6b9ddee352752f9b7bd0abb6
5
5
  SHA512:
6
- metadata.gz: dd1da2e87426b60a206e17f58bae6931089dcdf9dcb14df5f11094c9dfadf64ad9592addf4249a19a21cc3a69882c4135f61554911f5460d43313a588baa92f7
7
- data.tar.gz: d4f1d4f094469da7d26ef1b1c979c066224236e4269cba5c43ba75a1a2ef0b70e4f8dbd9cdf4f0e351955975e068b2c0de4baab29587cd2ea7ed28a06bff56e3
6
+ metadata.gz: 03fdcce50faf9045930e435cbdf4d31e4ed96419f6e594796df89ab7c6e0891568467d5c1b632338c5e33fe17f3e68fe14c1c7c6c199e6d6d8a33ec47e438a46
7
+ data.tar.gz: 24442ecac5ee2ed427de851eb5de4081ab8bb4a8625cdcaa2c9d4a84da86c79feaf3b02928ebee22462b2963a94ea9683fde5a47a3e6a35400d9ace2f3b13489
@@ -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.
@@ -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
- @parsed.delete_if { |obj| obj[:Type] == :Catalog }
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
@@ -1,3 +1,3 @@
1
1
  module CombinePDF
2
- VERSION = '0.2.29'.freeze
2
+ VERSION = '0.2.30'.freeze
3
3
  end
@@ -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.29
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-22 00:00:00.000000000 Z
11
+ date: 2016-07-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ruby-rc4