|
|
|
@ -247,10 +247,30 @@ module Submissions
|
|
|
|
cell_width = area['cell_w'] * width
|
|
|
|
cell_width = area['cell_w'] * width
|
|
|
|
|
|
|
|
|
|
|
|
TextUtils.maybe_rtl_reverse(value).chars.each_with_index do |char, index|
|
|
|
|
TextUtils.maybe_rtl_reverse(value).chars.each_with_index do |char, index|
|
|
|
|
|
|
|
|
next if char.blank?
|
|
|
|
|
|
|
|
|
|
|
|
text = HexaPDF::Layout::TextFragment.create(char, font: pdf.fonts.add(FONT_NAME),
|
|
|
|
text = HexaPDF::Layout::TextFragment.create(char, font: pdf.fonts.add(FONT_NAME),
|
|
|
|
font_size:)
|
|
|
|
font_size:)
|
|
|
|
|
|
|
|
|
|
|
|
cell_layouter.fit([text], cell_width, area['h'] * height)
|
|
|
|
line_height = layouter.fit([text], cell_width, height).lines.first.height
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if preferences_font_size.blank? && line_height > (area['h'] * height)
|
|
|
|
|
|
|
|
text = HexaPDF::Layout::TextFragment.create(char,
|
|
|
|
|
|
|
|
font: pdf.fonts.add(FONT_NAME),
|
|
|
|
|
|
|
|
font_size: (font_size / 1.4).to_i)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
line_height = layouter.fit([text], cell_width, height).lines.first.height
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if preferences_font_size.blank? && line_height > (area['h'] * height)
|
|
|
|
|
|
|
|
text = HexaPDF::Layout::TextFragment.create(char,
|
|
|
|
|
|
|
|
font: pdf.fonts.add(FONT_NAME),
|
|
|
|
|
|
|
|
font_size: (font_size / 1.9).to_i)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
line_height = layouter.fit([text], cell_width, height).lines.first.height
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cell_layouter.fit([text], cell_width, [line_height, area['h'] * height].max)
|
|
|
|
.draw(canvas, ((area['x'] * width) + (cell_width * index)),
|
|
|
|
.draw(canvas, ((area['x'] * width) + (cell_width * index)),
|
|
|
|
height - (area['y'] * height))
|
|
|
|
height - (area['y'] * height))
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|