convert unicode to zawgyi for prawn documents - prawn text
This commit is contained in:
28
config/initializers/prawn_text.rb
Normal file
28
config/initializers/prawn_text.rb
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
require 'myanmar-tools'
|
||||||
|
require 'rabbit'
|
||||||
|
Prawn::Text.module_eval do
|
||||||
|
|
||||||
|
def text(string, options = {})
|
||||||
|
return false if string.nil?
|
||||||
|
detector = MyanmarTools::ZawgyiDetector.new
|
||||||
|
score = detector.get_zawgyi_probability(string)
|
||||||
|
if score > 0 && score < 0.05
|
||||||
|
rabbit = Rabbit::Converter.new
|
||||||
|
string = rabbit.uni2zg(string) # returns zg strings "မဂၤလာပါ"
|
||||||
|
end
|
||||||
|
# we modify the options. don't change the user's hash
|
||||||
|
options = options.dup
|
||||||
|
|
||||||
|
p = options[:inline_format]
|
||||||
|
if p
|
||||||
|
p = [] unless p.is_a?(Array)
|
||||||
|
options.delete(:inline_format)
|
||||||
|
array = text_formatter.format(string, *p)
|
||||||
|
else
|
||||||
|
array = [{ text: string }]
|
||||||
|
end
|
||||||
|
|
||||||
|
formatted_text(array, options)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
Reference in New Issue
Block a user