pdf_margins 0.0.2 → 0.1.1

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 CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- MmQwZDMwZTgyZWNlYWUzNGRmODUzZTkzYWRkMGViZTU5Mzg3NThjOA==
5
- data.tar.gz: !binary |-
6
- OGIyZjg0MzUyZmM4MjJlNDE2ZTFkMDg5MzE4NmUyMTAxNjIyZGI3MQ==
7
- !binary "U0hBNTEy":
8
- metadata.gz: !binary |-
9
- M2QzN2FjMWFlN2Y5OTc4ZDM1YzIyNDZmMTVjMTc2NTdjMGY0NzI0ZDIwZTVm
10
- YzgzZDA1OWIzN2E5NWIwMDM2MjM3OWYyZmVhZTE0YzkwZjcyYWYwZGIwMTZm
11
- MTliZGMwMzkzMmFhZmY2OTAyMDFlMWIyOTNjMWFhMDVmYzM1NWE=
12
- data.tar.gz: !binary |-
13
- NDNiMzczMDkwYTkxYjRlN2E3Mzc5MDFlNDA0MmNlODU0YmQxNzA1Y2UyODdm
14
- NzE4M2ZmZTg0MGY0MTVkZGQyZGI2ZTQ5MzM3NGExOWM2ODZjYmFmOTUyZjg1
15
- ZjkwNjEwMjc4NGY2MjUyNGJhYWU4MzQ1ZTA2YjRmYzRjM2RhN2U=
2
+ SHA1:
3
+ metadata.gz: 6065ffaa732ecbbbe1d9addb6275715ea9613596
4
+ data.tar.gz: 8a3e756c74ba210add152540fee7948255bd40ff
5
+ SHA512:
6
+ metadata.gz: 5f89e8ca71ee8d320e7afc9cae7181a839429c23e306b6ce916a4294a6991bc9a4d99c407405d6f102648ab4bf489a0b5d73e97fff1fa68f4cd8eb8a4d569195
7
+ data.tar.gz: bc12bde2c429fe3eb0ed5b79daa775b837717a773b9ad391209f11c7747b544c650c9c984aecbe6c3c793a6f1d1b6fad57ecf504ffad4b9d5ddc58c3f29747bf
data/README.md CHANGED
@@ -1,6 +1,9 @@
1
1
  pdf/margins
2
2
  ==
3
3
 
4
+ [![Build
5
+ Status](https://travis-ci.org/newspaperclub/pdf_margins.png)](https://travis-ci.org/newspaperclub/pdf_margins)
6
+
4
7
  Simple Ruby library to check a PDF for clear margin areas, by rendering to
5
8
  a CMYK bitmap, ensuring that the pixel area defined by each margin is empty.
6
9
  It's pretty slow, but this is a lot easier than attempting to work out which
@@ -12,15 +12,17 @@ module PDF
12
12
  SCALE_MULTIPLIER = 1
13
13
  RESOLUTION = DEFAULT_RESOLUTION * SCALE_MULTIPLIER
14
14
 
15
- attr_reader :file, :top_margin, :right_margin, :bottom_margin, :left_margin
15
+ attr_reader :file, :top_margin, :right_margin, :bottom_margin, :left_margin, :spreads
16
16
 
17
- # Dimensions are in mm, to be converted to PDF points later.
18
- def initialize(file, top_margin, right_margin, bottom_margin, left_margin)
17
+ # Dimensions are in mm, to be converted to PDF points later. Pass spreads
18
+ # as true to check left and right margins of spreads, not pages.
19
+ def initialize(file, top_margin, right_margin, bottom_margin, left_margin, spreads=false)
19
20
  @file = file
20
21
  @top_margin = top_margin
21
22
  @right_margin = right_margin
22
23
  @bottom_margin = bottom_margin
23
24
  @left_margin = left_margin
25
+ @spreads = spreads
24
26
  end
25
27
 
26
28
  def issues
@@ -45,18 +47,12 @@ module PDF
45
47
  page_issues << Issue.new(page_number, :bottom)
46
48
  end
47
49
 
48
- # Newspaper Club assumes that pages are two up, printed as spreads,
49
- # so we only check right margins on odd numbered pages, and left
50
- # margins on even numbered pages. This should probably be
51
- # a configurable option for other types of printing.
52
- if page_number % 2 == 0
53
- if dirty_pixels?(left_pixels(image, left_margin))
54
- page_issues << Issue.new(page_number, :left)
55
- end
56
- else
57
- if dirty_pixels?(right_pixels(image, right_margin))
58
- page_issues << Issue.new(page_number, :right)
59
- end
50
+ if (!spreads || page_number % 2 == 0) && dirty_pixels?(left_pixels(image, left_margin))
51
+ page_issues << Issue.new(page_number, :left)
52
+ end
53
+
54
+ if (!spreads || page_number % 2 != 0) && dirty_pixels?(right_pixels(image, right_margin))
55
+ page_issues << Issue.new(page_number, :right)
60
56
  end
61
57
  end
62
58
  end.flatten
@@ -1,5 +1,5 @@
1
1
  module PDF
2
2
  module Margins
3
- VERSION = "0.0.2"
3
+ VERSION = "0.1.1"
4
4
  end
5
5
  end
data/test/checker_test.rb CHANGED
@@ -2,34 +2,78 @@ require 'test_helper'
2
2
 
3
3
  class CheckerTest < Test::Unit::TestCase
4
4
 
5
- test "PDF with clear margins" do
6
- checker = PDF::Margins::Checker.new(pdf_path('clear-margins.pdf'), 10, 10, 10, 10)
5
+ test "PDF as pages with clear margins tested as pages" do
6
+ checker = PDF::Margins::Checker.new(pdf_path('clear-margins-pages.pdf'), 15, 15, 15, 15)
7
7
  assert_equal [], checker.issues
8
8
  end
9
9
 
10
- test "PDF with dirty left margin on page 1" do
11
- checker = PDF::Margins::Checker.new(pdf_path('left-margin-only.pdf'), 10, 10, 10, 10)
10
+ test "PDF as spreads with clear margins tested as spreads" do
11
+ checker = PDF::Margins::Checker.new(pdf_path('clear-margins-spreads.pdf'), 15, 15, 15, 15, true)
12
12
  assert_equal [], checker.issues
13
13
  end
14
14
 
15
- test "PDF with dirty left margin on page 2" do
16
- checker = PDF::Margins::Checker.new(pdf_path('p2-left-margin-only.pdf'), 10, 10, 10, 10)
17
- assert_equal [PDF::Margins::Issue.new(2, :left)], checker.issues
15
+ test "PDF as spreads with clear margins tested as pages" do
16
+ checker = PDF::Margins::Checker.new(pdf_path('clear-margins-spreads.pdf'), 15, 15, 15, 15)
17
+ assert_equal [
18
+ PDF::Margins::Issue.new(1, :left),
19
+ PDF::Margins::Issue.new(2, :right),
20
+ PDF::Margins::Issue.new(3, :left),
21
+ PDF::Margins::Issue.new(4, :right)
22
+ ], checker.issues
18
23
  end
19
24
 
20
- test "PDF with dirty right margin on page 1" do
21
- checker = PDF::Margins::Checker.new(pdf_path('right-margin-only.pdf'), 10, 10, 10, 10)
22
- assert_equal [PDF::Margins::Issue.new(1, :right)], checker.issues
25
+ test "PDF as pages with dirty left margin" do
26
+ checker = PDF::Margins::Checker.new(pdf_path('left-margin-only.pdf'), 15, 15, 15, 15)
27
+ assert_equal [
28
+ PDF::Margins::Issue.new(1, :left)
29
+ ], checker.issues
23
30
  end
24
31
 
25
- test "PDF with dirty top margin on page 1" do
26
- checker = PDF::Margins::Checker.new(pdf_path('top-margin-only.pdf'), 10, 10, 10, 10)
27
- assert_equal [PDF::Margins::Issue.new(1, :top)], checker.issues
32
+ test "PDF as pages with dirty right margin" do
33
+ checker = PDF::Margins::Checker.new(pdf_path('right-margin-only.pdf'), 15, 15, 15, 15)
34
+ assert_equal [
35
+ PDF::Margins::Issue.new(1, :right)
36
+ ], checker.issues
28
37
  end
29
38
 
30
- test "PDF with dirty bottom margin on page 1" do
31
- checker = PDF::Margins::Checker.new(pdf_path('bottom-margin-only.pdf'), 10, 10, 10, 10)
32
- assert_equal [PDF::Margins::Issue.new(1, :bottom)], checker.issues
39
+ test "PDF with dirty top margin as spreads" do
40
+ checker = PDF::Margins::Checker.new(pdf_path('top-margin-only.pdf'), 15, 15, 15, 15, true)
41
+ assert_equal [
42
+ PDF::Margins::Issue.new(1, :top),
43
+ PDF::Margins::Issue.new(2, :top),
44
+ PDF::Margins::Issue.new(3, :top),
45
+ PDF::Margins::Issue.new(4, :top)
46
+ ], checker.issues
47
+ end
48
+
49
+ test "PDF with dirty bottom margin as spreads" do
50
+ checker = PDF::Margins::Checker.new(pdf_path('bottom-margin-only.pdf'), 15, 15, 15, 15, true)
51
+ assert_equal [
52
+ PDF::Margins::Issue.new(1, :bottom),
53
+ PDF::Margins::Issue.new(2, :bottom),
54
+ PDF::Margins::Issue.new(3, :bottom),
55
+ PDF::Margins::Issue.new(4, :bottom)
56
+ ], checker.issues
57
+ end
58
+
59
+ test "PDF with dirty top margin as pages" do
60
+ checker = PDF::Margins::Checker.new(pdf_path('top-margin-only.pdf'), 15, 15, 15, 15)
61
+ assert_equal [
62
+ PDF::Margins::Issue.new(1, :top),
63
+ PDF::Margins::Issue.new(2, :top),
64
+ PDF::Margins::Issue.new(3, :top),
65
+ PDF::Margins::Issue.new(4, :top)
66
+ ], checker.issues
67
+ end
68
+
69
+ test "PDF with dirty bottom margin as pages" do
70
+ checker = PDF::Margins::Checker.new(pdf_path('bottom-margin-only.pdf'), 15, 15, 15, 15)
71
+ assert_equal [
72
+ PDF::Margins::Issue.new(1, :bottom),
73
+ PDF::Margins::Issue.new(2, :bottom),
74
+ PDF::Margins::Issue.new(3, :bottom),
75
+ PDF::Margins::Issue.new(4, :bottom)
76
+ ], checker.issues
33
77
  end
34
78
 
35
79
  end
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pdf_margins
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tom Taylor
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-05-15 00:00:00.000000000 Z
11
+ date: 2013-07-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rmagick
@@ -28,28 +28,28 @@ dependencies:
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ! '>='
31
+ - - '>='
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ! '>='
38
+ - - '>='
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: test-unit
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ! '>='
45
+ - - '>='
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ! '>='
52
+ - - '>='
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  description:
@@ -67,9 +67,10 @@ files:
67
67
  - README.md
68
68
  - test/checker_test.rb
69
69
  - test/pdfs/bottom-margin-only.pdf
70
- - test/pdfs/clear-margins.pdf
70
+ - test/pdfs/clear-margins-pages.pdf
71
+ - test/pdfs/clear-margins-spreads.pdf
71
72
  - test/pdfs/left-margin-only.pdf
72
- - test/pdfs/p2-left-margin-only.pdf
73
+ - test/pdfs/margins.indd
73
74
  - test/pdfs/right-margin-only.pdf
74
75
  - test/pdfs/top-margin-only.pdf
75
76
  - test/test_helper.rb
@@ -83,26 +84,27 @@ require_paths:
83
84
  - lib
84
85
  required_ruby_version: !ruby/object:Gem::Requirement
85
86
  requirements:
86
- - - ! '>='
87
+ - - '>='
87
88
  - !ruby/object:Gem::Version
88
89
  version: '0'
89
90
  required_rubygems_version: !ruby/object:Gem::Requirement
90
91
  requirements:
91
- - - ! '>='
92
+ - - '>='
92
93
  - !ruby/object:Gem::Version
93
94
  version: '0'
94
95
  requirements: []
95
96
  rubyforge_project:
96
- rubygems_version: 2.0.3
97
+ rubygems_version: 2.0.2
97
98
  signing_key:
98
99
  specification_version: 4
99
100
  summary: Simple library to checks whether the margins are clear in a PDF
100
101
  test_files:
101
102
  - test/checker_test.rb
102
103
  - test/pdfs/bottom-margin-only.pdf
103
- - test/pdfs/clear-margins.pdf
104
+ - test/pdfs/clear-margins-pages.pdf
105
+ - test/pdfs/clear-margins-spreads.pdf
104
106
  - test/pdfs/left-margin-only.pdf
105
- - test/pdfs/p2-left-margin-only.pdf
107
+ - test/pdfs/margins.indd
106
108
  - test/pdfs/right-margin-only.pdf
107
109
  - test/pdfs/top-margin-only.pdf
108
110
  - test/test_helper.rb
Binary file
Binary file