我们使用PDFlib(不确定确切的版本,应该是最近版本)并且我试图使用BCW Code 128 3(非A,B或C,但标准)使用我们所拥有的相同公式显示条形码在一个旧的Crystal Reports 8.0公式(正确显示)中,它以字符#205开头,以字符#206结束。
问题是条形码根本没有出现,但是当我使用默认字体设置到另一个另一个Textflow字段时,字符串也不显示,所以它可能是一些转义问题或类似的东西。我已经尝试过改变" escapesequence"和" charref"价值无济于事。
条形码将显示(现在它已设置为Unicode)标准字符,例如" 111111111",但是当像chr(205)这样的字符显示时,它什么都不显示。
有什么想法吗?
谢谢!
$p = new PDFlib();
$p->set_option("errorpolicy=return");
$p->set_option("stringformat=utf8");
$p->begin_document("", "");
$doc = $p->open_pdi_document("/usr/local/PDFlib/templates/CertifiedMail.pdf", "");
$page = $p->open_pdi_page($doc, 1, "");
if ($page == 0) throw new Exception("Error: " . $p->get_errmsg());
$p->begin_page_ext(0, 0, "width=letter.width height=letter.height");
$p->fit_pdi_page($page, 0, 0, "");
$sText = chr(205).chr(103).chr(122).chr(232).chr(38).chr(96).chr(42).chr(232).chr(108).chr(115).chr(76).chr(206);
$p->fill_textblock($page, "sReturnAddress", $sText, "encoding winansi");
$p->fill_textblock($page, "uniBarcode", $sText, "encoding unicode");
$p->close_pdi_page($page);
$p->end_page_ext("");
$p->end_document("");
$buf = $p->get_buffer();
$len = strlen($buf);
header("Content-type: application/pdf");
header("Content-Length: $len");
header("Content-Disposition: inline; filename=font_resource.pdf");
print $buf;
答案 0 :(得分:0)
我们使用PDFlib(不确定确切的版本,应该是最近的)
您可以通过检查phpinfo()输出来确定这一点。
我建议嵌入字体,这种字体总是推荐用于自定义字体,比如条形码字体。 (否则必须在您查看PDF的系统上安装该字体)。在fill_textblock()选项列表中使用“embedding”选项。否则在load_font()选项列表中。
潜在的附加问题,当你的代码是符号字体时,你有 使用编码“ builtin ”加载字体。然后你必须通过代码点解决字形,而不是通过Unicode字符串。有关更多背景信息,请参阅PDFlib 9教程,第5.4.2章“选择符号字体的编码”和5.4.3“示例:从Wingdings符号字体中选择字形”。
我相信,对于更详细的帮助,来自PDFlib的人会给你一个适当的帮助。然后,您还可以分享您的资源等。http://www.pdflib.com/licensing-support/opening-a-support-case/