rbpdf 1.19.3 → 1.19.4

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: fe56fed150bb05fc1e613f87058b5403787068cb
4
- data.tar.gz: 7e0de6186f06514075d03c9499dc2ff72a11c52a
3
+ metadata.gz: 9ad5083c310d25cd904c1826bd2672b7bbb31a93
4
+ data.tar.gz: dcb1537363d38928044d3f55168381409c5f7b1b
5
5
  SHA512:
6
- metadata.gz: b526e43f73722bcf9cd6d4b76fb0f800ebf58462ed0331181c05e80ad062d733b9472c45e41b73a27e9a6c64ac6ce6f4ed691f33131ecac500b7c798bc735532
7
- data.tar.gz: a6d704fd9fc1c53950933c64bd37021161d2ee77affa6a41effcb38786e3226d42aa7fc080e7b671f05343e8e8569dd839dac94ac067197df694f842a40ae003
6
+ metadata.gz: 82119b8767536543d6e2cdd625bcdb48b0a7c75bc4ea92a3f2154f74731527eab42b7a1d605ee31f31b12a9bc3034599d4b5b1eeec2ce50036ea98cddeedea4d
7
+ data.tar.gz: 9c2428dbe401fb1425ee29096b09e50df64231ff9dcf8976c9bd0303dbd681bb95e8d3aecca5265ba73201647c5e39f92de4d64b83d9f1ee64570ce235b14a51
data/CHANGELOG CHANGED
@@ -1,3 +1,8 @@
1
+ 1.19.4 2018-06-16
2
+ - Ruby 2.5 supported.
3
+ - Rails 5.2 supported.
4
+ - Fixed exception handling of ImagePngAlpha function.
5
+
1
6
  1.19.3 2017-09-10
2
7
  - Rails 5.1 supported.
3
8
  - nil link bug fixed. (by jkraemer)
@@ -46,7 +46,10 @@ module Rbpdf
46
46
  return out
47
47
  end
48
48
 
49
- return false unless Object.const_defined?(:Magick)
49
+ unless Object.const_defined?(:Magick)
50
+ Error('No RMagick: Non-PNG file is not supported.: ' + filename);
51
+ return false
52
+ end
50
53
 
51
54
  image = Magick::ImageList.new(filename)
52
55
 
@@ -5294,6 +5294,11 @@ class RBPDF
5294
5294
  if tempfile_plain == false
5295
5295
  return false
5296
5296
  end
5297
+ info=parsepng(tempfile_plain.path)
5298
+ if info['cs'] != 'DeviceRGB'
5299
+ tempfile_plain.delete
5300
+ return false
5301
+ end
5297
5302
 
5298
5303
  tempfile_alpha = image_alpha_mask(file)
5299
5304
 
@@ -7168,7 +7173,6 @@ protected
7168
7173
  out << ' /BaseFont /' + fontname + ''
7169
7174
  out << ' /Name /F' + font['i'].to_s
7170
7175
  out << ' /Encoding /' + font['enc']
7171
- out << ' /ToUnicode /Identity-H'
7172
7176
  out << ' /DescendantFonts [' + (@n + 1).to_s + ' 0 R]'
7173
7177
  out << ' >>'
7174
7178
  out << ' endobj'
@@ -3,5 +3,5 @@
3
3
  # http://www.opensource.org/licenses/MIT
4
4
 
5
5
  module Rbpdf
6
- VERSION = "1.19.3"
6
+ VERSION = "1.19.4"
7
7
  end
@@ -110,7 +110,7 @@ class RbpdfPageTest < Test::Unit::TestCase
110
110
  assert_equal '370.62 391.58 340.88 408.76 308.08 414.54 c', content[6] # 2/9 circle
111
111
  assert_equal '275.27 420.32 241.45 414.36 212.60 397.70 c', content[7] # 3/9 circle
112
112
  assert_equal '183.75 381.05 161.67 354.74 150.28 323.44 c', content[8] # 4/9 circle
113
- assert_equal '138.89 292.13 138.89 257.79 150.28 226.49 c', content[9] # 5/9 circle
113
+ assert_match(/138.8[89] 292.13 138.8[89] 257.79 150.28 226.4[89] c/, content[9]) # 5/9 circle
114
114
  assert_equal '161.67 195.18 183.75 168.87 212.60 152.22 c', content[10] # 6/9 circle
115
115
  assert_equal '241.45 135.56 275.27 129.60 308.08 135.38 c', content[11] # 7/9 circle
116
116
  assert_equal '340.88 141.17 370.62 158.34 392.04 183.86 c', content[12] # 8/9 circle
@@ -5,122 +5,48 @@
5
5
  require 'test_helper'
6
6
 
7
7
  class RbpdfTest < Test::Unit::TestCase
8
- test "image getimagesize PNG test" do
9
- pdf = RBPDF.new
10
- pdf.add_page
11
- img_file = File.join(File.dirname(__FILE__), 'logo_rbpdf_8bit.png')
12
-
13
- info = pdf.getimagesize(img_file)
14
- assert_equal 240, info[0] # width
15
- assert_equal 89, info[1] # height
16
- assert_equal 'PNG', info[2] # Image Type
17
- assert_equal 'height="89" width="240"', info[3]
18
- assert_equal 'image/png', info['mime']
19
- end
20
-
21
- test "image getimagesize GIF test" do
22
- return unless Object.const_defined?(:Magick)
23
-
24
- pdf = RBPDF.new
25
- pdf.add_page
26
- img_file = File.join(File.dirname(__FILE__), 'logo_rbpdf_8bit.gif')
27
-
28
- info = pdf.getimagesize(img_file)
29
- assert_equal 240, info[0] # width
30
- assert_equal 89, info[1] # height
31
- assert_equal 'GIF', info[2] # Image Type
32
- assert_equal 'height="89" width="240"', info[3]
33
- assert_equal 'image/gif', info['mime']
34
- assert_equal 3, info['channels'] # RGB
35
- assert_equal 8, info['bits'] # depth
36
- end
37
-
38
- test "image getimagesize GIF alpha test" do
39
- return unless Object.const_defined?(:Magick)
40
-
41
- pdf = RBPDF.new
42
- pdf.add_page
43
- img_file = File.join(File.dirname(__FILE__), 'logo_rbpdf_8bit_alpha.gif')
44
-
45
- info = pdf.getimagesize(img_file)
46
- assert_equal 240, info[0] # width
47
- assert_equal 89, info[1] # height
48
- assert_equal 'GIF', info[2] # Image Type
49
- assert_equal 'height="89" width="240"', info[3]
50
- assert_equal 'image/gif', info['mime']
51
- assert_equal 3, info['channels'] # RGB
52
- assert_equal 8, info['bits'] # depth
53
- end
8
+ images = {
9
+ 'PNG' => {:file => 'logo_rbpdf_8bit.png', :type => 'PNG', :mime => 'image/png', :use_magick => false},
10
+ 'PNG monotone' => {:file => 'logo_rbpdf_mono_rgb.png', :type => 'PNG', :mime => 'image/png', :use_magick => false},
11
+ 'GIF' => {:file => 'logo_rbpdf_8bit.gif', :type => 'GIF', :mime => 'image/gif', :use_magick => true, :channels => 3, :bits => 8},
12
+ 'GIF alpha' => {:file => 'logo_rbpdf_8bit_alpha.gif', :type => 'GIF', :mime => 'image/gif', :use_magick => true, :channels => 3, :bits => 8},
13
+ 'JPEG RGB' => {:file => 'logo_rbpdf_8bit.jpg', :type => 'JPEG', :mime => 'image/jpeg', :use_magick => true, :channels => 3, :bits => 8},
14
+ 'JPEG monotone RGB' => {:file => 'logo_rbpdf_mono_rgb.jpg', :type => 'JPEG', :mime => 'image/jpeg', :use_magick => true, :channels => 3, :bits => 8},
15
+ 'JPEG monotone Gray' => {:file => 'logo_rbpdf_mono_gray.jpg', :type => 'JPEG', :mime => 'image/jpeg', :use_magick => true, :channels => 0, :bits => 8},
16
+ }
54
17
 
55
- test "image getimagesize JPEG RGB test" do
56
- return unless Object.const_defined?(:Magick)
18
+ data(images)
19
+ test "image getimagesize test" do |data|
20
+ if data[:use_magick] and !Object.const_defined?(:Magick)
21
+ return
22
+ end
57
23
 
58
24
  pdf = RBPDF.new
59
25
  pdf.add_page
60
- img_file = File.join(File.dirname(__FILE__), 'logo_rbpdf_8bit.jpg')
26
+ img_file = File.join(File.dirname(__FILE__), data[:file])
61
27
 
62
28
  info = pdf.getimagesize(img_file)
63
29
  assert_equal 240, info[0] # width
64
30
  assert_equal 89, info[1] # height
65
- assert_equal 'JPEG', info[2] # Image Type
31
+ assert_equal data[:type], info[2] # Image Type
66
32
  assert_equal 'height="89" width="240"', info[3]
67
- assert_equal 'image/jpeg', info['mime']
68
- assert_equal 3, info['channels'] # RGB
69
- assert_equal 8, info['bits'] # depth
33
+ assert_equal data[:mime], info['mime']
34
+ assert_equal data[:channels], info['channels'] if @channels # RGB
35
+ assert_equal data[:bits], info['bits'] if @bits # depth
70
36
  end
71
37
 
72
- test "image getimagesize JPEG monotone RGB test" do
73
- return unless Object.const_defined?(:Magick)
74
-
75
- pdf = RBPDF.new
76
- pdf.add_page
77
- img_file = File.join(File.dirname(__FILE__), 'logo_rbpdf_mono_rgb.jpg')
78
-
79
- info = pdf.getimagesize(img_file)
80
- assert_equal 240, info[0] # width
81
- assert_equal 89, info[1] # height
82
- assert_equal 'JPEG', info[2] # Image Type
83
- assert_equal 'height="89" width="240"', info[3]
84
- assert_equal 'image/jpeg', info['mime']
85
- assert_equal 3, info['channels'] # RGB
86
- assert_equal 8, info['bits'] # depth
87
- end
88
-
89
- test "image getimagesize JPEG monotone Gray test" do
90
- return unless Object.const_defined?(:Magick)
91
-
92
- pdf = RBPDF.new
93
- pdf.add_page
94
- img_file = File.join(File.dirname(__FILE__), 'logo_rbpdf_mono_gray.jpg')
95
-
96
- info = pdf.getimagesize(img_file)
97
- assert_equal 240, info[0] # width
98
- assert_equal 89, info[1] # height
99
- assert_equal 'JPEG', info[2] # Image Type
100
- assert_equal 'height="89" width="240"', info[3]
101
- assert_equal 'image/jpeg', info['mime']
102
- assert_equal 0, info['channels'] # Gray
103
- assert_equal 8, info['bits'] # depth
104
- end
105
-
106
- test "image getimagesize PNG monotone test" do
107
- pdf = RBPDF.new
108
- pdf.add_page
109
- img_file = File.join(File.dirname(__FILE__), 'logo_rbpdf_mono_rgb.png')
110
-
111
- info = pdf.getimagesize(img_file)
112
- assert_equal 240, info[0] # width
113
- assert_equal 89, info[1] # height
114
- assert_equal 'PNG', info[2] # Image Type
115
- assert_equal 'height="89" width="240"', info[3]
116
- assert_equal 'image/png', info['mime']
117
- end
38
+ images = {
39
+ 'PNG alpha' => {:file => 'png_test_alpha.png', :cs => 'DeviceRGB'},
40
+ 'GIF' => {:file => 'logo_rbpdf_8bit.gif', :cs => 'Indexed'},
41
+ 'GIF alpha' => {:file => 'logo_rbpdf_8bit_alpha.gif', :cs => 'Indexed'},
42
+ }
118
43
 
119
- test "imageToPNG delete GIF test" do
44
+ data(images)
45
+ test "imageToPNG delete test" do |data|
120
46
  return unless Object.const_defined?(:Magick)
121
47
  pdf = RBPDF.new
122
48
  pdf.add_page
123
- img_file = File.join(File.dirname(__FILE__), 'logo_rbpdf_8bit.gif')
49
+ img_file = File.join(File.dirname(__FILE__), data[:file])
124
50
 
125
51
  tempfile = pdf.send(:imageToPNG, img_file)
126
52
  assert_not_equal false, tempfile
@@ -129,7 +55,7 @@ class RbpdfTest < Test::Unit::TestCase
129
55
 
130
56
  assert_not_equal 'pngalpha', info
131
57
  assert_equal 8, info['bpc']
132
- assert_equal 'Indexed', info['cs']
58
+ assert_equal data[:cs], info['cs']
133
59
  end
134
60
 
135
61
  test "Magick::ImageList delete GIF alpha channel test" do
@@ -146,38 +72,6 @@ class RbpdfTest < Test::Unit::TestCase
146
72
  assert_equal false, img.alpha?
147
73
  end
148
74
 
149
- test "imageToPNG delete GIF alpha channel test" do
150
- return unless Object.const_defined?(:Magick)
151
- pdf = RBPDF.new
152
- pdf.add_page
153
- img_file = File.join(File.dirname(__FILE__), 'logo_rbpdf_8bit_alpha.gif')
154
-
155
- tempfile = pdf.send(:imageToPNG, img_file)
156
- assert_not_equal false, tempfile
157
-
158
- info = pdf.send(:parsepng, tempfile.path)
159
-
160
- assert_not_equal 'pngalpha', info
161
- assert_equal 8, info['bpc']
162
- assert_equal 'Indexed', info['cs']
163
- end
164
-
165
- test "imageToPNG delete PNG alpha channel test" do
166
- return unless Object.const_defined?(:Magick)
167
- pdf = RBPDF.new
168
- pdf.add_page
169
- img_file = File.join(File.dirname(__FILE__), 'png_test_alpha.png')
170
-
171
- tempfile = pdf.send(:imageToPNG, img_file)
172
- assert_not_equal false, tempfile
173
-
174
- info = pdf.send(:parsepng, tempfile.path)
175
-
176
- assert_not_equal 'pngalpha', info
177
- assert_equal 8, info['bpc']
178
- assert_equal 'DeviceRGB', info['cs']
179
- end
180
-
181
75
  test "image_alpha_mask DeviceGray test" do
182
76
  return unless Object.const_defined?(:Magick)
183
77
 
@@ -198,62 +92,45 @@ class RbpdfTest < Test::Unit::TestCase
198
92
  assert_equal 1, imgmask
199
93
  end
200
94
 
201
- test "ImagePngAlpha test" do
202
- return unless Object.const_defined?(:Magick)
203
95
 
204
- pdf = RBPDF.new
205
- pdf.add_page
206
- img_file = File.join(File.dirname(__FILE__), 'png_test_alpha.png')
207
- info = pdf.send(:ImagePngAlpha, img_file, 10, 10, 100, '', 'PNG', 'https://rubygems.org/gems/rbpdf')
208
- assert_equal true, info
209
- end
96
+ images = {
97
+ 'PNG alpha' => {:file => 'png_test_alpha.png', :info => true},
98
+ 'PNG alpha Error' => {:file => 'png_test_alpha.png', :info => false, :png_alpha_error => true},
99
+ }
210
100
 
211
- test "Image PNG test" do
212
- pdf = RBPDF.new
213
- pdf.add_page
214
- img_file = File.join(File.dirname(__FILE__), 'logo_rbpdf_8bit.png')
215
- info = pdf.image(img_file, 10, 10, 100, '', '', 'https://rubygems.org/gems/rbpdf', '', false, 300)
216
- assert_equal 1, info
217
- end
218
-
219
- test "Image PNG alpha test" do
101
+ data(images)
102
+ test "ImagePngAlpha test" do |data|
220
103
  return unless Object.const_defined?(:Magick)
221
104
 
222
105
  pdf = RBPDF.new
223
106
  pdf.add_page
224
- img_file = File.join(File.dirname(__FILE__), 'png_test_alpha.png')
225
- info = pdf.image(img_file, 10, 10, 100, '', '', 'https://rubygems.org/gems/rbpdf', '', false, 300)
226
- assert_equal true, info
227
- end
228
-
229
- test "Image GIF test" do
230
- return unless Object.const_defined?(:Magick)
231
-
232
- pdf = RBPDF.new
233
- pdf.add_page
234
- img_file = File.join(File.dirname(__FILE__), 'logo_rbpdf_8bit.gif')
235
- info = pdf.image(img_file, 10, 10, 100, '', '', 'https://rubygems.org/gems/rbpdf', '', false, 300)
236
- assert_equal 1, info
107
+ img_file = File.join(File.dirname(__FILE__), data[:file])
108
+ pdf.singleton_class.send(:define_method, :parsepng){|*args| {:cs => 'Indexed'}} if data[:png_alpha_error]
109
+ info = pdf.send(:ImagePngAlpha, img_file, 10, 10, 100, '', 'PNG', 'https://rubygems.org/gems/rbpdf')
110
+ assert_equal data[:info], info
237
111
  end
238
112
 
239
- test "Image GIF alpha test" do
240
- return unless Object.const_defined?(:Magick)
241
-
242
- pdf = RBPDF.new
243
- pdf.add_page
244
- img_file = File.join(File.dirname(__FILE__), 'logo_rbpdf_8bit_alpha.gif')
245
- info = pdf.image(img_file, 10, 10, 100, '', '', 'https://rubygems.org/gems/rbpdf', '', false, 300)
246
- assert_equal 1, info
247
- end
113
+ images = {
114
+ 'PNG' => {:file => 'logo_rbpdf_8bit.png', :info => 1, :use_magick => false},
115
+ 'PNG alpha' => {:file => 'png_test_alpha.png', :info => true, :use_magick => true},
116
+ 'PNG alpha Error' => {:file => 'png_test_alpha.png', :info => 1, :use_magick => true, :png_alpha_error => true},
117
+ 'GIF' => {:file => 'logo_rbpdf_8bit.gif', :info => 1, :use_magick => true},
118
+ 'GIF alpha' => {:file => 'logo_rbpdf_8bit_alpha.gif', :info => 1, :use_magick => true},
119
+ 'JPEG' => {:file => 'logo_rbpdf_8bit.jpg', :info => 1, :use_magick => true},
120
+ }
248
121
 
249
- test "Image JPEG test" do
250
- return unless Object.const_defined?(:Magick)
122
+ data(images)
123
+ test "Image test" do |data|
124
+ if data[:use_magick] and !Object.const_defined?(:Magick)
125
+ return
126
+ end
251
127
 
252
128
  pdf = RBPDF.new
253
129
  pdf.add_page
254
- img_file = File.join(File.dirname(__FILE__), 'logo_rbpdf_8bit.jpg')
130
+ img_file = File.join(File.dirname(__FILE__), data[:file])
131
+ pdf.singleton_class.send(:define_method, :parsepng){|*args| {:cs => 'Indexed'}} if data[:png_alpha_error]
255
132
  info = pdf.image(img_file, 10, 10, 100, '', '', 'https://rubygems.org/gems/rbpdf', '', false, 300)
256
- assert_equal 1, info
133
+ assert_equal data[:info], info
257
134
  end
258
135
 
259
136
  test "HTML Image test" do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rbpdf
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.19.3
4
+ version: 1.19.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - NAITOH Jun
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-09-09 00:00:00.000000000 Z
11
+ date: 2018-06-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: htmlentities
@@ -168,7 +168,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
168
168
  version: '0'
169
169
  requirements: []
170
170
  rubyforge_project:
171
- rubygems_version: 2.4.5.1
171
+ rubygems_version: 2.2.2
172
172
  signing_key:
173
173
  specification_version: 4
174
174
  summary: RBPDF via TCPDF.
@@ -211,3 +211,4 @@ test_files:
211
211
  - test/rbpdf_viewerpreferences_test.rb
212
212
  - test/rbpdf_write_test.rb
213
213
  - test/test_helper.rb
214
+ has_rdoc: