我有一个看似简单的问题,但我找不到答案。我有一个预先存在的 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/