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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c1933519745cfcf8ecb037bbb90abd2756ce438c
4
- data.tar.gz: 23af83ebf1ab6d77a7f64e62f5225cda74d418ed
3
+ metadata.gz: 58e305378e0bcb076298f1c3deb700869cbec74e
4
+ data.tar.gz: cbd734a213aa85690bd1d0b04359376e517221c7
5
5
  SHA512:
6
- metadata.gz: f4da9bb136d4fb89cecd8bb9ac0d3c9c617ffe0dc2110e3883b09fb43b36121cae886f2c1a14826042afb5d0997b09fdbce90a6bc06f8c73602de8b8587417a9
7
- data.tar.gz: ffaf67be7f514e66fdce7ac8ac7730627709296c00624747c27b0f0141776029faeadc581a50216779efe8ea798894370e991c17ededbd90ba43556921db52af
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
@@ -1,3 +1,3 @@
1
1
  module Rbpdf
2
- VERSION = "1.18.1"
2
+ VERSION = "1.18.2"
3
3
  end
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
 
@@ -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
@@ -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.1
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-09-15 00:00:00.000000000 Z
11
+ date: 2014-10-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler