Ruby - 如何在 Prawn 中使用不同的字体?

2024-04-16

我有一个小型 Rub​​y 程序,我使用 Prawn 将一些文本打印到 PDF 中,但一小部分文本是非英语字符。 (其中一些文本是中文,一些是希腊文,等等)。当我运行我的程序时,我当然会收到一条错误消息Your document includes text that's not compatible with the Windows-1252 character set. (Prawn::Errors::IncompatibleStringEncoding) If you need full UTF-8 support, use TTF fonts instead of PDF's built-in fonts。我知道我需要使用 TTF 字体,但我该怎么做呢?我需要从网上安装吗?如果是这样,我会将其保存到哪里?我知道这可能是一个愚蠢的问题,但我是 Ruby 和 Prawn 的新手。谢谢!


ttf 是一种常见格式,您可以在以下位置下载字体谷歌字体 https://www.google.com/fonts例如,将字体放在项目中的某个目录中,例如在/assets/fonts/

然后您可以定义一个新的字体系列,如下所示:

Prawn::Document.generate("output.pdf") do
  font_families.update("Arial" => {
    :normal => "/assets/fonts/Arial.ttf",
    :italic => "/assets/fonts/Arial Italic.ttf",
  })
  font "Arial"
end

然后您可以在整个文档中使用该字体。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ruby - 如何在 Prawn 中使用不同的字体? 的相关文章

随机推荐

  • 最容易实现的 Voronoi 图算法? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 实现 Voronoi 图的简单算法有哪些 我找不到任何专门以伪形式出现的算法 请分享一些 Vorono
  • 新值 EditText 未显示,没有任何错误

    编辑 顺便说一句 如果我在范围内硬编码 edt4 setText any text 它会显示该值 编辑2 尝试重建 清理项目 这可能是 settext 方法中的错误 看起来我做得对 当我用 settext 查看其他代码时 编辑3 start
  • 编译为 WebAssembly 时无法使 image::load_from_memory() 工作

    我正在尝试使用 Rust 将图像从 JavaScript 加载到 WebAssembly图像箱 https crates io crates image 我有以下 Rust 代码 extern crate image extern crat
  • 如何解决 Eclipse 中未解决的包含:

    我在 eclipse 中构建了一个简单的程序 include
  • SimpleDateFormat 在模拟器上工作正常,但在设备上错误

    我使用 SimpleDateFormat 从日期中提取相关信息 它在模拟器中运行得很好 但是在设备上测试时它无法正确格式化 Logcat 在模拟器中正确显示 但在手机上再次显示错误 private String getSectionHead
  • 在生产中使用 Postgres 配置 Rails

    我一直在谷歌上搜索有关如何将 Ruby on Rails 与 PostgreSQL 结合使用的教程 那里有一些非常好的信息 但几乎每个指南都集中在如何配置 Rails 以在开发和测试环境中使用 Postgres 他们会警告您不要将这些配置用
  • 当项目中有多个文件时,如何使用 Grunt 配置 LESS 的 sourceMap?

    我有多个 less 文件 我希望将它们处理为匹配的 css 每个文件的 sourceMaps 都与源位于同一文件夹中 这有多难 我用 less 直接执行此操作没有问题 但无法弄清楚如何在 grunt contrib less 中执行此操作
  • RESTful 设计:分页集合

    我正在设计一个 REST api 需要从服务器端强制执行分页 每个 x 翻阅任何资源集合的正确方法是什么 选项1 GET resource page
  • Swift @escaping 和完成处理程序

    我试图更准确地理解 Swift 的 闭包 But escaping and Completion Handler太难理解了 我查了很多Swift的帖子和官方文档 但感觉还是不够 这是官方文档的代码示例 var completionHandl
  • 如何向 Google 地图上的信息窗口添加组合框和按钮?

    目前 我正在开发一个应用程序 其中我必须在地图本身的单击事件上显示一个信息窗口 我的问题是我想在此信息窗口上显示一个按钮和一个组合框 我怎样才能做到这一点 您需要添加自定义UIView给你的MK地图视图并抑制默认值MK注释标注视图 您的定制
  • 在 Chrome 中无需右键单击即可检查元素

    When I inspect html css on a website I usually open the chrome developers panel ctrl shift I right click context menu in
  • 如何通过着色器管道传递顶点颜色?

    我试图通过顶点 几何和片段着色器传递顶点颜色 glBegin GL POINTS glVertex3f 2 0f 0 0f 0 0 glColor3f 0 0 1 0 0 0 glVertex3f 2 0f 0 0f 0 0 glColor
  • jQuery while 循环不等待动画

    我有一个 jQuery 函数可以执行以下操作 clone 在一个物体上 然后 insertAfter and a slideDown 在克隆的对象上 整个函数被包装在一个while环形 我将尽可能简短并展示一个通用示例 while stat
  • 将函数应用于不包括按值嵌套的数据表子集

    我有一个与此相关的问题 我之前曾问过 从 foreach 循环赋值 https stackoverflow com questions 18767016 assignment of a value from a foreach loop 1
  • Laravel 5 调整图像大小

    我使用 Laravel 5 并有一个上传图像的表单 保存文件时 我在控制器方法中获取图像并将其放入目录中 if request gt hasFile picture destinationPath uploads filename imag
  • jQuery-tokeninput 失败:“term”未定义?

    在我的 Rails 应用程序中 我尝试使用 jquery tokeninput 我一切正常 json 响应和所有 但当在标记化字段中输入任何内容时 脚本会出错 并抱怨 TypeError term is undefined gt retur
  • 如何阻止 Maven 覆盖资源文件

    我有默认的 Maven 结构 main java resources webapp 我看到每个mvn compile复制资源 即使它们没有改变 我应该怎么做才能仅复制更改的文件
  • 无法以管理员身份运行

    我必须执行ewfmgr exe仅当以管理员身份打开命令窗口时才能执行 如果我去Start gt type cmd exe gt Right click gt Run as Administrator然后出现以下命令提示符窗口 在这个窗口中
  • SQL 查询查找具有最匹配关键字的行

    我真的不擅长 SQL 我想知道我可以运行什么 SQL 来解决下面的问题 我怀疑这是一个 NP 完全问题 但我可以接受查询需要很长时间才能在大型数据集上运行因为这将作为后台任务完成 首选标准 SQL 语句 但如果需要存储过程 那就这样吧 SQ
  • Ruby - 如何在 Prawn 中使用不同的字体?

    我有一个小型 Rub y 程序 我使用 Prawn 将一些文本打印到 PDF 中 但一小部分文本是非英语字符 其中一些文本是中文 一些是希腊文 等等 当我运行我的程序时 我当然会收到一条错误消息Your document includes