我将用阿拉伯语创建一个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'

最佳答案

我开发了一个gem来解决这个问题,特别是用于由Sinan重构到这个项目中的prawn:
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之前自己反转字符串。

关于ruby-on-rails - Prawn gem 是否支持阿拉伯语?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24651908/

10-15 13:47