复选框渲染不一致

时间:2015-12-02 11:39:07

标签: pdflib

我正在使用PDFlib v8来创建带有复选框的页面 - 在使用unicode文本显示不成功之后✓作为文本行或textFlow中的检查我选择创建支票作为复选框字段。

然而,检查显示默认情况下似乎使用了Dingbat字体 - 在预览中查看MacOS上的页面检查非常窄而且很薄但是在正确的x,y中 - 但是在Acrobat中,检查被剪裁并向右偏移10pts。检查字符更大胆但部分隐藏 -

作为最后的手段,如果没有更好的方法来控制它,我将创建一个PDF或PNG支票并将其放入...

1 个答案:

答案 0 :(得分:0)

好吧,在文本中创建复选框很简单,你只需要关注几个主题:

  • 用于复选框字形使用Unicode 0x2611等(see Unicode U+26xx Codepage)或仅用于检查Unicode 0x2713等(see Unicode U+2700 Codepage)等。
  • 使用包含所需字形的字体。 (例如,Free DejaVu Sans包含所提到的字形)使用编码" unicode"加载此字体。当您必须使用没有此字形的字体时,您可以使用PDFlib中的fallbackfont功能来配置其他字体以选择缺少的字形。 (参见PDFlib 8教程,第5.4.6章和第34章;后备字体和#34;)
  • 通过应用unicode值或使用字符引用来解决PDFlib中的字形(如& x2711;)

以下简单代码,创建一个只包含一行文本的页面,其中包含复选框以及检查。复选框通过字符引用进行寻址。 (参见PDFlib 8教程,第4.5.2章和第34章;字符引用")

PDF_begin_page_ext(p, a4_width, a4_height, "");
PDF_fit_textline(p, "Hello ☑ ✓", 0, 50, 700,
   "fontname={DejaVuSans} encoding=unicode fontsize=20 charref textformat=utf8");
PDF_end_page_ext(p, "");

enter image description here

  

我选择创建支票作为复选框字段

如果您不想使用互动元素,我建议您避免这种情况。交互式元素在各种PDF查看器中显示不同。有些观众会忽略它们。因此对于静态文本,请使用文本。

享受!