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,272 +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
- class MYPDF < RBPDF
9
- def get_temp_rtl
10
- @tmprtl
11
- end
12
- end
13
-
14
- htmls = {
15
- 'Simple Text' => {:html => 'abc', :length => 2,
16
- :params => [{:parent => 0, :tag => false}, # parent -> Root
17
- {:parent => 0, :tag => false, :value => 'abc', :elkey => 0, :block => false}]},
18
- 'Back Slash Text' => {:html => 'a\\bc', :length => 2,
19
- :params => [{:parent => 0, :tag => false}, # parent -> Root
20
- {:parent => 0, :tag => false, :value => 'a\\bc', :elkey => 0, :block => false}]},
21
- 'Simple Tag' => {:html => '<b>abc</b>', :length => 4,
22
- :params => [{:parent => 0, :tag => false, :attribute => {}}, # parent -> Root
23
- {:parent => 0, :tag => true, :value => 'b', :elkey => 0, :opening => true, :attribute => {}},
24
- {:parent => 1, :tag => false, :value => 'abc', :elkey => 1, :block => false}, # parent -> open tag key
25
- {:parent => 1, :tag => true, :value => 'b', :elkey => 2, :opening => false}]}, # parent -> open tag key
26
- 'pre Tag' => {:html => "<pre>abc</pre>", :length => 4, # See. 'Dom pre tag test'
27
- :params => [{:parent => 0, :tag => false, :attribute => {}}, # parent -> Root
28
- {:parent => 0, :tag => true, :value => 'pre', :elkey => 0, :opening => true, :attribute => {}},
29
- {:parent => 1, :tag => false, :value => 'abc', :elkey => 1, :block => false}, # parent -> open tag key
30
- {:parent => 1, :tag => true, :value => 'pre', :elkey => 2, :opening => false}]}, # parent -> open tag key
31
- 'pre code Tag' => {:html => '<pre><code class="ruby">abc</code></pre>', :length => 4, # See. 'Dom pre tag test (code)'
32
- :params => [{:parent => 0, :tag => false, :attribute => {}}, # parent -> Root
33
- {:parent => 0, :tag => true, :value => 'pre', :elkey => 0, :opening => true, :attribute => {}},
34
- {:parent => 1, :tag => false, :value => 'abc', :elkey => 1, :block => false}, # parent -> open tag key
35
- {:parent => 1, :tag => true, :value => 'pre', :elkey => 2, :opening => false}]}, # parent -> open tag key
36
- 'pre code span Tag' => {:html => '<pre><code class="ruby syntaxhl"><span class="CodeRay">abc</span></code></pre>', :length => 6, # See. 'Dom pre tag test (code span)'
37
- :params => [{:parent => 0, :tag => false, :attribute => {}}, # parent -> Root
38
- {:parent => 0, :tag => true, :value => 'pre', :elkey => 0, :opening => true, :attribute => {}},
39
- {:parent => 1, :tag => true, :value => 'span', :elkey => 1, :opening => true},
40
- {:parent => 2, :tag => false, :value => 'abc', :elkey => 2, :block => false}, # parent -> open tag key
41
- {:parent => 2, :tag => true, :value => 'span', :elkey => 3, :opening => false}, # parent -> open tag key
42
- {:parent => 1, :tag => true, :value => 'pre', :elkey => 4, :opening => false}]}, # parent -> open tag key
43
- 'Error Tag (doble colse tag)' => {:html => '</ul></div>',
44
- :validated_length => 1, # for Rails 4.2 later (no use Rails 3.x/4.0/4.1)
45
- :params => [{:parent => 0, :tag => false, :attribute => {}}, # parent -> Root
46
- {:parent => 0, :tag => true, :value => 'ul', :elkey => 0, :opening => false}, # parent -> Root key
47
- {:parent => 0, :tag => true, :value => 'div', :elkey => 1, :opening => false}]}, # parent -> Root key
48
- 'Attribute' => {:html => '<p style="text-align:justify">abc</p>', :length => 4,
49
- :params => [{:parent => 0, :tag => false, :attribute => {}}, # parent -> Root
50
- {:parent => 0, :tag => true, :value => 'p', :elkey => 0, :opening => true, :align => 'J', :attribute => {:style => 'text-align:justify;'}}]},
51
- 'Table border' => {:html => '<table border="1"><tr><td>abc</td></tr></table>', :length => 9,
52
- # -> '<table border="1"><tr><td>abc<marker style="font-size:0"/></td></tr></table>' ## added marker tag (by getHtmlDomArray()) ##
53
- :params => [{:parent => 0, :tag => false, :attribute => {}}, # parent -> Root
54
- {:parent => 0, :tag => true, :value => 'table', :elkey => 0, :opening => true, :attribute => {:border => 1}},
55
- {},
56
- {},
57
- {},
58
- # marker tag (by getHtmlDomArray())
59
- {:parent => 3, :tag => true, :value => 'marker', :elkey => 4, :opening => true, :attribute => {:style => 'font-size:0'}}]},
60
- 'Table td Width' => {:html => '<table><tr><td width="10">abc</td></tr></table>', :length => 9,
61
- # -> '<table><tr><td width="10">abc<marker style="font-size:0"/></td></tr></table>' ## added marker tag (by getHtmlDomArray()) ##
62
- :params => [{},
63
- {},
64
- {},
65
- {:parent => 2, :tag => true, :value => 'td', :elkey => 2, :opening => true, :width => '10'}]},
66
- 'Dom open angled bracket "<"' => {:html => "<p>AAA '<'-BBB << <<< '</' '<//' '<///' CCC.</p>", :length => 4,
67
- :params => [{:parent => 0, :tag => false, :attribute => {}}, # parent -> Root
68
- {:parent => 0, :tag => true, :value => 'p', :elkey => 0, :opening => true, :attribute => {}},
69
- {:parent => 1, :tag => false, :value => "AAA '<'-BBB << <<< '</' '<//' '<///' CCC.", :elkey => 1},
70
- {:parent => 1, :tag => true, :value => 'p', :elkey => 2, :opening => false}]},
71
- 'Dom self close tag' => {:html => '<b>ab<br>c</b>', :length => 6, # See. 'Dom self close tag test (Simple Tag)'
72
- :params => [{:parent => 0, :tag => false, :attribute => {}}, # parent -> Root
73
- {:parent => 0, :tag => true, :value => 'b', :elkey => 0, :opening => true, :attribute => {}}, # <b>
74
- {:parent => 1, :tag => false, :value => 'ab', :elkey => 1, :block => false}, # ab
75
- {:parent => 1, :tag => true, :value => 'br', :elkey => 2, :opening => true, :attribute => {}}, # <br>
76
- {:parent => 1, :tag => false, :value => 'c', :elkey => 3, :block => false}, # c
77
- {:parent => 1, :tag => true, :value => 'b', :elkey => 4, :opening => false}]}, # </b>
78
- }
79
-
80
- data(htmls)
81
- test "Dom Basic test" do |data|
82
- pdf = RBPDF.new
83
- dom = pdf.send(:getHtmlDomArray, data[:html])
84
- assert_equal data[:length], dom.length if data[:length]
85
- data[:params].each_with_index {|param, i|
86
- # validated length check (for Rails 4.2 later)
87
- if dom[i].nil? and i >= data[:validated_length]
88
- break
89
- end
90
-
91
- param.each {|key, val|
92
- if (key == :attribute) and !val.empty?
93
- val.each {|k, v|
94
- if (k == :style) and !v.empty?
95
- assert_equal("dom[#{i}][attribute]: #{k} => #{v}", "dom[#{i}][attribute]: #{k} => #{dom[i][key.to_s][k.to_s].gsub(' ', '')}")
96
- else
97
- assert_equal("dom[#{i}][attribute]: #{k} => #{v}", "dom[#{i}][attribute]: #{k} => #{dom[i][key.to_s][k.to_s]}")
98
- end
99
- }
100
- else
101
- assert_equal("dom[#{i}]: #{key} => #{val}", "dom[#{i}]: #{key} => #{dom[i][key.to_s]}")
102
- end
103
- }
104
- }
105
- end
106
-
107
- test "Dom pre tag test" do
108
- pdf = RBPDF.new
109
-
110
- # No Text
111
- dom = pdf.send(:getHtmlDomArray, "<pre></pre>")
112
- dom2 = pdf.send(:getHtmlDomArray, "<pre>\n</pre>")
113
- assert_equal dom, dom2
114
-
115
- # Simple Tag
116
- dom = pdf.send(:getHtmlDomArray, "<pre>abc</pre>")
117
- dom2 = pdf.send(:getHtmlDomArray, "<pre>\nabc\n</pre>")
118
- assert_equal dom, dom2
119
- dom2 = pdf.send(:getHtmlDomArray, "<pre>\nabc</pre>")
120
- assert_equal dom, dom2
121
- dom2 = pdf.send(:getHtmlDomArray, "<pre>abc\n</pre>")
122
- assert_equal dom, dom2
123
- dom2 = pdf.send(:getHtmlDomArray, "<pre>abc<br /></pre>")
124
- assert_equal dom, dom2
125
-
126
- # with line feed
127
- dom = pdf.send(:getHtmlDomArray, "<pre>abc\ndef</pre>")
128
- dom2 = pdf.send(:getHtmlDomArray, "<pre>\nabc\ndef\n</pre>")
129
- assert_equal dom, dom2
130
- dom2 = pdf.send(:getHtmlDomArray, "<pre>\nabc\ndef</pre>")
131
- assert_equal dom, dom2
132
- dom2 = pdf.send(:getHtmlDomArray, "<pre>abc\ndef\n</pre>")
133
- assert_equal dom, dom2
134
-
135
- # code Tag
136
- dom = pdf.send(:getHtmlDomArray, '<pre><code class="ruby">abc</code></pre>')
137
- dom2 = pdf.send(:getHtmlDomArray, "<pre><code class=\"ruby\">\nabc\n</code></pre>")
138
- assert_equal dom, dom2
139
- dom2 = pdf.send(:getHtmlDomArray, "<pre><code class=\"ruby\">\nabc</code></pre>")
140
- assert_equal dom, dom2
141
- dom2 = pdf.send(:getHtmlDomArray, "<pre><code class=\"ruby\">abc\n</code></pre>")
142
- assert_equal dom, dom2
143
-
144
- # code span Tag
145
- dom = pdf.send(:getHtmlDomArray, '<pre><code class="ruby syntaxhl"><span class="CodeRay">abc</span></code></pre>')
146
- dom2 = pdf.send(:getHtmlDomArray, "<pre><code class=\"ruby syntaxhl\"><span class=\"CodeRay\">\nabc\n</span></code></pre>")
147
- assert_equal dom, dom2
148
- dom2 = pdf.send(:getHtmlDomArray, "<pre><code class=\"ruby syntaxhl\"><span class=\"CodeRay\">\nabc</span></code></pre>")
149
- assert_equal dom, dom2
150
- dom2 = pdf.send(:getHtmlDomArray, "<pre><code class=\"ruby syntaxhl\"><span class=\"CodeRay\">abc\n</span></code></pre>")
151
- assert_equal dom, dom2
152
- dom2 = pdf.send(:getHtmlDomArray, "<pre><code class=\"ruby syntaxhl\"><span class=\"CodeRay\">abc</span>\n</code></pre>")
153
- assert_equal dom, dom2
154
- dom2 = pdf.send(:getHtmlDomArray, "<pre><code class=\"ruby syntaxhl\">\n<span class=\"CodeRay\">\nabc\n</span>\n</code></pre>")
155
- assert_equal dom, dom2
156
- end
157
-
158
- test "Dom self close tag test" do
159
- pdf = RBPDF.new
160
-
161
- # Simple Tag
162
- dom = pdf.send(:getHtmlDomArray, '<b>ab<br>c</b>')
163
- dom2 = pdf.send(:getHtmlDomArray, '<b>ab<br/>c</b>')
164
- assert_equal dom, dom2
165
-
166
- htmlcontent = '<b><img src="/public/ng.png" alt="test alt attribute" width="30" height="30" border="0"/></b>'
167
- dom1 = pdf.send(:getHtmlDomArray, htmlcontent)
168
- htmlcontent = '<b><img src="/public/ng.png" alt="test alt attribute" width="30" height="30" border="0"></b>'
169
- dom2 = pdf.send(:getHtmlDomArray, htmlcontent)
170
- assert_equal dom1, dom2
171
-
172
- dom1 = pdf.send(:getHtmlDomArray, '<b>ab<hr/>c</b>')
173
- dom2 = pdf.send(:getHtmlDomArray, '<b>ab<hr>c</b>')
174
- assert_equal dom1, dom2
175
- end
176
-
177
- test "Dom HTMLTagHandler Basic test" do
178
- pdf = RBPDF.new
179
- pdf.add_page
180
-
181
- # Simple HTML
182
- htmlcontent = '<h1>HTML Example</h1>'
183
- dom1 = pdf.send(:getHtmlDomArray, htmlcontent)
184
- dom2 = pdf.send(:openHTMLTagHandler, dom1, 1, false)
185
- assert_equal dom1, dom2
186
- end
187
-
188
- htmls = {
189
- 'LTR' => {:lines => [{:html => '<p dir="ltr">HTML Example</p>', :length => 4,
190
- :params => [{}, {:tag => true, :value => 'p', :opening => true, :attribute => {:dir => 'ltr'}, :temprtl => false}]},
191
- {:html => '<p dir="rtl">HTML Example</p>', :length => 4,
192
- :params => [{}, {:tag => true, :value => 'p', :opening => true, :attribute => {:dir => 'rtl'}, :temprtl => 'R'}]},
193
- {:html => '<p dir="ltr">HTML Example</p>', :length => 4,
194
- :params => [{}, {:tag => true, :value => 'p', :opening => true, :attribute => {:dir => 'ltr'}, :temprtl => false}]}
195
- ]},
196
- 'RTL' => {:rtl => true,
197
- :lines => [{:html => '<p dir="ltr">HTML Example</p>', :length => 4,
198
- :params => [{}, {:tag => true, :value => 'p', :opening => true, :attribute => {:dir => 'ltr'}, :temprtl => 'L'}]},
199
- {:html => '<p dir="rtl">HTML Example</p>', :length => 4,
200
- :params => [{}, {:tag => true, :value => 'p', :opening => true, :attribute => {:dir => 'rtl'}, :temprtl => false}]}
201
- ]},
202
- }
203
-
204
- data(htmls)
205
- test "Dom HTMLTagHandler DIR test" do |data|
206
- pdf = MYPDF.new
207
- pdf.add_page
208
- temprtl = pdf.get_temp_rtl
209
- assert_equal false, temprtl
210
- pdf.set_rtl(true) if data[:rtl]
211
-
212
- data[:lines].each_with_index {|line, l|
213
- dom = pdf.send(:getHtmlDomArray, line[:html])
214
- dom = pdf.send(:openHTMLTagHandler, dom, 1, false)
215
-
216
- assert_equal line[:length], dom.length if line[:length]
217
- line[:params].each_with_index {|param, i|
218
- param.each {|key, val|
219
- if (key == :attribute) and !val.empty?
220
- val.each {|k, v|
221
- assert_equal("#{l}: dom[#{i}][attribute]: #{k} => #{v}", "#{l}: dom[#{i}][attribute]: #{k} => #{dom[i][key.to_s][k.to_s]}")
222
- }
223
- elsif (key == :temprtl)
224
- temprtl = pdf.get_temp_rtl
225
- assert_equal("#{l}: dom[#{i}]: temprtl => #{val}", "#{l}: dom[#{i}]: temprtl => #{temprtl.to_s}")
226
- else
227
- assert_equal("#{l}: dom[#{i}]: #{key} => #{val}", "#{l}: dom[#{i}]: #{key} => #{dom[i][key.to_s]}")
228
- end
229
- }
230
- }
231
- }
232
- end
233
-
234
- test "Dom HTMLTagHandler img y position with height attribute test" do
235
- pdf = RBPDF.new
236
- pdf.add_page
237
-
238
- # Image Error HTML
239
- htmlcontent = '<img src="/public/ng.png" alt="test alt attribute" width="30" height="30" border="0"/>'
240
- dom1 = pdf.send(:getHtmlDomArray, htmlcontent)
241
- #y1 = pdf.get_y
242
-
243
- dom2 = pdf.send(:openHTMLTagHandler, dom1, 1, false)
244
- y2 = pdf.get_y
245
- assert_equal dom1, dom2
246
- assert_equal pdf.get_image_rby - (12 / pdf.get_scale_factor) , y2
247
- end
248
-
249
- test "Dom HTMLTagHandler img y position without height attribute test" do
250
- pdf = RBPDF.new
251
- pdf.add_page
252
-
253
- # Image Error HTML
254
- htmlcontent = '<img src="/public/ng.png" alt="test alt attribute" border="0"/>'
255
- dom1 = pdf.send(:getHtmlDomArray, htmlcontent)
256
- y1 = pdf.get_y
257
-
258
- dom2 = pdf.send(:openHTMLTagHandler, dom1, 1, false)
259
- y2 = pdf.get_y
260
- assert_equal dom1, dom2
261
- assert_equal y1, y2
262
- end
263
-
264
- test "getHtmlDomArray encoding test" do
265
- return unless 'test'.respond_to?(:force_encoding)
266
-
267
- pdf = RBPDF.new('P', 'mm', 'A4', true, "UTF-8", true)
268
- htmlcontent = 'test'.force_encoding('ASCII-8BIT')
269
- pdf.send(:getHtmlDomArray, htmlcontent)
270
- assert_equal 'ASCII-8BIT', htmlcontent.encoding.to_s
271
- end
272
- end
@@ -1,83 +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
- def logger
8
- require 'logger'
9
- return Logger.new(STDOUT)
10
- end
11
-
12
- if !defined? ApplicationController
13
- class ApplicationController
14
- end
15
- end
16
-
17
- class RbpdfTest < Test::Unit::TestCase
18
- htmls = {
19
- '001 : Default Header and Footer' => '001',
20
- '002 : Removing Header and Footer' => '002',
21
- '003 : Custom Header and Footer' => '003',
22
- '004 : Cell stretching' => '004',
23
- '005 : Multicell' => '005',
24
- '006 : write_html and RTL support' => '006',
25
- '007 : Two independent columns with write_htmlcell()' => '007',
26
- '008 : Include external UTF-8 text file' => '008',
27
- '009 : Test Image' => '009',
28
- '011 : Colored Table' => '011',
29
- '012 : Graphic Functions' => '012',
30
- '015 : Bookmarks (Table of Content)' => '015',
31
- '017 : Two independent columns with MultiCell' => '017',
32
- '018 : RTL document with Persian language' => '018',
33
- '020 : Two columns composed by MultiCell of different' => '020',
34
- '021 : write_html text flow' => '021',
35
- '022 : CMYK colors' => '022',
36
- '023 : Page Groups' => '023',
37
- '024 : Object Visibility' => '024',
38
- '025 : Object Transparency' => '025',
39
- '026 : Text Rendering Modes and Text Clipping' => '026',
40
- '028 : Changing page formats' => '028',
41
- '029 : Set PDF viewer display preferences.' => '029',
42
- '031 : Pie Chart' => '031',
43
- '033 : Mixed font types' => '033',
44
- '034 : Clipping' => '034',
45
- '035 : Line styles with cells and multicells' => '035',
46
- '036 : Annotations' => '036',
47
- '038 : CID-0 CJK unembedded font' => '038',
48
- '039 : HTML justification' => '039',
49
- '040 : Booklet mode (double-sided pages)' => '040',
50
- '041 : Annotation - FileAttachment' => '041',
51
- '042 : Test Image with alpha channel' => '042',
52
- '043 : Disk caching' => '043',
53
- '044 : Move, copy and delete pages' => '044',
54
- '045 : Bookmarks and Table of Content' => '045',
55
- '047 : Transactions' => '047',
56
- '048 : HTML tables and table headers' => '048',
57
- # '051 : Full page background' => '051',
58
- '055 : Display all characters available on core fonts.' => '055',
59
- '057 : Cell vertical alignments' => '057',
60
- '059 : Table Of Content using HTML templates.' => '059',
61
- '060 : Advanced page settings.' => '060',
62
- '061 : XHTML + CSS' => '061',
63
- }
64
-
65
- data(htmls)
66
- test "Examples test" do |data|
67
- $LOAD_PATH << File.join(File.dirname(File.expand_path(__FILE__)), '../example/rails/app/controllers/')
68
-
69
- require "example#{data}_controller"
70
-
71
- content = []
72
- test = Object.const_get("Example#{data}Controller").new
73
-
74
- contents = test.index
75
- # contents = assert_nothing_raised do
76
- # test.index
77
- # end
78
- contents.each_line {|line| content.push line.chomp }
79
-
80
- assert_not_equal 0, content.length
81
- assert_equal '%PDF-1.7', content[0]
82
- end
83
- end
@@ -1,45 +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 RbpdfFontFuncTest < Test::Unit::TestCase
8
- class MYPDF < RBPDF
9
- def putAPXObject(w=0, h=0, stream='')
10
- super
11
- end
12
- end
13
- test "Font get_font_descent function test 1" do
14
- pdf = RBPDF.new
15
- fontdescent = pdf.get_font_descent('times', '', 18)
16
- assert_in_delta 0.95, fontdescent, 0.01
17
- end
18
-
19
- test "Font get_font_descent function test 2" do
20
- pdf = RBPDF.new
21
- fontdescent = pdf.get_font_descent('freesans', '', 18)
22
- assert_in_delta 1.91, fontdescent, 0.01
23
- end
24
-
25
- test "Font get_font_ascent function test 1" do
26
- pdf = RBPDF.new
27
- fontascent = pdf.get_font_ascent('times', '', 18)
28
- assert_in_delta 5.39, fontascent, 0.01
29
- end
30
-
31
- test "Font get_font_ascent function test 2" do
32
- pdf = RBPDF.new
33
- fontascent = pdf.get_font_ascent('freesans', '', 18)
34
- assert_in_delta 6.35, fontascent, 0.01
35
- end
36
-
37
- test "putAPXObject test" do
38
- pdf = MYPDF.new
39
-
40
- apxo_obj_id = pdf.putAPXObject
41
- assert_equal 400001, apxo_obj_id
42
- apxo_obj_id = pdf.putAPXObject
43
- assert_equal 400002, apxo_obj_id
44
- end
45
- end
@@ -1,37 +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 RbpdfFontStyleTest < Test::Unit::TestCase
8
- class MYPDF < RBPDF
9
- def dounderline(x, y, txt)
10
- super
11
- end
12
- def dolinethrough(x, y, txt)
13
- super
14
- end
15
- def dooverline(x, y, txt)
16
- super
17
- end
18
- end
19
-
20
- test "Font dounderline function test 1" do
21
- pdf = MYPDF.new
22
- line = pdf.dounderline(10, 10, "test")
23
- assert_equal '28.35 812.94 19.34 -0.60 re f', line
24
- end
25
-
26
- test "Font dolinethrough function test 1" do
27
- pdf = MYPDF.new
28
- line = pdf.dolinethrough(10, 10, "test")
29
- assert_equal '28.35 816.94 19.34 -0.60 re f', line
30
- end
31
-
32
- test "Font dooverline function test 1" do
33
- pdf = MYPDF.new
34
- line = pdf.dooverline(10, 10, "test")
35
- assert_equal '28.35 824.34 19.34 -0.60 re f', line
36
- end
37
- end
@@ -1,308 +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 RbpdfFontTest < Test::Unit::TestCase
8
- class MYPDF < RBPDF
9
- def putfonts()
10
- super
11
- end
12
-
13
- def getFontBuffer(font)
14
- super
15
- end
16
-
17
- def getFontsList()
18
- super
19
- end
20
-
21
- def fontlist()
22
- @fontlist
23
- end
24
- end
25
-
26
- test "Font subsetting enable/disable test" do
27
- pdf = MYPDF.new
28
- subsetting = pdf.get_font_subsetting
29
- assert_equal true, subsetting
30
-
31
- pdf.set_font_subsetting(false)
32
- subsetting = pdf.get_font_subsetting
33
- assert_equal false, subsetting
34
-
35
- pdf.set_font_subsetting(true)
36
- subsetting = pdf.get_font_subsetting
37
- assert_equal true, subsetting
38
- end
39
-
40
- test "Font getFontsList" do
41
- pdf = MYPDF.new
42
- pdf.getFontsList()
43
- fonts = pdf.fontlist()
44
- assert fonts.include?('kozminproregular')
45
- end
46
-
47
- test "core Font test" do
48
- pdf = MYPDF.new
49
-
50
- pdf.set_font('helvetica', '', 18)
51
- pdf.set_font('helvetica', 'B', 18)
52
- pdf.set_font('helvetica', 'I', 18)
53
- pdf.set_font('helvetica', 'BI', 18)
54
-
55
- font = pdf.getFontBuffer('helvetica')
56
- assert_equal 'Helvetica', font['name']
57
- assert_equal 556, font['dw']
58
- font = pdf.getFontBuffer('helveticaB')
59
- assert_equal 'Helvetica-Bold', font['name']
60
- assert_equal 556, font['dw']
61
- font = pdf.getFontBuffer('helveticaI')
62
- assert_equal 'Helvetica-Oblique', font['name']
63
- assert_equal 556, font['dw']
64
- font = pdf.getFontBuffer('helveticaBI')
65
- assert_equal 'Helvetica-BoldOblique', font['name']
66
- assert_equal 556, font['dw']
67
-
68
- pdf.set_font('times', '', 18)
69
- pdf.set_font('times', 'B', 18)
70
- pdf.set_font('times', 'I', 18)
71
- pdf.set_font('times', 'BI', 18)
72
-
73
- font = pdf.getFontBuffer('times')
74
- assert_equal 'Times-Roman', font['name']
75
- font = pdf.getFontBuffer('timesB')
76
- assert_equal 'Times-Bold', font['name']
77
- font = pdf.getFontBuffer('timesI')
78
- assert_equal 'Times-Italic', font['name']
79
- font = pdf.getFontBuffer('timesBI')
80
- assert_equal 'Times-BoldItalic', font['name']
81
-
82
- pdf.set_font('courier', '', 18)
83
- pdf.set_font('courier', 'B', 18)
84
- pdf.set_font('courier', 'I', 18)
85
- pdf.set_font('courier', 'BI', 18)
86
-
87
- font = pdf.getFontBuffer('courier')
88
- assert_equal 'Courier', font['name']
89
- font = pdf.getFontBuffer('courierB')
90
- assert_equal 'Courier-Bold', font['name']
91
- font = pdf.getFontBuffer('courierI')
92
- assert_equal 'Courier-Oblique', font['name']
93
- font = pdf.getFontBuffer('courierBI')
94
- assert_equal 'Courier-BoldOblique', font['name']
95
-
96
- pdf.set_font('symbol', '', 18)
97
- font = pdf.getFontBuffer('symbol')
98
- assert_equal 'Symbol', font['name']
99
-
100
- pdf.set_font('zapfdingbats', '', 18)
101
- font = pdf.getFontBuffer('zapfdingbats')
102
- assert_equal 'ZapfDingbats', font['name']
103
-
104
- pdf.putfonts()
105
- end
106
-
107
- test "TrueTypeUnicode Subset Font test" do
108
- pdf = MYPDF.new
109
- pdf.set_font_subsetting(true)
110
-
111
- pdf.set_font('freesans', '', 18)
112
- pdf.set_font('freesans', 'B', 18)
113
- pdf.set_font('freesans', 'I', 18)
114
- pdf.set_font('freesans', 'BI', 18)
115
-
116
- pdf.set_font('freeserif', '', 18)
117
- pdf.set_font('freeserif', 'B', 18)
118
- pdf.set_font('freeserif', 'I', 18)
119
- pdf.set_font('freeserif', 'BI', 18)
120
-
121
- pdf.set_font('freemono', '', 18)
122
- pdf.set_font('freemono', 'B', 18)
123
- pdf.set_font('freemono', 'I', 18)
124
- pdf.set_font('freemono', 'BI', 18)
125
-
126
- pdf.set_font('dejavusans', '', 18)
127
- pdf.set_font('dejavusans', 'B', 18)
128
- pdf.set_font('dejavusans', 'I', 18)
129
- pdf.set_font('dejavusans', 'BI', 18)
130
-
131
- pdf.set_font('dejavusanscondensed', '', 18)
132
- pdf.set_font('dejavusanscondensed', 'B', 18)
133
- pdf.set_font('dejavusanscondensed', 'I', 18)
134
- pdf.set_font('dejavusanscondensed', 'BI', 18)
135
-
136
- pdf.set_font('dejavusansmono', '', 18)
137
- pdf.set_font('dejavusansmono', 'B', 18)
138
- pdf.set_font('dejavusansmono', 'I', 18)
139
- pdf.set_font('dejavusansmono', 'BI', 18)
140
-
141
- pdf.set_font('dejavuserif', '', 18)
142
- pdf.set_font('dejavuserif', 'B', 18)
143
- pdf.set_font('dejavuserif', 'I', 18)
144
- pdf.set_font('dejavuserif', 'BI', 18)
145
-
146
- pdf.set_font('dejavuserifcondensed', '', 18)
147
- pdf.set_font('dejavuserifcondensed', 'B', 18)
148
- pdf.set_font('dejavuserifcondensed', 'I', 18)
149
- pdf.set_font('dejavuserifcondensed', 'BI', 18)
150
-
151
- pdf.set_font('dejavusansextralight', '', 18)
152
-
153
- pdf.putfonts()
154
- end
155
-
156
- test "TrueTypeUnicode Font test" do
157
- pdf = MYPDF.new
158
- pdf.set_font_subsetting(false)
159
-
160
- pdf.set_font('freesans', '', 18)
161
- pdf.set_font('freesans', 'B', 18)
162
- pdf.set_font('freesans', 'I', 18)
163
- pdf.set_font('freesans', 'BI', 18)
164
-
165
- pdf.set_font('freeserif', '', 18)
166
- pdf.set_font('freeserif', 'B', 18)
167
- pdf.set_font('freeserif', 'I', 18)
168
- pdf.set_font('freeserif', 'BI', 18)
169
-
170
- pdf.set_font('freemono', '', 18)
171
- pdf.set_font('freemono', 'B', 18)
172
- pdf.set_font('freemono', 'I', 18)
173
- pdf.set_font('freemono', 'BI', 18)
174
-
175
- pdf.set_font('dejavusans', '', 18)
176
- pdf.set_font('dejavusans', 'B', 18)
177
- pdf.set_font('dejavusans', 'I', 18)
178
- pdf.set_font('dejavusans', 'BI', 18)
179
-
180
- pdf.set_font('dejavusanscondensed', '', 18)
181
- pdf.set_font('dejavusanscondensed', 'B', 18)
182
- pdf.set_font('dejavusanscondensed', 'I', 18)
183
- pdf.set_font('dejavusanscondensed', 'BI', 18)
184
-
185
- pdf.set_font('dejavusansmono', '', 18)
186
- pdf.set_font('dejavusansmono', 'B', 18)
187
- pdf.set_font('dejavusansmono', 'I', 18)
188
- pdf.set_font('dejavusansmono', 'BI', 18)
189
-
190
- pdf.set_font('dejavuserif', '', 18)
191
- pdf.set_font('dejavuserif', 'B', 18)
192
- pdf.set_font('dejavuserif', 'I', 18)
193
- pdf.set_font('dejavuserif', 'BI', 18)
194
-
195
- pdf.set_font('dejavuserifcondensed', '', 18)
196
- pdf.set_font('dejavuserifcondensed', 'B', 18)
197
- pdf.set_font('dejavuserifcondensed', 'I', 18)
198
- pdf.set_font('dejavuserifcondensed', 'BI', 18)
199
-
200
- pdf.set_font('dejavusansextralight', '', 18)
201
-
202
- pdf.putfonts()
203
- end
204
-
205
- test "cidfont0 Font test" do
206
- pdf = MYPDF.new
207
-
208
- pdf.set_font('cid0cs', '', 18)
209
- pdf.set_font('cid0cs', 'B', 18)
210
- pdf.set_font('cid0cs', 'I', 18)
211
- pdf.set_font('cid0cs', 'BI', 18)
212
-
213
- pdf.set_font('cid0ct', '', 18)
214
- pdf.set_font('cid0ct', 'B', 18)
215
- pdf.set_font('cid0ct', 'I', 18)
216
- pdf.set_font('cid0ct', 'BI', 18)
217
-
218
- pdf.set_font('cid0jp', '', 18)
219
- pdf.set_font('cid0jp', 'B', 18)
220
- pdf.set_font('cid0jp', 'I', 18)
221
- pdf.set_font('cid0jp', 'BI', 18)
222
-
223
- pdf.set_font('cid0kr', '', 18)
224
- pdf.set_font('cid0kr', 'B', 18)
225
- pdf.set_font('cid0kr', 'I', 18)
226
- pdf.set_font('cid0kr', 'BI', 18)
227
-
228
- pdf.set_font('kozgopromedium', '', 18)
229
- pdf.set_font('kozgopromedium', 'B', 18)
230
- pdf.set_font('kozgopromedium', 'I', 18)
231
- pdf.set_font('kozgopromedium', 'BI', 18)
232
-
233
- font = pdf.getFontBuffer('kozgopromedium')
234
- assert_equal 99, font['desc']['StemV']
235
- assert_equal 0, font['desc']['ItalicAngle']
236
- assert_equal 'KozGoPro-Medium-Acro', font['name']
237
-
238
- font = pdf.getFontBuffer('kozgopromediumB')
239
- assert_equal 99 * 2, font['desc']['StemV']
240
- assert_equal 0, font['desc']['ItalicAngle']
241
- assert_equal 'KozGoPro-Medium-Acro,Bold', font['name']
242
-
243
- font = pdf.getFontBuffer('kozgopromediumI')
244
- assert_equal 99, font['desc']['StemV']
245
- assert_equal(-11, font['desc']['ItalicAngle'])
246
- assert_equal 'KozGoPro-Medium-Acro,Italic', font['name']
247
-
248
- font = pdf.getFontBuffer('kozgopromediumBI')
249
- assert_equal 99 * 2, font['desc']['StemV']
250
- assert_equal(-11, font['desc']['ItalicAngle'])
251
- assert_equal 'KozGoPro-Medium-Acro,BoldItalic', font['name']
252
-
253
- pdf.set_font('kozminproregular', '', 18)
254
- pdf.set_font('kozminproregular', 'B', 18)
255
- pdf.set_font('kozminproregular', 'I', 18)
256
- pdf.set_font('kozminproregular', 'BI', 18)
257
-
258
- pdf.set_font('msungstdlight', '', 18)
259
- pdf.set_font('msungstdlight', 'B', 18)
260
- pdf.set_font('msungstdlight', 'I', 18)
261
- pdf.set_font('msungstdlight', 'BI', 18)
262
-
263
- pdf.set_font('stsongstdlight', '', 18)
264
- pdf.set_font('stsongstdlight', 'B', 18)
265
- pdf.set_font('stsongstdlight', 'I', 18)
266
- pdf.set_font('stsongstdlight', 'BI', 18)
267
-
268
- pdf.set_font('hysmyeongjostdmedium', '', 18)
269
- pdf.set_font('hysmyeongjostdmedium', 'B', 18)
270
- pdf.set_font('hysmyeongjostdmedium', 'I', 18)
271
- pdf.set_font('hysmyeongjostdmedium', 'BI', 18)
272
-
273
- pdf.putfonts()
274
- end
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
-
285
- test "Font Error test" do
286
- pdf = RBPDF.new
287
- RBPDF.k_path_fonts = File.join File.dirname(__FILE__)
288
-
289
- err = assert_raises(RBPDFError) {
290
- pdf.set_font('err_font', '', 18)
291
- }
292
- assert_equal 'RBPDF error: Could not include font definition file: err_font', err.message
293
-
294
- err = assert_raises(RBPDFError) {
295
- pdf.set_font('err_font1', '', 18)
296
- }
297
- assert_match(/RBPDF error: The font definition file has a bad format: .*err_font1.rb/, err.message)
298
-
299
- err = assert_raises(RBPDFError) {
300
- pdf.set_font('err_font2', '', 18)
301
- }
302
- assert_equal 'RBPDF error: Unknow font type: Type0', err.message
303
-
304
- # Font path reset test
305
- pdf = RBPDF.new
306
- pdf.set_font('helvetica', '', 18)
307
- end
308
- end