rbpdf 1.20.0 → 1.20.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.
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