我将用阿拉伯语创建一个pdf报告,但这些字母是以相反的顺序分开的,我使用以下代码生成一个pdf文件
class InstitutesPdf < Prawn::Document
def initialize(institute)
super()
font(Rails.root.join("app/assets/fonts/arial.ttf"))
@institute = institute
text "Institute ID : #{@institute.id}"
move_down(30)
text "Institute name : #{@institute.name.mb_chars.to_s}"
end
end
当我将最后一行更改为
时text "Institute name : #{@institute.name.mb_chars.reverse.to_s}"
单词字母按正确顺序显示但仍然分开
我使用rails 4和prawn版本'1.1.0'
答案 0 :(得分:1)
我开发了一个宝石来解决这个问题,特别是用于被Sinan重构为这个项目的虾:
https://github.com/staii/arabic-letter-connector
所以在控制台中:
gem install arabic-letter-connector
然后在代码中:
require 'prawn'
require 'arabic-letter-connector'
Prawn::Document.generate("arabic.pdf") do
text_direction :rtl
font("/path/to/arabic/font.ttf") do # For example: http://www.amirifont.org/
text "مرحبا يا العالم".connect_arabic_letters
end
end
由于您有混合文本而可能不想使用:rtl,解决方法是在打印到pdf之前自行反转字符串。
答案 1 :(得分:0)
我有同样的问题,我试图通过RMagick打印阿拉伯语单词
我是通过使用connect_arabic_letters连接它们来完成的,然后使用.reverse来反转字符(你可能不必这样做)
仅供参考:如果单词被装饰(塔什凯尔/哈拉卡特),这种方法效果不佳