rbpdf 1.18.1 → 1.18.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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