Cat*_*lin 8 pdf ruby-on-rails prawn
我正在尝试做的是使用Prawn生成PDF,同时具有一些特定于语言的字符.
结果我收到以下错误:
raise Prawn::Errors::IncompatibleStringEncoding,
"Your document includes text that's not compatible with the Windows-1252 character set.\n" \
"If you need full UTF-8 support, use TTF fonts instead of PDF's built-in fonts\n."
Run Code Online (Sandbox Code Playgroud)
所以我尝试通过这样做来改变字体:
# app/models/prawn/change_font_decorator.rb
Prawn::Document.generate("output.pdf") do
font_families.update("Arial" => {
:normal => Rails.root.join("app/assets/fonts/OpenSans-Regular.ttf"),
:italic => Rails.root.join("app/assets/fonts/OpenSans-Regular.ttf"),
:bold => Rails.root.join("app/assets/fonts/OpenSans-Regular.ttf"),
:bold_italic => Rails.root.join("app/assets/fonts/OpenSans-Regular.ttf")
})
font "Arial"
end
Run Code Online (Sandbox Code Playgroud)
然而,我在尝试生成PDF文件时遇到了同样的错误.
关于如何解决这个问题的任何想法?
Jam*_*aly 22
所述对虾手册是一个很好的参考,并且包括关于字体用法部分."外部字体"部分与您的问题特别相关.
这是一个应该有效的基本案例,虽然它不支持粗体和斜体:
Prawn::Document.generate("output.pdf") do
font Rails.root.join("app/assets/fonts/OpenSans-Regular.ttf")
text "Euro €"
end
Run Code Online (Sandbox Code Playgroud)
要使用粗体和斜体,最好注册与标准PDF字体之一不冲突的字体系列:
Prawn::Document.generate("output.pdf") do
font_families.update("OpenSans" => {
:normal => Rails.root.join("app/assets/fonts/OpenSans-Regular.ttf"),
:italic => Rails.root.join("app/assets/fonts/OpenSans-Regular.ttf"),
:bold => Rails.root.join("app/assets/fonts/OpenSans-Regular.ttf"),
:bold_italic => Rails.root.join("app/assets/fonts/OpenSans-Regular.ttf")
})
font "OpenSans"
text "Euro €"
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6023 次 |
| 最近记录: |