rbpdf-fruitcake0525 1.19.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (51) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG +96 -0
  3. data/Gemfile +7 -0
  4. data/LICENSE.TXT +504 -0
  5. data/README.md +64 -0
  6. data/Rakefile +12 -0
  7. data/lib/core/rmagick.rb +93 -0
  8. data/lib/htmlcolors.rb +207 -0
  9. data/lib/rbpdf.rb +15138 -0
  10. data/lib/rbpdf/version.rb +3 -0
  11. data/lib/unicode_data.rb +18315 -0
  12. data/logo_example.png +0 -0
  13. data/rbpdf.gemspec +37 -0
  14. data/test/err_font1.rb +3 -0
  15. data/test/err_font2.rb +4 -0
  16. data/test/logo_rbpdf_8bit.gif +0 -0
  17. data/test/logo_rbpdf_8bit.jpg +0 -0
  18. data/test/logo_rbpdf_8bit.png +0 -0
  19. data/test/logo_rbpdf_8bit_alpha.gif +0 -0
  20. data/test/logo_rbpdf_mono_gray.jpg +0 -0
  21. data/test/logo_rbpdf_mono_gray.png +0 -0
  22. data/test/logo_rbpdf_mono_rgb.jpg +0 -0
  23. data/test/logo_rbpdf_mono_rgb.png +0 -0
  24. data/test/png_test_alpha.png +0 -0
  25. data/test/png_test_msk_alpha.png +0 -0
  26. data/test/png_test_non_alpha.png +0 -0
  27. data/test/rbpdf_bidi_test.rb +438 -0
  28. data/test/rbpdf_bookmark_test.rb +56 -0
  29. data/test/rbpdf_cell_test.rb +266 -0
  30. data/test/rbpdf_content_test.rb +196 -0
  31. data/test/rbpdf_css_test.rb +636 -0
  32. data/test/rbpdf_dom_test.rb +338 -0
  33. data/test/rbpdf_font_func_test.rb +41 -0
  34. data/test/rbpdf_font_style_test.rb +33 -0
  35. data/test/rbpdf_font_test.rb +291 -0
  36. data/test/rbpdf_format_test.rb +26 -0
  37. data/test/rbpdf_func_test.rb +135 -0
  38. data/test/rbpdf_html_anchor_test.rb +107 -0
  39. data/test/rbpdf_html_func_test.rb +166 -0
  40. data/test/rbpdf_html_test.rb +580 -0
  41. data/test/rbpdf_htmlcell_test.rb +64 -0
  42. data/test/rbpdf_image_rmagick_test.rb +294 -0
  43. data/test/rbpdf_image_test.rb +107 -0
  44. data/test/rbpdf_test.rb +377 -0
  45. data/test/rbpdf_transaction_test.rb +199 -0
  46. data/test/rbpdf_viewerpreferences_test.rb +37 -0
  47. data/test/rbpdf_write_test.rb +225 -0
  48. data/test/test_helper.rb +4 -0
  49. data/test_unicode.rbpdf +115 -0
  50. data/utf8test.txt +120 -0
  51. metadata +205 -0
@@ -0,0 +1,64 @@
1
+ require 'test_helper'
2
+
3
+ class RbpdfTest < Test::Unit::TestCase
4
+ test "write_html_cell Basic test" do
5
+ pdf = RBPDF.new
6
+ pdf.add_page()
7
+
8
+ htmlcontent = '<p>foo</p>'
9
+ pdf.write_html_cell(0, 5, 10, '', htmlcontent, 0, 1)
10
+
11
+ pno = pdf.get_page
12
+ assert_equal pno, 1
13
+
14
+ y = pdf.get_y
15
+ assert_in_delta 17.3, y, 0.1
16
+
17
+ no = pdf.get_num_pages
18
+ assert_equal no, 1
19
+ end
20
+
21
+ test "write_html_cell Page Break test 1" do
22
+ pdf = RBPDF.new
23
+ pdf.add_page()
24
+
25
+ pdf.set_top_margin(30)
26
+
27
+ h = pdf.get_page_height
28
+ pdf.set_y(h - 15)
29
+
30
+ htmlcontent = '<p>foo</p>'
31
+ pdf.write_html_cell(0, 5, 10, '', htmlcontent, 0, 1)
32
+
33
+ pno = pdf.get_page
34
+ assert_equal pno, 2
35
+
36
+ y = pdf.get_y
37
+ assert_in_delta 40.0, y, 0.1
38
+
39
+ no = pdf.get_num_pages
40
+ assert_equal no, 2
41
+ end
42
+
43
+ test "write_html_cell Page Break test 2" do
44
+ pdf = RBPDF.new
45
+ pdf.add_page()
46
+
47
+ pdf.set_top_margin(30)
48
+
49
+ h = pdf.get_page_height
50
+ pdf.set_y(h - 15)
51
+
52
+ htmlcontent = '<p>foo</p>'
53
+ pdf.write_html_cell(0, 5, 10, '', htmlcontent, "LRBT", 1)
54
+
55
+ pno = pdf.get_page
56
+ assert_equal pno, 2
57
+
58
+ y = pdf.get_y
59
+ assert_in_delta 40.0, y, 0.1
60
+
61
+ no = pdf.get_num_pages
62
+ assert_equal no, 2
63
+ end
64
+ end
@@ -0,0 +1,294 @@
1
+ require 'test_helper'
2
+
3
+ class RbpdfTest < Test::Unit::TestCase
4
+ class MYPDF < RBPDF
5
+ def imageToPNG(file)
6
+ super
7
+ end
8
+ def parsepng(file)
9
+ super
10
+ end
11
+ end
12
+
13
+ test "image getimagesize PNG test" do
14
+ pdf = RBPDF.new
15
+ pdf.add_page
16
+ img_file = File.join(File.dirname(__FILE__), 'logo_rbpdf_8bit.png')
17
+
18
+ info = pdf.getimagesize(img_file)
19
+ pixw = info[0]
20
+ pixh = info[1]
21
+ fileinfo = info[2]
22
+ assert_equal info[0], 240 # width
23
+ assert_equal info[1], 89 # height
24
+ assert_equal info[2], 'PNG' # Image Type
25
+ assert_equal info[3], 'height="89" width="240"'
26
+ assert_equal info['mime'], 'image/png'
27
+ end
28
+
29
+ test "image getimagesize GIF test" do
30
+ return unless Object.const_defined?(:Magick)
31
+
32
+ pdf = RBPDF.new
33
+ pdf.add_page
34
+ img_file = File.join(File.dirname(__FILE__), 'logo_rbpdf_8bit.gif')
35
+
36
+ info = pdf.getimagesize(img_file)
37
+ pixw = info[0]
38
+ pixh = info[1]
39
+ fileinfo = info[2]
40
+ assert_equal info[0], 240 # width
41
+ assert_equal info[1], 89 # height
42
+ assert_equal info[2], 'GIF' # Image Type
43
+ assert_equal info[3], 'height="89" width="240"'
44
+ assert_equal info['mime'], 'image/gif'
45
+ assert_equal info['channels'], 3 # RGB
46
+ assert_equal info['bits'], 8 # depth
47
+ end
48
+
49
+ test "image getimagesize GIF alpha test" do
50
+ return unless Object.const_defined?(:Magick)
51
+
52
+ pdf = RBPDF.new
53
+ pdf.add_page
54
+ img_file = File.join(File.dirname(__FILE__), 'logo_rbpdf_8bit_alpha.gif')
55
+
56
+ info = pdf.getimagesize(img_file)
57
+ pixw = info[0]
58
+ pixh = info[1]
59
+ fileinfo = info[2]
60
+ assert_equal info[0], 240 # width
61
+ assert_equal info[1], 89 # height
62
+ assert_equal info[2], 'GIF' # Image Type
63
+ assert_equal info[3], 'height="89" width="240"'
64
+ assert_equal info['mime'], 'image/gif'
65
+ assert_equal info['channels'], 3 # RGB
66
+ assert_equal info['bits'], 8 # depth
67
+ end
68
+
69
+ test "image getimagesize JPEG RGB test" do
70
+ return unless Object.const_defined?(:Magick)
71
+
72
+ pdf = RBPDF.new
73
+ pdf.add_page
74
+ img_file = File.join(File.dirname(__FILE__), 'logo_rbpdf_8bit.jpg')
75
+
76
+ info = pdf.getimagesize(img_file)
77
+ pixw = info[0]
78
+ pixh = info[1]
79
+ fileinfo = info[2]
80
+ assert_equal info[0], 240 # width
81
+ assert_equal info[1], 89 # height
82
+ assert_equal info[2], 'JPEG' # Image Type
83
+ assert_equal info[3], 'height="89" width="240"'
84
+ assert_equal info['mime'], 'image/jpeg'
85
+ assert_equal info['channels'], 3 # RGB
86
+ assert_equal info['bits'], 8 # depth
87
+ end
88
+
89
+ test "image getimagesize JPEG monotone RGB 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_rgb.jpg')
95
+
96
+ info = pdf.getimagesize(img_file)
97
+ pixw = info[0]
98
+ pixh = info[1]
99
+ fileinfo = info[2]
100
+ assert_equal info[0], 240 # width
101
+ assert_equal info[1], 89 # height
102
+ assert_equal info[2], 'JPEG' # Image Type
103
+ assert_equal info[3], 'height="89" width="240"'
104
+ assert_equal info['mime'], 'image/jpeg'
105
+ assert_equal info['channels'], 3 # RGB
106
+ assert_equal info['bits'], 8 # depth
107
+ end
108
+
109
+ test "image getimagesize JPEG monotone Gray test" do
110
+ return unless Object.const_defined?(:Magick)
111
+
112
+ pdf = RBPDF.new
113
+ pdf.add_page
114
+ img_file = File.join(File.dirname(__FILE__), 'logo_rbpdf_mono_gray.jpg')
115
+
116
+ info = pdf.getimagesize(img_file)
117
+ pixw = info[0]
118
+ pixh = info[1]
119
+ fileinfo = info[2]
120
+ assert_equal info[0], 240 # width
121
+ assert_equal info[1], 89 # height
122
+ assert_equal info[2], 'JPEG' # Image Type
123
+ assert_equal info[3], 'height="89" width="240"'
124
+ assert_equal info['mime'], 'image/jpeg'
125
+ assert_equal info['channels'], 0 # Gray
126
+ assert_equal info['bits'], 8 # depth
127
+ end
128
+
129
+ test "image getimagesize PNG monotone test" do
130
+ pdf = RBPDF.new
131
+ pdf.add_page
132
+ img_file = File.join(File.dirname(__FILE__), 'logo_rbpdf_mono_rgb.png')
133
+
134
+ info = pdf.getimagesize(img_file)
135
+ pixw = info[0]
136
+ pixh = info[1]
137
+ fileinfo = info[2]
138
+ assert_equal info[0], 240 # width
139
+ assert_equal info[1], 89 # height
140
+ assert_equal info[2], 'PNG' # Image Type
141
+ assert_equal info[3], 'height="89" width="240"'
142
+ assert_equal info['mime'], 'image/png'
143
+ end
144
+
145
+ test "imageToPNG delete GIF test" do
146
+ pdf = MYPDF.new
147
+ pdf.add_page
148
+ img_file = File.join(File.dirname(__FILE__), 'logo_rbpdf_8bit.gif')
149
+
150
+ if Object.const_defined?(:Magick)
151
+ tempfile = pdf.imageToPNG(img_file)
152
+ assert_not_equal tempfile, false
153
+
154
+ info = pdf.parsepng(tempfile.path)
155
+
156
+ assert_not_equal info, 'pngalpha'
157
+ assert_equal info['bpc'], 8
158
+ assert_equal info['cs'], 'Indexed'
159
+ end
160
+ end
161
+
162
+ test "imageToPNG delete GIF alpha channel test" do
163
+ pdf = MYPDF.new
164
+ pdf.add_page
165
+ img_file = File.join(File.dirname(__FILE__), 'logo_rbpdf_8bit_alpha.gif')
166
+
167
+ if Object.const_defined?(:Magick)
168
+ tempfile = pdf.imageToPNG(img_file)
169
+ assert_not_equal tempfile, false
170
+
171
+ info = pdf.parsepng(tempfile.path)
172
+
173
+ assert_not_equal info, 'pngalpha'
174
+ assert_equal info['bpc'], 8
175
+ assert_equal info['cs'], 'Indexed'
176
+ end
177
+ end
178
+
179
+ test "imageToPNG delete PNG alpha channel test" do
180
+ pdf = MYPDF.new
181
+ pdf.add_page
182
+ img_file = File.join(File.dirname(__FILE__), 'png_test_alpha.png')
183
+
184
+ if Object.const_defined?(:Magick)
185
+ tempfile = pdf.imageToPNG(img_file)
186
+ assert_not_equal tempfile, false
187
+
188
+ info = pdf.parsepng(tempfile.path)
189
+
190
+ assert_not_equal info, 'pngalpha'
191
+ assert_equal info['bpc'], 8
192
+ assert_equal info['cs'], 'DeviceRGB'
193
+ end
194
+ end
195
+
196
+ test "image_alpha_mask DeviceGray test" do
197
+ pdf = MYPDF.new
198
+ pdf.add_page
199
+ img_file = File.join(File.dirname(__FILE__), 'png_test_alpha.png')
200
+
201
+ if Object.const_defined?(:Magick)
202
+ tempfile = pdf.image_alpha_mask(img_file)
203
+
204
+ info = pdf.parsepng(tempfile.path)
205
+
206
+ assert_not_equal info, 'pngalpha'
207
+ assert_equal info['bpc'], 8
208
+ assert_equal info['cs'], 'DeviceGray'
209
+ end
210
+ end
211
+
212
+ test "Image PNG test" do
213
+ pdf = RBPDF.new
214
+ pdf.add_page
215
+ img_file = File.join(File.dirname(__FILE__), 'logo_rbpdf_8bit.png')
216
+ info = pdf.image(img_file, 10, 10, 100, '', '', 'https://rubygems.org/gems/rbpdf', '', false, 300)
217
+ assert_equal info, 1
218
+ end
219
+
220
+ test "Image PNG alpha test" do
221
+ return unless Object.const_defined?(:Magick)
222
+
223
+ pdf = RBPDF.new
224
+ pdf.add_page
225
+ img_file = File.join(File.dirname(__FILE__), 'png_test_alpha.png')
226
+ info = pdf.image(img_file, 10, 10, 100, '', '', 'https://rubygems.org/gems/rbpdf', '', false, 300)
227
+ assert_equal info, true
228
+ end
229
+
230
+ test "Image GIF test" do
231
+ return unless Object.const_defined?(:Magick)
232
+
233
+ pdf = RBPDF.new
234
+ pdf.add_page
235
+ img_file = File.join(File.dirname(__FILE__), 'logo_rbpdf_8bit.gif')
236
+ info = pdf.image(img_file, 10, 10, 100, '', '', 'https://rubygems.org/gems/rbpdf', '', false, 300)
237
+ assert_equal info, 1
238
+ end
239
+
240
+ test "Image GIF alpha test" do
241
+ return unless Object.const_defined?(:Magick)
242
+
243
+ pdf = RBPDF.new
244
+ pdf.add_page
245
+ img_file = File.join(File.dirname(__FILE__), 'logo_rbpdf_8bit_alpha.gif')
246
+ info = pdf.image(img_file, 10, 10, 100, '', '', 'https://rubygems.org/gems/rbpdf', '', false, 300)
247
+ assert_equal info, 1
248
+ end
249
+
250
+ test "Image JPEG test" do
251
+ return unless Object.const_defined?(:Magick)
252
+
253
+ pdf = RBPDF.new
254
+ pdf.add_page
255
+ img_file = File.join(File.dirname(__FILE__), 'logo_rbpdf_8bit.jpg')
256
+ info = pdf.image(img_file, 10, 10, 100, '', '', 'https://rubygems.org/gems/rbpdf', '', false, 300)
257
+ assert_equal info, 1
258
+ end
259
+
260
+ test "HTML Image test" do
261
+ return unless Object.const_defined?(:Magick)
262
+
263
+ images = {
264
+ 'png_test_alpha.png' => 40.11,
265
+ 'png_test_msk_alpha.png' => 40.11,
266
+ 'png_test_non_alpha.png' => 40.11,
267
+ 'logo_rbpdf_8bit.png' => 36.58,
268
+ 'logo_rbpdf_8bit.gif' => 36.58,
269
+ 'logo_rbpdf_8bit_alpha.gif' => 36.58,
270
+ 'logo_rbpdf_8bit.jpg' => 36.58,
271
+ 'logo_rbpdf_mono_gray.jpg' => 36.58,
272
+ 'logo_rbpdf_mono_gray.png' => 36.58,
273
+ 'logo_rbpdf_mono_rgb.jpg' => 36.58,
274
+ 'logo_rbpdf_mono_rgb.png' => 36.58,
275
+ 'ng.png' => 9.42
276
+ }
277
+
278
+ pdf = RBPDF.new
279
+ images.each {|image, h|
280
+ pdf.add_page
281
+ img_file = File.join(File.dirname(__FILE__), image)
282
+ htmlcontent = '<img src="'+ img_file + '"/>'
283
+
284
+ x_org = pdf.get_x
285
+ y_org = pdf.get_y
286
+ pdf.write_html(htmlcontent, true, 0, true, 0)
287
+ x = pdf.get_x
288
+ y = pdf.get_y
289
+
290
+ assert_equal '[' + image + ']:' + x_org.to_s, '[' + image + ']:' + x.to_s
291
+ assert_equal '[' + image + ']:' + (y_org + h).round(2).to_s, '[' + image + ']:' + y.round(2).to_s
292
+ }
293
+ end
294
+ end
@@ -0,0 +1,107 @@
1
+ require 'test_helper'
2
+
3
+ class RbpdfTest < Test::Unit::TestCase
4
+ test "Image basic func extension test" do
5
+ pdf = RBPDF.new
6
+
7
+ type = pdf.get_image_file_type("/tmp/rbpdf_logo.gif")
8
+ assert_equal type, "gif"
9
+
10
+ type = pdf.get_image_file_type("/tmp/rbpdf_logo.PNG")
11
+ assert_equal type, "png"
12
+
13
+ type = pdf.get_image_file_type("/tmp/rbpdf_logo.jpg")
14
+ assert_equal type, "jpeg"
15
+
16
+ type = pdf.get_image_file_type("/tmp/rbpdf_logo.jpeg")
17
+ assert_equal type, "jpeg"
18
+
19
+ type = pdf.get_image_file_type("/tmp/rbpdf_logo")
20
+ assert_equal type, ""
21
+
22
+ type = pdf.get_image_file_type("")
23
+ assert_equal type, ""
24
+
25
+ type = pdf.get_image_file_type(nil)
26
+ assert_equal type, ""
27
+ end
28
+
29
+ test "Image basic func mime type test" do
30
+ pdf = RBPDF.new
31
+
32
+ type = pdf.get_image_file_type(nil, {})
33
+ assert_equal type, ''
34
+
35
+ type = pdf.get_image_file_type(nil, {'mime' => 'image/gif'})
36
+ assert_equal type, 'gif'
37
+
38
+ type = pdf.get_image_file_type(nil, {'mime' => 'image/jpeg'})
39
+ assert_equal type, 'jpeg'
40
+
41
+ type = pdf.get_image_file_type('/tmp/rbpdf_logo.gif', {'mime' => 'image/png'})
42
+ assert_equal type, 'png'
43
+
44
+ type = pdf.get_image_file_type('/tmp/rbpdf_logo.gif', {})
45
+ assert_equal type, 'gif'
46
+
47
+ type = pdf.get_image_file_type(nil, {'mime' => 'text/html'})
48
+ assert_equal type, ''
49
+
50
+ type = pdf.get_image_file_type(nil, [])
51
+ assert_equal type, ''
52
+ end
53
+
54
+ test "Image basic filename test" do
55
+ pdf = RBPDF.new
56
+ err = assert_raises(RuntimeError) {
57
+ pdf.image(nil)
58
+ }
59
+ assert_equal( err.message, 'RBPDF error: Image filename is empty.')
60
+
61
+ err = assert_raises(RuntimeError) {
62
+ pdf.image('')
63
+ }
64
+ assert_equal( err.message, 'RBPDF error: Image filename is empty.')
65
+
66
+ err = assert_raises(RuntimeError) {
67
+ pdf.image('foo.png')
68
+ }
69
+ assert_equal( err.message, 'RBPDF error: Missing image file: foo.png')
70
+ end
71
+
72
+ test "Image basic test" do
73
+ pdf = RBPDF.new
74
+ pdf.add_page
75
+ img_file = File.join(File.dirname(__FILE__), '..', 'logo_example.png')
76
+
77
+ result_img = pdf.image(img_file, 50, 0, 0, '', '', '', '', false, 300, '', true)
78
+
79
+ no = pdf.get_num_pages
80
+ assert_equal no, 1
81
+ end
82
+
83
+ test "Image fitonpage test 1" do
84
+ pdf = RBPDF.new
85
+ pdf.add_page
86
+ img_file = File.join(File.dirname(__FILE__), '..', 'logo_example.png')
87
+
88
+ result_img = pdf.image(img_file, 50, 140, 100, '', '', '', '', false, 300, '', true, false, 0, false, false, true)
89
+
90
+ no = pdf.get_num_pages
91
+ assert_equal no, 1
92
+ end
93
+
94
+ test "Image fitonpage test 2" do
95
+ pdf = RBPDF.new
96
+ pdf.add_page
97
+ img_file = File.join(File.dirname(__FILE__), '..', 'logo_example.png')
98
+
99
+ y = 100
100
+ w = pdf.get_page_width * 2
101
+ h = pdf.get_page_height
102
+ result_img = pdf.image(img_file, '', y, w, h, '', '', '', false, 300, '', true, false, 0, false, false, true)
103
+
104
+ no = pdf.get_num_pages
105
+ assert_equal no, 1
106
+ end
107
+ end