ruby - 使用 HexaPdf 用粗体文本填充 PDF AcroForm 文本字段

标签 ruby pdf

我有一个看似简单的问题,但我找不到答案。我有一个预先存在的 pdf 表格。手动填写表单,其文本字段之一以粗体显示其值。当使用 HexaPdf 填充此字段时,文本也应以粗体显示,但以常规字体显示。

我用以下内容填充该字段

doc.acro_form.field_by_name('text1').field_value = @record.value

为了使其以粗体显示,我尝试了以下方法,但无济于事:

doc.acro_form.field_by_name('text1').set_default_appearance_string(font: 'Helvetica-Bold', font_size: 0)

这会收到错误消息“无法找到变体“none”中请求的字体“Helvetica-Bold””。

然后我尝试了:

doc.acro_form.field_by_name('text1').set_default_appearance_string(font: 'Helvetica', variant: :bold, font_size: 0)

这得到:“未知关键字:变体”。

文档配置的字体是:

{"Times"=>[:none, :bold, :italic, :bold_italic], "Helvetica"=>[:none, :bold, :italic, :bold_italic], "Courier"=>[:none , :bold, :italic, :bold_italic], "符号"=>[:无], "ZapfDingbats"=>[:无]}

因此带有变体 :bold 的 Helvetica 应该可用。

有人可以告诉我正确的语法吗?提前致谢!

最佳答案

我从 github 上的 @gettalong 得到了这个答案:

“这确实是一个问题,因为目前无法使用该方法执行此操作 - 我将在下一个版本中修复它。在此之前您可以使用以下解决方法:”

name = doc.acro_form.default_resources.add_font(doc.fonts.add('Helvetica', variant: :bold).pdf_object)
doc.acro_form.field_by_name('text1')[:DA] = "0 g /#{name} 0 Tf"

非常感谢!

关于ruby - 使用 HexaPdf 用粗体文本填充 PDF AcroForm 文本字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69266168/

相关文章:

ruby - 将 Ruby 脚本添加到 AJAX 静态网站的最简单方法

javascript - 如何向 PDF 添加 JavaScript 按钮以将数据保存到 (png) 文件?

powershell - 将 Outlook 电子邮件导出或打印为 PDF

delphi - 在 Delphi 2009 中显示 PDF 文件的最佳方式是什么

WPF转PDF

ruby - 使用嵌入文档时的 ActiveRecord 嵌套验证 : Mongoid

python - 以编程方式从 Excel 电子表格中提取数据

ruby-on-rails - Ruby on Rails & Prawn PDF - 创建客户名单

ruby - 具有不同精度的纬度和经度的浮点计算

php - 将整个 PDF 表单提交到 PHP 脚本