rbpdf 1.19.0 → 1.19.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (44) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +10 -0
  3. data/Gemfile +4 -0
  4. data/MIT-LICENSE +20 -0
  5. data/README.md +16 -0
  6. data/Rakefile +4 -0
  7. data/lib/core/rmagick.rb +1 -1
  8. data/lib/rbpdf.rb +82 -47
  9. data/lib/rbpdf/version.rb +5 -1
  10. data/lib/rbpdf_encode_ok.rb +15170 -0
  11. data/lib/rbpdf_encode_ok2.rb +15178 -0
  12. data/lib/unicode_data.rb +18 -1
  13. data/rbpdf.gemspec +21 -5
  14. data/test/_rbpdf_image_test.rb_ +161 -0
  15. data/test/err_font1.rb +4 -0
  16. data/test/err_font2.rb +4 -0
  17. data/test/logo_rbpdf_8bit .png +0 -0
  18. data/test/logo_rbpdf_8bit+ .png +0 -0
  19. data/test/logo_rbpdf_8bit_/343/201/202/343/201/204/343/201/206/343/201/210/343/201/212.png +0 -0
  20. data/test/rbpdf_bidi_test.rb +76 -71
  21. data/test/rbpdf_bookmark_test.rb +38 -28
  22. data/test/rbpdf_cell_test.rb +120 -40
  23. data/test/rbpdf_content_test.rb +62 -45
  24. data/test/rbpdf_css_test.rb +275 -271
  25. data/test/rbpdf_dom_test.rb +123 -113
  26. data/test/rbpdf_font_func_test.rb +6 -2
  27. data/test/rbpdf_font_style_test.rb +7 -3
  28. data/test/rbpdf_font_test.rb +44 -27
  29. data/test/rbpdf_format_test.rb +15 -11
  30. data/test/rbpdf_func_test.rb +26 -22
  31. data/test/rbpdf_html_anchor_test.rb +11 -13
  32. data/test/rbpdf_html_func_test.rb +34 -30
  33. data/test/rbpdf_html_test.rb +58 -5
  34. data/test/rbpdf_htmlcell_test.rb +10 -6
  35. data/test/rbpdf_http_test.rb +67 -0
  36. data/test/rbpdf_image_rmagick_test.rb +70 -87
  37. data/test/rbpdf_image_test.rb +86 -22
  38. data/test/rbpdf_test.rb +88 -90
  39. data/test/rbpdf_transaction_test.rb +4 -0
  40. data/test/rbpdf_viewerpreferences_test.rb +5 -1
  41. data/test/rbpdf_write_test.rb +49 -45
  42. data/test/test_helper.rb +5 -0
  43. data/test_unicode.rbpdf +4 -0
  44. metadata +22 -9
@@ -1,3 +1,7 @@
1
+ # Copyright (c) 2011-2017 NAITOH Jun
2
+ # Released under the MIT license
3
+ # http://www.opensource.org/licenses/MIT
4
+
1
5
  require 'test_helper'
2
6
 
3
7
  class RbpdfTest < Test::Unit::TestCase
@@ -18,104 +22,110 @@ class RbpdfTest < Test::Unit::TestCase
18
22
 
19
23
  # Simple Text
20
24
  dom = pdf.getHtmlDomArray('abc')
21
- assert_equal 0, dom[0]['parent'] # Root
25
+ assert_equal 0, dom[0]['parent'] # Root
22
26
  assert_equal false, dom[0]['tag']
23
27
  assert_equal({'tag'=>false, 'value'=>'abc', 'elkey'=>0, 'parent'=>0, 'block'=>false}, dom[1])
24
28
 
29
+ # Back Slash Text
30
+ dom = pdf.getHtmlDomArray("a\\bc")
31
+ assert_equal 0, dom[0]['parent'] # Root
32
+ assert_equal false, dom[0]['tag']
33
+ assert_equal({'tag'=>false, 'value'=>"a\\bc", 'elkey'=>0, 'parent'=>0, 'block'=>false}, dom[1])
34
+
25
35
  # Simple Tag
26
36
  dom = pdf.getHtmlDomArray('<b>abc</b>')
27
- assert_equal dom.length, 4
37
+ assert_equal 4, dom.length
28
38
 
29
- assert_equal 0, dom[0]['parent'] # Root
39
+ assert_equal 0, dom[0]['parent'] # Root
30
40
  assert_equal false, dom[0]['tag']
31
- assert_equal({}, dom[0]['attribute'])
41
+ assert_equal({}, dom[0]['attribute'])
32
42
 
33
- assert_equal dom[1]['parent'], 0 # parent -> parent tag key
34
- assert_equal dom[1]['elkey'], 0
35
- assert_equal dom[1]['tag'], true
36
- assert_equal dom[1]['opening'], true
37
- assert_equal dom[1]['value'], 'b'
38
- assert_equal dom[1]['attribute'], {}
43
+ assert_equal 0, dom[1]['parent'] # parent -> parent tag key
44
+ assert_equal 0, dom[1]['elkey']
45
+ assert_equal true, dom[1]['tag']
46
+ assert_equal true, dom[1]['opening']
47
+ assert_equal 'b', dom[1]['value']
48
+ assert_equal({}, dom[1]['attribute'])
39
49
 
40
50
  assert_equal({'tag' => false, 'value'=>'abc', 'elkey'=>1, 'parent'=>1, 'block'=>false}, dom[2]) # parent -> open tag key
41
51
 
42
- assert_equal dom[3]['parent'], 1 # parent -> open tag key
43
- assert_equal dom[3]['elkey'], 2
44
- assert_equal dom[3]['tag'], true
45
- assert_equal dom[3]['opening'], false
46
- assert_equal dom[3]['value'], 'b'
52
+ assert_equal 1, dom[3]['parent'] # parent -> open tag key
53
+ assert_equal 2, dom[3]['elkey']
54
+ assert_equal true, dom[3]['tag']
55
+ assert_equal false, dom[3]['opening']
56
+ assert_equal 'b', dom[3]['value']
47
57
 
48
58
  # Error Tag (doble colse tag)
49
59
  dom = pdf.getHtmlDomArray('</ul></div>')
50
60
 
51
- assert_equal 0, dom[0]['parent'] # Root
61
+ assert_equal 0, dom[0]['parent'] # Root
52
62
  assert_equal false, dom[0]['tag']
53
- assert_equal({}, dom[0]['attribute'])
63
+ assert_equal({}, dom[0]['attribute'])
54
64
 
55
65
  if dom.length == 3 # for Rails 3.x/4.0/4.1 (no use Rails 4.2 later)
56
- assert_equal dom[1]['parent'], 0 # parent -> Root key
57
- assert_equal dom[1]['elkey'], 0
58
- assert_equal dom[1]['tag'], true
59
- assert_equal dom[1]['opening'], false
60
- assert_equal dom[1]['value'], 'ul'
61
-
62
- assert_equal dom[2]['parent'], 0 # parent -> Root key
63
- assert_equal dom[2]['elkey'], 1
64
- assert_equal dom[2]['tag'], true
65
- assert_equal dom[2]['opening'], false
66
- assert_equal dom[2]['value'], 'div'
66
+ assert_equal 0, dom[1]['parent'] # parent -> Root key
67
+ assert_equal 0, dom[1]['elkey']
68
+ assert_equal true, dom[1]['tag']
69
+ assert_equal false, dom[1]['opening']
70
+ assert_equal 'ul', dom[1]['value']
71
+
72
+ assert_equal 0, dom[2]['parent'] # parent -> Root key
73
+ assert_equal 1, dom[2]['elkey']
74
+ assert_equal true, dom[2]['tag']
75
+ assert_equal false, dom[2]['opening']
76
+ assert_equal 'div', dom[2]['value']
67
77
  end
68
78
 
69
79
  # Attribute
70
80
  dom = pdf.getHtmlDomArray('<p style="text-align:justify">abc</p>')
71
- assert_equal dom.length, 4
81
+ assert_equal 4, dom.length
72
82
 
73
- assert_equal 0, dom[0]['parent'] # Root
83
+ assert_equal 0, dom[0]['parent'] # Root
74
84
  assert_equal false, dom[0]['tag']
75
- assert_equal({}, dom[0]['attribute'])
85
+ assert_equal({}, dom[0]['attribute'])
76
86
 
77
- assert_equal dom[1]['parent'], 0 # parent -> parent tag key
78
- assert_equal dom[1]['elkey'], 0
79
- assert_equal dom[1]['tag'], true
80
- assert_equal dom[1]['opening'], true
81
- assert_equal dom[1]['value'], 'p'
87
+ assert_equal 0, dom[1]['parent'] # parent -> parent tag key
88
+ assert_equal 0, dom[1]['elkey']
89
+ assert_equal true, dom[1]['tag']
90
+ assert_equal true, dom[1]['opening']
91
+ assert_equal 'p', dom[1]['value']
82
92
  assert_not_nil dom[1]['attribute']
83
- assert_equal dom[1]['attribute']['style'].gsub(' ', ''), 'text-align:justify;'
84
- assert_equal dom[1]['align'], 'J'
93
+ assert_equal 'text-align:justify;', dom[1]['attribute']['style'].gsub(' ', '')
94
+ assert_equal 'J', dom[1]['align']
85
95
 
86
96
  # Table border
87
97
  dom = pdf.getHtmlDomArray('<table border="1"><tr><td>abc</td></tr></table>')
88
98
  ## added marker tag (by getHtmlDomArray()) ##
89
99
  # '<table border="1"><tr><td>abc<marker style="font-size:0"/></td></tr></table>'
90
- assert_equal dom.length, 9
100
+ assert_equal 9, dom.length
91
101
 
92
- assert_equal dom[1]['parent'], 0 # parent -> parent tag key
93
- assert_equal dom[1]['elkey'], 0
94
- assert_equal dom[1]['tag'], true
95
- assert_equal dom[1]['opening'], true
96
- assert_equal dom[1]['value'], 'table'
97
- assert_equal dom[1]['attribute']['border'], '1'
102
+ assert_equal 0, dom[1]['parent'] # parent -> parent tag key
103
+ assert_equal 0, dom[1]['elkey']
104
+ assert_equal true, dom[1]['tag']
105
+ assert_equal true, dom[1]['opening']
106
+ assert_equal 'table', dom[1]['value']
107
+ assert_equal '1', dom[1]['attribute']['border']
98
108
 
99
109
  ## marker tag (by getHtmlDomArray())
100
- assert_equal dom[5]['parent'], 3 # parent -> parent tag key
101
- assert_equal dom[5]['elkey'], 4
102
- assert_equal dom[5]['tag'], true
103
- assert_equal dom[5]['opening'], true
104
- assert_equal dom[5]['value'], 'marker'
105
- assert_equal dom[5]['attribute']['style'], 'font-size:0'
110
+ assert_equal 3, dom[5]['parent'] # parent -> parent tag key
111
+ assert_equal 4, dom[5]['elkey']
112
+ assert_equal true, dom[5]['tag']
113
+ assert_equal true, dom[5]['opening']
114
+ assert_equal 'marker', dom[5]['value']
115
+ assert_equal 'font-size:0', dom[5]['attribute']['style']
106
116
 
107
117
  # Table td Width
108
118
  dom = pdf.getHtmlDomArray('<table><tr><td width="10">abc</td></tr></table>')
109
119
  ## added marker tag (by getHtmlDomArray()) ##
110
120
  # '<table><tr><td width="10">abc<marker style="font-size:0"/></td></tr></table>'
111
- assert_equal dom.length, 9
112
-
113
- assert_equal dom[3]['parent'], 2 # parent -> parent tag key
114
- assert_equal dom[3]['elkey'], 2
115
- assert_equal dom[3]['tag'], true
116
- assert_equal dom[3]['opening'], true
117
- assert_equal dom[3]['value'], 'td'
118
- assert_equal dom[3]['width'], '10'
121
+ assert_equal 9, dom.length
122
+
123
+ assert_equal 2, dom[3]['parent'] # parent -> parent tag key
124
+ assert_equal 2, dom[3]['elkey']
125
+ assert_equal true, dom[3]['tag']
126
+ assert_equal true, dom[3]['opening']
127
+ assert_equal 'td', dom[3]['value']
128
+ assert_equal '10', dom[3]['width']
119
129
  end
120
130
 
121
131
  test "Dom self close tag test" do
@@ -123,40 +133,40 @@ class RbpdfTest < Test::Unit::TestCase
123
133
 
124
134
  # Simple Tag
125
135
  dom = pdf.getHtmlDomArray('<b>ab<br>c</b>')
126
- assert_equal dom.length, 6
136
+ assert_equal 6, dom.length
127
137
 
128
- assert_equal 0, dom[0]['parent'] # Root
138
+ assert_equal 0, dom[0]['parent'] # Root
129
139
  assert_equal false, dom[0]['tag']
130
- assert_equal({}, dom[0]['attribute'])
140
+ assert_equal({}, dom[0]['attribute'])
131
141
 
132
142
  # <b>
133
- assert_equal dom[1]['parent'], 0 # parent -> parent tag key
134
- assert_equal dom[1]['elkey'], 0
135
- assert_equal dom[1]['tag'], true
136
- assert_equal dom[1]['opening'], true
137
- assert_equal dom[1]['value'], 'b'
138
- assert_equal dom[1]['attribute'], {}
143
+ assert_equal 0, dom[1]['parent'] # parent -> parent tag key
144
+ assert_equal 0, dom[1]['elkey']
145
+ assert_equal true, dom[1]['tag']
146
+ assert_equal true, dom[1]['opening']
147
+ assert_equal 'b', dom[1]['value']
148
+ assert_equal({}, dom[1]['attribute'])
139
149
 
140
150
  # ab
141
151
  assert_equal({'tag' => false, 'value'=>'ab', 'elkey'=>1, 'parent'=>1, 'block'=>false}, dom[2]) # parent -> open tag key
142
152
 
143
153
  # <br>
144
- assert_equal dom[3]['parent'], 1 # parent -> open tag key
145
- assert_equal dom[3]['elkey'], 2
146
- assert_equal dom[3]['tag'], true
147
- assert_equal dom[3]['opening'], true
148
- assert_equal dom[3]['value'], 'br'
149
- assert_equal dom[3]['attribute'], {}
154
+ assert_equal 1, dom[3]['parent'] # parent -> open tag key
155
+ assert_equal 2, dom[3]['elkey']
156
+ assert_equal true, dom[3]['tag']
157
+ assert_equal true, dom[3]['opening']
158
+ assert_equal 'br', dom[3]['value']
159
+ assert_equal({}, dom[3]['attribute'])
150
160
 
151
161
  # c
152
162
  assert_equal({'tag' => false, 'value'=>'c', 'elkey'=>3, 'parent'=>1, 'block'=>false}, dom[4]) # parent -> open tag key
153
163
 
154
164
  # </b>
155
- assert_equal dom[5]['parent'], 1 # parent -> open tag key
156
- assert_equal dom[5]['elkey'], 4
157
- assert_equal dom[5]['tag'], true
158
- assert_equal dom[5]['opening'], false
159
- assert_equal dom[5]['value'], 'b'
165
+ assert_equal 1, dom[5]['parent'] # parent -> open tag key
166
+ assert_equal 4, dom[5]['elkey']
167
+ assert_equal true, dom[5]['tag']
168
+ assert_equal false, dom[5]['opening']
169
+ assert_equal 'b', dom[5]['value']
160
170
 
161
171
  dom2 = pdf.getHtmlDomArray('<b>ab<br/>c</b>')
162
172
  assert_equal dom, dom2
@@ -187,83 +197,83 @@ class RbpdfTest < Test::Unit::TestCase
187
197
  pdf = MYPDF.new
188
198
  pdf.add_page
189
199
  temprtl = pdf.get_temp_rtl
190
- assert_equal temprtl, false
200
+ assert_equal false, temprtl
191
201
 
192
202
  # LTR, ltr
193
203
  htmlcontent = '<p dir="ltr">HTML Example</p>'
194
204
  dom = pdf.getHtmlDomArray(htmlcontent)
195
205
  dom = pdf.openHTMLTagHandler(dom, 1, false)
196
206
 
197
- assert_equal dom[1]['tag'], true
198
- assert_equal dom[1]['opening'], true
199
- assert_equal dom[1]['value'], 'p'
200
- assert_equal dom[1]['attribute']['dir'], 'ltr'
207
+ assert_equal true, dom[1]['tag']
208
+ assert_equal true, dom[1]['opening']
209
+ assert_equal 'p', dom[1]['value']
210
+ assert_equal 'ltr', dom[1]['attribute']['dir']
201
211
 
202
212
  temprtl = pdf.get_temp_rtl
203
- assert_equal temprtl, false
213
+ assert_equal false, temprtl
204
214
 
205
215
  # LTR, rtl
206
216
  htmlcontent = '<p dir="rtl">HTML Example</p>'
207
217
  dom = pdf.getHtmlDomArray(htmlcontent)
208
218
  dom = pdf.openHTMLTagHandler(dom, 1, false)
209
- assert_equal dom.length, 4
219
+ assert_equal 4, dom.length
210
220
 
211
- assert_equal dom[1]['tag'], true
212
- assert_equal dom[1]['opening'], true
213
- assert_equal dom[1]['value'], 'p'
214
- assert_equal dom[1]['attribute']['dir'], 'rtl'
221
+ assert_equal true, dom[1]['tag']
222
+ assert_equal true, dom[1]['opening']
223
+ assert_equal 'p', dom[1]['value']
224
+ assert_equal 'rtl', dom[1]['attribute']['dir']
215
225
 
216
226
  temprtl = pdf.get_temp_rtl
217
- assert_equal temprtl, 'R'
227
+ assert_equal 'R', temprtl
218
228
 
219
229
  # LTR, ltr
220
230
  htmlcontent = '<p dir="ltr">HTML Example</p>'
221
231
  dom = pdf.getHtmlDomArray(htmlcontent)
222
232
  dom = pdf.openHTMLTagHandler(dom, 1, false)
223
233
 
224
- assert_equal dom[1]['tag'], true
225
- assert_equal dom[1]['opening'], true
226
- assert_equal dom[1]['value'], 'p'
227
- assert_equal dom[1]['attribute']['dir'], 'ltr'
234
+ assert_equal true, dom[1]['tag']
235
+ assert_equal true, dom[1]['opening']
236
+ assert_equal 'p', dom[1]['value']
237
+ assert_equal 'ltr', dom[1]['attribute']['dir']
228
238
 
229
239
  temprtl = pdf.get_temp_rtl
230
- assert_equal temprtl, false
240
+ assert_equal false, temprtl
231
241
  end
232
242
 
233
243
  test "Dom HTMLTagHandler DIR LTR test" do
234
244
  pdf = MYPDF.new
235
245
  pdf.add_page
236
246
  temprtl = pdf.get_temp_rtl
237
- assert_equal temprtl, false
247
+ assert_equal false, temprtl
238
248
  pdf.set_rtl(true)
239
249
 
240
250
  # RTL, ltr
241
251
  htmlcontent = '<p dir="ltr">HTML Example</p>'
242
252
  dom = pdf.getHtmlDomArray(htmlcontent)
243
253
  dom = pdf.openHTMLTagHandler(dom, 1, false)
244
- assert_equal dom.length, 4
254
+ assert_equal 4, dom.length
245
255
 
246
- assert_equal dom[1]['tag'], true
247
- assert_equal dom[1]['opening'], true
248
- assert_equal dom[1]['value'], 'p'
249
- assert_equal dom[1]['attribute']['dir'], 'ltr'
256
+ assert_equal true, dom[1]['tag']
257
+ assert_equal true, dom[1]['opening']
258
+ assert_equal 'p', dom[1]['value']
259
+ assert_equal 'ltr', dom[1]['attribute']['dir']
250
260
 
251
261
  temprtl = pdf.get_temp_rtl
252
- assert_equal temprtl, 'L'
262
+ assert_equal 'L', temprtl
253
263
 
254
264
  # RTL, rtl
255
265
  htmlcontent = '<p dir="rtl">HTML Example</p>'
256
266
  dom = pdf.getHtmlDomArray(htmlcontent)
257
267
  dom = pdf.openHTMLTagHandler(dom, 1, false)
258
- assert_equal dom.length, 4
268
+ assert_equal 4, dom.length
259
269
 
260
- assert_equal dom[1]['tag'], true
261
- assert_equal dom[1]['opening'], true
262
- assert_equal dom[1]['value'], 'p'
263
- assert_equal dom[1]['attribute']['dir'], 'rtl'
270
+ assert_equal true, dom[1]['tag']
271
+ assert_equal true, dom[1]['opening']
272
+ assert_equal 'p', dom[1]['value']
273
+ assert_equal 'rtl', dom[1]['attribute']['dir']
264
274
 
265
275
  temprtl = pdf.get_temp_rtl
266
- assert_equal temprtl, false
276
+ assert_equal false, temprtl
267
277
  end
268
278
 
269
279
  test "Dom HTMLTagHandler img y position with height attribute test" do
@@ -273,7 +283,7 @@ class RbpdfTest < Test::Unit::TestCase
273
283
  # Image Error HTML
274
284
  htmlcontent = '<img src="/public/ng.png" alt="test alt attribute" width="30" height="30" border="0"/>'
275
285
  dom1 = pdf.getHtmlDomArray(htmlcontent)
276
- y1 = pdf.get_y
286
+ #y1 = pdf.get_y
277
287
 
278
288
  dom2 = pdf.openHTMLTagHandler(dom1, 1, false)
279
289
  y2 = pdf.get_y
@@ -302,7 +312,7 @@ class RbpdfTest < Test::Unit::TestCase
302
312
 
303
313
  htmlcontent = "<p>AAA '<'-BBB << <<< '</' '<//' '<///' CCC.</p>"
304
314
  dom = pdf.getHtmlDomArray(htmlcontent)
305
- assert_equal dom.length, 4
315
+ assert_equal 4, dom.length
306
316
 
307
317
  assert_equal 0, dom[0]['parent'] # Root
308
318
  assert_equal false, dom[0]['tag']
@@ -332,7 +342,7 @@ class RbpdfTest < Test::Unit::TestCase
332
342
 
333
343
  pdf = MYPDF.new('P', 'mm', 'A4', true, "UTF-8", true)
334
344
  htmlcontent = 'test'.force_encoding('ASCII-8BIT')
335
- dom = pdf.getHtmlDomArray(htmlcontent)
336
- assert_equal htmlcontent.encoding.to_s, 'ASCII-8BIT'
345
+ pdf.getHtmlDomArray(htmlcontent)
346
+ assert_equal 'ASCII-8BIT', htmlcontent.encoding.to_s
337
347
  end
338
348
  end
@@ -1,3 +1,7 @@
1
+ # Copyright (c) 2011-2017 NAITOH Jun
2
+ # Released under the MIT license
3
+ # http://www.opensource.org/licenses/MIT
4
+
1
5
  require 'test_helper'
2
6
 
3
7
  class RbpdfFontFuncTest < Test::Unit::TestCase
@@ -34,8 +38,8 @@ class RbpdfFontFuncTest < Test::Unit::TestCase
34
38
  pdf = MYPDF.new
35
39
 
36
40
  apxo_obj_id = pdf.putAPXObject
37
- assert_equal apxo_obj_id, 400001
41
+ assert_equal 400001, apxo_obj_id
38
42
  apxo_obj_id = pdf.putAPXObject
39
- assert_equal apxo_obj_id, 400002
43
+ assert_equal 400002, apxo_obj_id
40
44
  end
41
45
  end
@@ -1,3 +1,7 @@
1
+ # Copyright (c) 2011-2017 NAITOH Jun
2
+ # Released under the MIT license
3
+ # http://www.opensource.org/licenses/MIT
4
+
1
5
  require 'test_helper'
2
6
 
3
7
  class RbpdfFontStyleTest < Test::Unit::TestCase
@@ -16,18 +20,18 @@ class RbpdfFontStyleTest < Test::Unit::TestCase
16
20
  test "Font dounderline function test 1" do
17
21
  pdf = MYPDF.new
18
22
  line = pdf.dounderline(10, 10, "test")
19
- assert_equal line, '28.35 812.94 19.34 -0.60 re f'
23
+ assert_equal '28.35 812.94 19.34 -0.60 re f', line
20
24
  end
21
25
 
22
26
  test "Font dolinethrough function test 1" do
23
27
  pdf = MYPDF.new
24
28
  line = pdf.dolinethrough(10, 10, "test")
25
- assert_equal line, '28.35 816.94 19.34 -0.60 re f'
29
+ assert_equal '28.35 816.94 19.34 -0.60 re f', line
26
30
  end
27
31
 
28
32
  test "Font dooverline function test 1" do
29
33
  pdf = MYPDF.new
30
34
  line = pdf.dooverline(10, 10, "test")
31
- assert_equal line, '28.35 824.34 19.34 -0.60 re f'
35
+ assert_equal '28.35 824.34 19.34 -0.60 re f', line
32
36
  end
33
37
  end
@@ -1,3 +1,7 @@
1
+ # Copyright (c) 2011-2017 NAITOH Jun
2
+ # Released under the MIT license
3
+ # http://www.opensource.org/licenses/MIT
4
+
1
5
  require 'test_helper'
2
6
 
3
7
  class RbpdfFontTest < Test::Unit::TestCase
@@ -49,17 +53,17 @@ class RbpdfFontTest < Test::Unit::TestCase
49
53
  pdf.set_font('helvetica', 'BI', 18)
50
54
 
51
55
  font = pdf.getFontBuffer('helvetica')
52
- assert_equal font['name'], 'Helvetica'
53
- assert_equal font['dw'], 556
56
+ assert_equal 'Helvetica', font['name']
57
+ assert_equal 556, font['dw']
54
58
  font = pdf.getFontBuffer('helveticaB')
55
- assert_equal font['name'], 'Helvetica-Bold'
56
- assert_equal font['dw'], 556
59
+ assert_equal 'Helvetica-Bold', font['name']
60
+ assert_equal 556, font['dw']
57
61
  font = pdf.getFontBuffer('helveticaI')
58
- assert_equal font['name'], 'Helvetica-Oblique'
59
- assert_equal font['dw'], 556
62
+ assert_equal 'Helvetica-Oblique', font['name']
63
+ assert_equal 556, font['dw']
60
64
  font = pdf.getFontBuffer('helveticaBI')
61
- assert_equal font['name'], 'Helvetica-BoldOblique'
62
- assert_equal font['dw'], 556
65
+ assert_equal 'Helvetica-BoldOblique', font['name']
66
+ assert_equal 556, font['dw']
63
67
 
64
68
  pdf.set_font('times', '', 18)
65
69
  pdf.set_font('times', 'B', 18)
@@ -67,13 +71,13 @@ class RbpdfFontTest < Test::Unit::TestCase
67
71
  pdf.set_font('times', 'BI', 18)
68
72
 
69
73
  font = pdf.getFontBuffer('times')
70
- assert_equal font['name'], 'Times-Roman'
74
+ assert_equal 'Times-Roman', font['name']
71
75
  font = pdf.getFontBuffer('timesB')
72
- assert_equal font['name'], 'Times-Bold'
76
+ assert_equal 'Times-Bold', font['name']
73
77
  font = pdf.getFontBuffer('timesI')
74
- assert_equal font['name'], 'Times-Italic'
78
+ assert_equal 'Times-Italic', font['name']
75
79
  font = pdf.getFontBuffer('timesBI')
76
- assert_equal font['name'], 'Times-BoldItalic'
80
+ assert_equal 'Times-BoldItalic', font['name']
77
81
 
78
82
  pdf.set_font('courier', '', 18)
79
83
  pdf.set_font('courier', 'B', 18)
@@ -81,21 +85,21 @@ class RbpdfFontTest < Test::Unit::TestCase
81
85
  pdf.set_font('courier', 'BI', 18)
82
86
 
83
87
  font = pdf.getFontBuffer('courier')
84
- assert_equal font['name'], 'Courier'
88
+ assert_equal 'Courier', font['name']
85
89
  font = pdf.getFontBuffer('courierB')
86
- assert_equal font['name'], 'Courier-Bold'
90
+ assert_equal 'Courier-Bold', font['name']
87
91
  font = pdf.getFontBuffer('courierI')
88
- assert_equal font['name'], 'Courier-Oblique'
92
+ assert_equal 'Courier-Oblique', font['name']
89
93
  font = pdf.getFontBuffer('courierBI')
90
- assert_equal font['name'], 'Courier-BoldOblique'
94
+ assert_equal 'Courier-BoldOblique', font['name']
91
95
 
92
96
  pdf.set_font('symbol', '', 18)
93
97
  font = pdf.getFontBuffer('symbol')
94
- assert_equal font['name'], 'Symbol'
98
+ assert_equal 'Symbol', font['name']
95
99
 
96
100
  pdf.set_font('zapfdingbats', '', 18)
97
101
  font = pdf.getFontBuffer('zapfdingbats')
98
- assert_equal font['name'], 'ZapfDingbats'
102
+ assert_equal 'ZapfDingbats', font['name']
99
103
 
100
104
  pdf.putfonts()
101
105
  end
@@ -227,20 +231,24 @@ class RbpdfFontTest < Test::Unit::TestCase
227
231
  pdf.set_font('kozgopromedium', 'BI', 18)
228
232
 
229
233
  font = pdf.getFontBuffer('kozgopromedium')
230
- assert_equal font['desc']['StemV'], 99
231
- assert_equal font['desc']['ItalicAngle'], 0
234
+ assert_equal 99, font['desc']['StemV']
235
+ assert_equal 0, font['desc']['ItalicAngle']
236
+ assert_equal 'KozGoPro-Medium-Acro', font['name']
232
237
 
233
238
  font = pdf.getFontBuffer('kozgopromediumB')
234
- assert_equal font['desc']['StemV'], 99 * 2
235
- assert_equal font['desc']['ItalicAngle'], 0
239
+ assert_equal 99 * 2, font['desc']['StemV']
240
+ assert_equal 0, font['desc']['ItalicAngle']
241
+ assert_equal 'KozGoPro-Medium-Acro,Bold', font['name']
236
242
 
237
243
  font = pdf.getFontBuffer('kozgopromediumI')
238
- assert_equal font['desc']['StemV'], 99
239
- assert_equal font['desc']['ItalicAngle'], -11
244
+ assert_equal 99, font['desc']['StemV']
245
+ assert_equal(-11, font['desc']['ItalicAngle'])
246
+ assert_equal 'KozGoPro-Medium-Acro,Italic', font['name']
240
247
 
241
248
  font = pdf.getFontBuffer('kozgopromediumBI')
242
- assert_equal font['desc']['StemV'], 99 * 2
243
- assert_equal font['desc']['ItalicAngle'], -11
249
+ assert_equal 99 * 2, font['desc']['StemV']
250
+ assert_equal(-11, font['desc']['ItalicAngle'])
251
+ assert_equal 'KozGoPro-Medium-Acro,BoldItalic', font['name']
244
252
 
245
253
  pdf.set_font('kozminproregular', '', 18)
246
254
  pdf.set_font('kozminproregular', 'B', 18)
@@ -265,6 +273,15 @@ class RbpdfFontTest < Test::Unit::TestCase
265
273
  pdf.putfonts()
266
274
  end
267
275
 
276
+ test "Set Font fontname test" do
277
+ pdf = MYPDF.new
278
+ pdf.set_font('helvetica', '', 18, pdf.send(:getfontpath, 'helvetica.rb'))
279
+ pdf.set_font('helvetica', 'B', 18, pdf.send(:getfontpath, 'helveticab.rb'))
280
+ pdf.set_font('helvetica', 'I', 18, pdf.send(:getfontpath, 'helveticai.rb'))
281
+ pdf.set_font('helvetica', 'BI', 18, pdf.send(:getfontpath, 'helveticabi.rb'))
282
+ pdf.putfonts()
283
+ end
284
+
268
285
  test "Font Error test" do
269
286
  pdf = RBPDF.new
270
287
  RBPDF.k_path_fonts = File.join File.dirname(__FILE__)
@@ -277,7 +294,7 @@ class RbpdfFontTest < Test::Unit::TestCase
277
294
  err = assert_raises(RuntimeError) {
278
295
  pdf.set_font('err_font1', '', 18)
279
296
  }
280
- assert_match /RBPDF error: The font definition file has a bad format: .*err_font1.rb/, err.message
297
+ assert_match(/RBPDF error: The font definition file has a bad format: .*err_font1.rb/, err.message)
281
298
 
282
299
  err = assert_raises(RuntimeError) {
283
300
  pdf.set_font('err_font2', '', 18)