rbpdf 1.20.0 → 1.20.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (48) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +4 -0
  3. data/lib/rbpdf/version.rb +1 -1
  4. data/rbpdf.gemspec +1 -2
  5. metadata +4 -90
  6. data/test/err_font1.rb +0 -7
  7. data/test/err_font2.rb +0 -8
  8. data/test/input.jpg +0 -0
  9. data/test/json: +0 -0
  10. data/test/logo_rbpdf_8bit .png +0 -0
  11. data/test/logo_rbpdf_8bit+ .png +0 -0
  12. data/test/logo_rbpdf_8bit.gif +0 -0
  13. data/test/logo_rbpdf_8bit.jpg +0 -0
  14. data/test/logo_rbpdf_8bit.png +0 -0
  15. data/test/logo_rbpdf_8bit_alpha.gif +0 -0
  16. data/test/logo_rbpdf_mono_gray.jpg +0 -0
  17. data/test/logo_rbpdf_mono_gray.png +0 -0
  18. data/test/logo_rbpdf_mono_rgb.jpg +0 -0
  19. data/test/logo_rbpdf_mono_rgb.png +0 -0
  20. data/test/output.png +0 -0
  21. data/test/png_test_alpha.png +0 -0
  22. data/test/png_test_msk_alpha.png +0 -0
  23. data/test/png_test_non_alpha.png +0 -0
  24. data/test/rbpdf_bidi_test.rb +0 -453
  25. data/test/rbpdf_bookmark_test.rb +0 -66
  26. data/test/rbpdf_cell_test.rb +0 -231
  27. data/test/rbpdf_content_test.rb +0 -213
  28. data/test/rbpdf_css_test.rb +0 -640
  29. data/test/rbpdf_dom_test.rb +0 -272
  30. data/test/rbpdf_examples_test.rb +0 -83
  31. data/test/rbpdf_font_func_test.rb +0 -45
  32. data/test/rbpdf_font_style_test.rb +0 -37
  33. data/test/rbpdf_font_test.rb +0 -308
  34. data/test/rbpdf_format_test.rb +0 -30
  35. data/test/rbpdf_func_test.rb +0 -139
  36. data/test/rbpdf_html_anchor_test.rb +0 -105
  37. data/test/rbpdf_html_func_test.rb +0 -170
  38. data/test/rbpdf_html_test.rb +0 -658
  39. data/test/rbpdf_htmlcell_test.rb +0 -60
  40. data/test/rbpdf_http_test.rb +0 -76
  41. data/test/rbpdf_image_rmagick_test.rb +0 -170
  42. data/test/rbpdf_image_test.rb +0 -174
  43. data/test/rbpdf_test.rb +0 -375
  44. data/test/rbpdf_transaction_test.rb +0 -203
  45. data/test/rbpdf_viewerpreferences_test.rb +0 -41
  46. data/test/rbpdf_write_test.rb +0 -229
  47. data/test/test.rb +0 -22
  48. data/test/test_helper.rb +0 -9
@@ -1,60 +0,0 @@
1
- # Copyright (c) 2011-2018 NAITOH Jun
2
- # Released under the MIT license
3
- # http://www.opensource.org/licenses/MIT
4
-
5
- require 'test_helper'
6
-
7
- class RbpdfTest < Test::Unit::TestCase
8
- htmls = {
9
- 'Basic' => {:html => '<p>foo</p>', :line => 1,
10
- :border => 0, :pno => 1, :no => 1},
11
- 'Page Break no border' => {:html => '<p>foo</p>', :margin => 30,
12
- :border => 0, :pno => 2, :no => 2},
13
- 'Page Break border' => {:html => '<p>foo</p>', :margin => 30,
14
- :border => 'LRBT', :pno => 2, :no => 2},
15
- 'pre tag y position' => {:html => "<p>test 0</p>\n <pre>test 1\ntest 2\ntest 3</pre>\n <p>test 10</p>", :line => 7,
16
- :border => 0, :pno => 1, :no => 1},
17
- }
18
-
19
- data(htmls)
20
- test "write_html_cell test" do |data|
21
- pdf = RBPDF.new
22
- pdf.add_page()
23
- t_margin = pdf.instance_variable_get('@t_margin')
24
- y0 = pdf.get_y
25
- assert_equal t_margin, y0
26
-
27
- if data[:margin]
28
- pdf.set_top_margin(data[:margin])
29
- y0 = pdf.get_y
30
- assert_equal data[:margin], y0
31
-
32
- h = pdf.get_page_height
33
- pdf.set_y(h - 15)
34
- y0 = pdf.get_y
35
- end
36
-
37
- font_size = pdf.get_font_size
38
- cell_height_ratio = pdf.get_cell_height_ratio
39
- min_cell_height = font_size * cell_height_ratio
40
- h = 5
41
-
42
- min_cell_height = h > min_cell_height ? h : min_cell_height
43
-
44
- pdf.write_html_cell(0, h, 10, '', data[:html], data[:border], 1, 0, true, '', false)
45
-
46
- pno = pdf.get_page
47
- assert_equal data[:pno], pno
48
-
49
- y1 = pdf.get_y
50
- if pno == 1
51
- assert_in_delta(y0 + min_cell_height * data[:line], y1, 0.1)
52
- else # pno 2, 1 line case only
53
- page_break_trigger = pdf.instance_variable_get('@page_break_trigger')
54
- assert_in_delta(data[:margin] + y0 + h - page_break_trigger, y1, 0.1)
55
- end
56
-
57
- no = pdf.get_num_pages
58
- assert_equal data[:no], no
59
- end
60
- end
@@ -1,76 +0,0 @@
1
- # Copyright (c) 2011-2017 NAITOH Jun
2
- # Released under the MIT license
3
- # http://www.opensource.org/licenses/MIT
4
-
5
- require 'test_helper'
6
-
7
- class RbpdfHttpTest < Test::Unit::TestCase
8
- class MYPDF < RBPDF
9
- def get_image_file(uri)
10
- super
11
- end
12
- end
13
-
14
- def setup
15
- require 'webrick'
16
- @port = 51234
17
-
18
- dir = File.dirname(__FILE__)
19
- @s = WEBrick::HTTPServer.new(:Port => @port, :DocumentRoot => dir, :BindAddress => "0.0.0.0", :DoNotReverseLookup => true)
20
- @t = Thread.new { @s.start }
21
- end
22
-
23
- test "Image get image file test" do
24
- images = [
25
- # file_name, error_message
26
- ['logo_rbpdf_8bit.png', nil],
27
- ['logo_rbpdf_8bit .png', nil],
28
- ['logo_rbpdf_8bit+ .png', nil],
29
- ['logo_rbpdf_8bit_no_file.png', /^RBPDF error: Unable to get image width and height: /],
30
- ]
31
- # no use
32
- #if RUBY_VERSION >= '2.0' # Ruby 1.9.2/1.9.3
33
- # utf8_japanese_aiueo_str = "\xe3\x81\x82\xe3\x81\x84\xe3\x81\x86\xe3\x81\x88\xe3\x81\x8a"
34
- # images << 'logo_rbpdf_8bit_' + utf8_japanese_aiueo_str + '.png'
35
- #end
36
-
37
- pdf = MYPDF.new
38
- images.each_with_index {|image, i|
39
- pdf.add_page
40
- #image[0].force_encoding('ASCII-8BIT') if image[0].respond_to?(:force_encoding)
41
- tmpFile = pdf.get_image_file('http://127.0.0.1:' + @port.to_s + '/' + image[0])
42
-
43
- img_file = tmpFile.path
44
- assert_not_equal "", img_file
45
- unless File.exist?(img_file)
46
- assert false, "file not found. :" + img_file
47
- end
48
-
49
- if image[1].nil?
50
- result_img = pdf.image(img_file, 50, 0, 0, '', '', '', '', false, 300, '', true)
51
- assert_equal i+1, result_img
52
- else
53
- err = assert_raise(RBPDFError) {
54
- result_img = pdf.image(img_file, 50, 0, 0, '', '', '', '', false, 300, '', true)
55
- }
56
- assert_match image[1], err.message
57
- assert_equal nil, result_img
58
- end
59
-
60
- no = pdf.get_num_pages
61
- assert_equal i+1, no
62
-
63
- # remove temp files
64
- tmpFile.delete unless tmpFile.nil?
65
-
66
- if File.exist?(img_file)
67
- assert false, "file found. :" + img_file
68
- end
69
- }
70
- end
71
-
72
- def teardown
73
- @s.shutdown
74
- @t.join
75
- end
76
- end
@@ -1,170 +0,0 @@
1
- # Copyright (c) 2011-2017 NAITOH Jun
2
- # Released under the MIT license
3
- # http://www.opensource.org/licenses/MIT
4
-
5
- require 'test_helper'
6
-
7
- class RbpdfTest < Test::Unit::TestCase
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
- }
17
-
18
- data(images)
19
- test "image getimagesize test" do |data|
20
- if data[:use_magick] and (!Object.const_defined?(:Magick) and !Object.const_defined?(:MiniMagick))
21
- return
22
- end
23
-
24
- pdf = RBPDF.new
25
- pdf.add_page
26
- img_file = File.join(File.dirname(__FILE__), data[:file])
27
-
28
- info = pdf.getimagesize(img_file)
29
- assert_equal 240, info[0] # width
30
- assert_equal 89, info[1] # height
31
- assert_equal data[:type], info[2] # Image Type
32
- assert_equal 'height="89" width="240"', info[3]
33
- assert_equal data[:mime], info['mime']
34
- assert_equal data[:channels], info['channels'] if data[:channels] # RGB
35
- assert_equal data[:bits], info['bits'] if data[:bits] # depth
36
- end
37
-
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
- }
43
-
44
- data(images)
45
- test "imageToPNG delete test" do |data|
46
- return unless Object.const_defined?(:Magick)
47
- pdf = RBPDF.new
48
- pdf.add_page
49
- img_file = File.join(File.dirname(__FILE__), data[:file])
50
-
51
- tempfile = pdf.send(:imageToPNG, img_file)
52
- assert_not_equal false, tempfile
53
-
54
- info = pdf.send(:parsepng, tempfile.path)
55
-
56
- assert_not_equal 'pngalpha', info
57
- assert_equal 8, info['bpc']
58
- assert_equal data[:cs], info['cs']
59
- end
60
-
61
- test "Magick::ImageList delete GIF alpha channel test" do
62
- return unless Object.const_defined?(:Magick)
63
- pdf = RBPDF.new
64
- pdf.add_page
65
- img_file = File.join(File.dirname(__FILE__), 'logo_rbpdf_8bit_alpha.gif')
66
-
67
- img = Magick::ImageList.new(img_file)
68
- img.format = 'PNG' # convert to PNG from gif
69
- assert_equal true, img.alpha?
70
-
71
- img.alpha Magick::DeactivateAlphaChannel # PNG alpha channel delete
72
- assert_equal false, img.alpha?
73
- end
74
-
75
- test "image_alpha_mask DeviceGray test" do
76
- return unless Object.const_defined?(:Magick)
77
-
78
- pdf = RBPDF.new
79
- pdf.add_page
80
- img_file = File.join(File.dirname(__FILE__), 'png_test_alpha.png')
81
-
82
- tempfile = pdf.send(:image_alpha_mask, img_file)
83
-
84
- info = pdf.send(:parsepng, tempfile.path)
85
-
86
- assert_not_equal 'pngalpha', info
87
- assert_equal 8, info['bpc']
88
- assert_equal 'DeviceGray', info['cs']
89
-
90
- # embed mask image test
91
- imgmask = pdf.image(tempfile.path, 10, 10, 100, '', 'PNG', '', '', false, 300, '', true, false)
92
- assert_equal 1, imgmask
93
- end
94
-
95
-
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}, # no use
99
- }
100
-
101
- data(images)
102
- test "ImagePngAlpha test" do |data|
103
- return unless Object.const_defined?(:Magick)
104
-
105
- pdf = RBPDF.new
106
- pdf.add_page
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] # no use
109
- info = pdf.send(:ImagePngAlpha, img_file, 10, 10, 100, '', 'PNG', 'https://rubygems.org/gems/rbpdf')
110
- assert_equal data[:info], info
111
- end
112
-
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}, # no use
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
- }
121
-
122
- data(images)
123
- test "Image test" do |data|
124
- if data[:use_magick] and !Object.const_defined?(:Magick)
125
- return
126
- end
127
-
128
- pdf = RBPDF.new
129
- pdf.add_page
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] # no use
132
- info = pdf.image(img_file, 10, 10, 100, '', '', 'https://rubygems.org/gems/rbpdf', '', false, 300)
133
- assert_equal data[:info], info
134
- end
135
-
136
- test "HTML Image test" do
137
- return unless Object.const_defined?(:Magick)
138
-
139
- images = {
140
- 'png_test_alpha.png' => 40.11,
141
- 'png_test_msk_alpha.png' => 40.11,
142
- 'png_test_non_alpha.png' => 40.11,
143
- 'logo_rbpdf_8bit.png' => 36.58,
144
- 'logo_rbpdf_8bit.gif' => 36.58,
145
- 'logo_rbpdf_8bit_alpha.gif' => 36.58,
146
- 'logo_rbpdf_8bit.jpg' => 36.58,
147
- 'logo_rbpdf_mono_gray.jpg' => 36.58,
148
- 'logo_rbpdf_mono_gray.png' => 36.58,
149
- 'logo_rbpdf_mono_rgb.jpg' => 36.58,
150
- 'logo_rbpdf_mono_rgb.png' => 36.58,
151
- 'ng.png' => 9.42
152
- }
153
-
154
- pdf = RBPDF.new
155
- images.each {|image, h|
156
- pdf.add_page
157
- img_file = File.join(File.dirname(__FILE__), image)
158
- htmlcontent = '<img src="'+ img_file + '"/>'
159
-
160
- x_org = pdf.get_x
161
- y_org = pdf.get_y
162
- pdf.write_html(htmlcontent, true, 0, true, 0)
163
- x = pdf.get_x
164
- y = pdf.get_y
165
-
166
- assert_equal '[' + image + ']:' + x_org.to_s, '[' + image + ']:' + x.to_s
167
- assert_equal '[' + image + ']:' + (y_org + h).round(2).to_s, '[' + image + ']:' + y.round(2).to_s
168
- }
169
- end
170
- end
@@ -1,174 +0,0 @@
1
- # Copyright (c) 2011-2017 NAITOH Jun
2
- # Released under the MIT license
3
- # http://www.opensource.org/licenses/MIT
4
-
5
- require 'test_helper'
6
-
7
- class RbpdfTest < Test::Unit::TestCase
8
- test "Image basic func extension test" do
9
- pdf = RBPDF.new
10
-
11
- type = pdf.get_image_file_type("/tmp/rbpdf_logo.gif")
12
- assert_equal 'gif', type
13
-
14
- type = pdf.get_image_file_type("/tmp/rbpdf_logo.PNG")
15
- assert_equal 'png', type
16
-
17
- type = pdf.get_image_file_type("/tmp/rbpdf_logo.jpg")
18
- assert_equal 'jpeg', type
19
-
20
- type = pdf.get_image_file_type("/tmp/rbpdf_logo.jpeg")
21
- assert_equal 'jpeg', type
22
-
23
- type = pdf.get_image_file_type("/tmp/rbpdf_logo")
24
- assert_equal '', type
25
-
26
- type = pdf.get_image_file_type("")
27
- assert_equal '', type
28
-
29
- type = pdf.get_image_file_type(nil)
30
- assert_equal '', type
31
- end
32
-
33
- test "Image basic func mime type test" do
34
- pdf = RBPDF.new
35
-
36
- type = pdf.get_image_file_type(nil, {})
37
- assert_equal '', type
38
-
39
- type = pdf.get_image_file_type(nil, {'mime' => 'image/gif'})
40
- assert_equal 'gif', type
41
-
42
- type = pdf.get_image_file_type(nil, {'mime' => 'image/jpeg'})
43
- assert_equal 'jpeg', type
44
-
45
- type = pdf.get_image_file_type('/tmp/rbpdf_logo.gif', {'mime' => 'image/png'})
46
- assert_equal 'png', type
47
-
48
- type = pdf.get_image_file_type('/tmp/rbpdf_logo.gif', {})
49
- assert_equal 'gif', type
50
-
51
- type = pdf.get_image_file_type(nil, {'mime' => 'text/html'})
52
- assert_equal '', type
53
-
54
- type = pdf.get_image_file_type(nil, [])
55
- assert_equal '', type
56
- end
57
-
58
- test "Image basic ascii filename test" do
59
- pdf = RBPDF.new
60
- pdf.add_page
61
- img_file = File.join(File.dirname(__FILE__), 'logo_rbpdf_8bit.png')
62
- assert_nothing_raised(RBPDFError) {
63
- pdf.image(img_file)
64
- }
65
-
66
- img_file = File.join(File.dirname(__FILE__), 'logo_rbpdf_8bit .png')
67
- assert_nothing_raised(RBPDFError) {
68
- pdf.image(img_file)
69
- }
70
- end
71
-
72
- # no use
73
- #test "Image basic non ascii filename test" do
74
- # pdf = RBPDF.new
75
- # pdf.add_page
76
-
77
- # utf8_japanese_aiueo_str = "\xe3\x81\x82\xe3\x81\x84\xe3\x81\x86\xe3\x81\x88\xe3\x81\x8a"
78
- # img_file = File.join(File.dirname(__FILE__), 'logo_rbpdf_8bit_' + utf8_japanese_aiueo_str + '.png')
79
- # assert_nothing_raised(RBPDFError) {
80
- # pdf.image(img_file)
81
- # }
82
- #end
83
-
84
- test "Image basic filename error test" do
85
- pdf = RBPDF.new
86
- err = assert_raise(RBPDFError) {
87
- pdf.image(nil)
88
- }
89
- assert_equal 'RBPDF error: Image filename is empty.', err.message
90
-
91
- err = assert_raises(RBPDFError) {
92
- pdf.image('')
93
- }
94
- assert_equal 'RBPDF error: Image filename is empty.', err.message
95
-
96
- err = assert_raises(RBPDFError) {
97
- pdf.image('foo.png')
98
- }
99
- assert_equal 'RBPDF error: Image file is not found. : foo.png', err.message
100
- end
101
-
102
- test "Image basic test" do
103
- pdf = RBPDF.new
104
- pdf.add_page
105
- img_file = File.join(File.dirname(__FILE__), '..', 'logo_example.png')
106
-
107
- result_img = pdf.image(img_file, 50, 0, 0, '', '', '', '', false, 300, '', true)
108
-
109
- no = pdf.get_num_pages
110
- assert_equal 1, no
111
- assert_equal 1, result_img
112
- end
113
-
114
- test "Image fitonpage test 1" do
115
- pdf = RBPDF.new
116
- pdf.add_page
117
- img_file = File.join(File.dirname(__FILE__), '..', 'logo_example.png')
118
-
119
- result_img = pdf.image(img_file, 50, 140, 100, '', '', '', '', false, 300, '', true, false, 0, false, false, true)
120
-
121
- no = pdf.get_num_pages
122
- assert_equal 1, no
123
- assert_equal 1, result_img
124
- end
125
-
126
- test "Image fitonpage test 2" do
127
- pdf = RBPDF.new
128
- pdf.add_page
129
- img_file = File.join(File.dirname(__FILE__), '..', 'logo_example.png')
130
-
131
- y = 100
132
- w = pdf.get_page_width * 2
133
- h = pdf.get_page_height
134
- result_img = pdf.image(img_file, '', y, w, h, '', '', '', false, 300, '', true, false, 0, false, false, true)
135
-
136
- no = pdf.get_num_pages
137
- assert_equal 1, no
138
- assert_equal 1, result_img
139
- end
140
-
141
- test "HTML Image test without RMagick" do
142
- return if Object.const_defined?(:Magick)
143
-
144
- # no use
145
- # utf8_japanese_aiueo_str = "\xe3\x81\x82\xe3\x81\x84\xe3\x81\x86\xe3\x81\x88\xe3\x81\x8a"
146
-
147
- images = {
148
- 'png_test_msk_alpha.png' => 40.11,
149
- 'png_test_non_alpha.png' => 40.11,
150
- 'logo_rbpdf_8bit.png' => 36.58,
151
- 'logo_rbpdf_8bit .png' => 36.58,
152
- 'logo_rbpdf_8bit+ .png' => 36.58,
153
- # no use
154
- #'logo_rbpdf_8bit_' + utf8_japanese_aiueo_str + '.png' => 36.58,
155
- 'ng.png' => 9.42
156
- }
157
-
158
- pdf = RBPDF.new
159
- images.each {|image, h|
160
- pdf.add_page
161
- img_file = File.join(File.dirname(__FILE__), image)
162
- htmlcontent = '<img src="'+ img_file + '"/>'
163
-
164
- x_org = pdf.get_x
165
- y_org = pdf.get_y
166
- pdf.write_html(htmlcontent, true, 0, true, 0)
167
- x = pdf.get_x
168
- y = pdf.get_y
169
-
170
- assert_equal '[' + image + ']:' + x_org.to_s, '[' + image + ']:' + x.to_s
171
- assert_equal '[' + image + ']:' + (y_org + h).round(2).to_s, '[' + image + ']:' + y.round(2).to_s
172
- }
173
- end
174
- end