rbpdf 1.19.3 → 1.19.4

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,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: