rbpdf 1.18.1 → 1.18.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG +4 -0
- data/lib/rbpdf/version.rb +1 -1
- data/lib/rbpdf.rb +16 -13
- data/test/rbpdf_cell_test.rb +21 -0
- data/test/rbpdf_dom_test.rb +29 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 58e305378e0bcb076298f1c3deb700869cbec74e
|
4
|
+
data.tar.gz: cbd734a213aa85690bd1d0b04359376e517221c7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ddc12d9fce5eb9172b307b12ecda5ee2e3a7c00fd2142673618352396507c8e2fcb3d9dc36431de48c02fa06edbbd482d25617fe0eba323ca29043c1561a4b4b
|
7
|
+
data.tar.gz: d37493ecfc88a6450d7a201ff1e9f6cec53ca7f397062ba62981177753078c362fb07fd3e0bbf8b6abd5f72c50b3de122e4eb0c58b06e41ba3c3ae8e30a0d415
|
data/CHANGELOG
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
1.18.2 2014-10-25
|
2
|
+
- getNumLines and a getStringHeight function fixed the problem which is wrong by the case of two or more lines.
|
3
|
+
- fix case of missing image file.
|
4
|
+
|
1
5
|
1.18.1 2014-09-15
|
2
6
|
- ImagePngAlpha function fixed for the error case where an alpha channel cannot be deleted.
|
3
7
|
- getimagesize function fixed for MAC OS rmagick.
|
data/lib/rbpdf/version.rb
CHANGED
data/lib/rbpdf.rb
CHANGED
@@ -3918,14 +3918,15 @@ class RBPDF
|
|
3918
3918
|
@transfmrk[@page] += (ccode + "\n").length
|
3919
3919
|
elsif @in_footer
|
3920
3920
|
pagemark = @footerpos[@page]
|
3921
|
+
@footerpos[@page] += (ccode + "\n").length
|
3921
3922
|
else
|
3922
3923
|
pagemark = @intmrk[@page]
|
3924
|
+
@intmrk[@page] += (ccode + "\n").length
|
3923
3925
|
end
|
3924
3926
|
pagebuff = getPageBuffer(@page)
|
3925
3927
|
pstart = pagebuff[0, pagemark]
|
3926
3928
|
pend = pagebuff[pagemark..-1].to_s
|
3927
3929
|
setPageBuffer(@page, pstart + ccode + "\n" + pend)
|
3928
|
-
pagemark += (ccode + "\n").length
|
3929
3930
|
end
|
3930
3931
|
end
|
3931
3932
|
|
@@ -4090,7 +4091,7 @@ class RBPDF
|
|
4090
4091
|
if unichr(chars[i]) =~ /\s/
|
4091
4092
|
lastSeparator = i
|
4092
4093
|
end
|
4093
|
-
if sum + charWidth >= wmax
|
4094
|
+
if (sum + charWidth >= wmax) or (chars[i] == 10) # 10 = "\n" = new line
|
4094
4095
|
lines += 1
|
4095
4096
|
if lastSeparator != -1
|
4096
4097
|
i = lastSeparator
|
@@ -12141,12 +12142,12 @@ public
|
|
12141
12142
|
opentagpos = @footerpos[@page]
|
12142
12143
|
end
|
12143
12144
|
end
|
12144
|
-
openHTMLTagHandler(dom, key, cell)
|
12145
|
+
dom = openHTMLTagHandler(dom, key, cell)
|
12145
12146
|
end
|
12146
12147
|
else
|
12147
12148
|
# closing tag
|
12148
12149
|
prev_numpages = @numpages
|
12149
|
-
closeHTMLTagHandler(dom, key, cell, maxbottomliney)
|
12150
|
+
dom = closeHTMLTagHandler(dom, key, cell, maxbottomliney)
|
12150
12151
|
if prev_numpages > @numpages
|
12151
12152
|
startlinepage = @page
|
12152
12153
|
end
|
@@ -12580,18 +12581,17 @@ public
|
|
12580
12581
|
# else
|
12581
12582
|
result_img = Image(tag['attribute']['src'], xpos, @y, iw, ih, '', imglink, align, false, 300, '', false, false, border, false, false, true)
|
12582
12583
|
# end
|
12583
|
-
case align
|
12584
|
-
when 'T'
|
12585
|
-
@y = prevy
|
12586
|
-
when 'M'
|
12587
|
-
@y = (@img_rb_y + prevy - (tag['fontsize'] / @k)) / 2
|
12588
|
-
when 'B'
|
12589
|
-
@y = @img_rb_y - (tag['fontsize'] / @k)
|
12590
|
-
end
|
12591
12584
|
rescue => err
|
12592
12585
|
logger.error "pdf: Image: error: #{err.message}"
|
12593
12586
|
result_img = false
|
12587
|
+
end
|
12588
|
+
case align
|
12589
|
+
when 'T'
|
12594
12590
|
@y = prevy
|
12591
|
+
when 'M'
|
12592
|
+
@y = (@img_rb_y + prevy - (tag['fontsize'] / @k)) / 2
|
12593
|
+
when 'B'
|
12594
|
+
@y = @img_rb_y - (tag['fontsize'] / @k)
|
12595
12595
|
end
|
12596
12596
|
if result_img == false
|
12597
12597
|
Write(@lasth, File::basename(img_name) + ' ', '', false, '', false, 0, false) unless img_name.nil?
|
@@ -12706,6 +12706,7 @@ public
|
|
12706
12706
|
checkPageBreak(@page_break_trigger + 1)
|
12707
12707
|
end
|
12708
12708
|
end
|
12709
|
+
dom
|
12709
12710
|
end
|
12710
12711
|
protected :openHTMLTagHandler
|
12711
12712
|
|
@@ -12932,14 +12933,15 @@ public
|
|
12932
12933
|
@transfmrk[@page] += (ccode + "\n").length
|
12933
12934
|
elsif @in_footer
|
12934
12935
|
pagemark = @footerpos[@page]
|
12936
|
+
@footerpos[@page] += (ccode + "\n").length
|
12935
12937
|
else
|
12936
12938
|
pagemark = @intmrk[@page]
|
12939
|
+
@intmrk[@page] += (ccode + "\n").length
|
12937
12940
|
end
|
12938
12941
|
pagebuff = getPageBuffer(@page)
|
12939
12942
|
pstart = pagebuff[0, pagemark]
|
12940
12943
|
pend = pagebuff[pagemark..-1]
|
12941
12944
|
setPageBuffer(@page, pstart + ccode + "\n" + pend)
|
12942
|
-
pagemark += (ccode + "\n").length
|
12943
12945
|
end
|
12944
12946
|
end
|
12945
12947
|
}
|
@@ -13055,6 +13057,7 @@ public
|
|
13055
13057
|
end
|
13056
13058
|
end
|
13057
13059
|
@tmprtl = false
|
13060
|
+
dom
|
13058
13061
|
end
|
13059
13062
|
protected :closeHTMLTagHandler
|
13060
13063
|
|
data/test/rbpdf_cell_test.rb
CHANGED
@@ -123,6 +123,27 @@ class RbpdfTest < ActiveSupport::TestCase
|
|
123
123
|
assert_equal line, 7
|
124
124
|
end
|
125
125
|
|
126
|
+
test "getStringHeight Multi Line test" do
|
127
|
+
pdf = RBPDF.new('P', 'mm', 'A4', true, "UTF-8", true)
|
128
|
+
pdf.add_page
|
129
|
+
|
130
|
+
txt = "abc\ndif\nhij"
|
131
|
+
|
132
|
+
w = 100
|
133
|
+
y1 = pdf.get_y
|
134
|
+
pdf.multi_cell(w, 0, txt)
|
135
|
+
pno = pdf.get_page
|
136
|
+
assert_equal pno, 1
|
137
|
+
y2 = pdf.get_y
|
138
|
+
h1 = y2 - y1
|
139
|
+
|
140
|
+
h2 = pdf.getStringHeight(w, txt)
|
141
|
+
assert_in_delta h1, h2, 0.01
|
142
|
+
|
143
|
+
line = pdf.get_num_lines(txt, w)
|
144
|
+
assert_equal line, 3
|
145
|
+
end
|
146
|
+
|
126
147
|
test "getStringHeight Minimum Width test 1" do
|
127
148
|
pdf = RBPDF.new('P', 'mm', 'A4', true, "UTF-8", true)
|
128
149
|
pdf.add_page
|
data/test/rbpdf_dom_test.rb
CHANGED
@@ -5,6 +5,9 @@ class RbpdfTest < ActiveSupport::TestCase
|
|
5
5
|
def getHtmlDomArray(html)
|
6
6
|
super
|
7
7
|
end
|
8
|
+
def openHTMLTagHandler(dom, key, cell)
|
9
|
+
super
|
10
|
+
end
|
8
11
|
end
|
9
12
|
|
10
13
|
test "Dom Basic" do
|
@@ -110,4 +113,30 @@ class RbpdfTest < ActiveSupport::TestCase
|
|
110
113
|
assert_equal dom[3]['value'], 'td'
|
111
114
|
assert_equal dom[3]['width'], '10'
|
112
115
|
end
|
116
|
+
|
117
|
+
test "Dom HTMLTagHandler Basic test" do
|
118
|
+
pdf = MYPDF.new
|
119
|
+
pdf.add_page
|
120
|
+
|
121
|
+
# Simple HTML
|
122
|
+
htmlcontent = '<h1>HTML Example</h1>'
|
123
|
+
dom1 = pdf.getHtmlDomArray(htmlcontent)
|
124
|
+
dom2 = pdf.openHTMLTagHandler(dom1, 1, false)
|
125
|
+
assert_equal dom1, dom2
|
126
|
+
end
|
127
|
+
|
128
|
+
test "Dom HTMLTagHandler img test" do
|
129
|
+
pdf = MYPDF.new
|
130
|
+
pdf.add_page
|
131
|
+
|
132
|
+
# Image Error HTML
|
133
|
+
htmlcontent = '<img src="' + Rails.root.to_s + '/public/ng.png" alt="test alt attribute" width="30" height="30" border="0"/>'
|
134
|
+
dom1 = pdf.getHtmlDomArray(htmlcontent)
|
135
|
+
y1 = pdf.get_y
|
136
|
+
|
137
|
+
dom2 = pdf.openHTMLTagHandler(dom1, 1, false)
|
138
|
+
y2 = pdf.get_y
|
139
|
+
assert_equal dom1, dom2
|
140
|
+
assert_equal pdf.get_image_rby - (12 / pdf.get_scale_factor) , y2
|
141
|
+
end
|
113
142
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rbpdf
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.18.
|
4
|
+
version: 1.18.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- NAITOH Jun
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-10-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|