【问题标题】:Display unicode symbols (heart, diamond, etc.) in FPDF在 FPDF 中显示 unicode 符号(心形、菱形等)
【发布时间】:2014-11-13 20:42:15
【问题描述】:

我目前正在使用 FPDF 在 PHP 中生成 PDF。有时,这些 PDF 必须包含 unicode 图标,例如心形、菱形、黑桃等。下面是一个示例:

"This is a string ♡♡"

但是,我无法显示这些符号。我已经尝试了 mb_convert_encoding、iconv、更改字体,但它们都没有给我我需要的结果。中文、日文、韩文均无问题显示;这个问题似乎只与符号有关。

关于如何在 FPDF 中显示这些内容有什么想法吗?谢谢。

【问题讨论】:

  • 您确定您的字体包含这些字符吗?
  • 这很容易而且很有可能! tFPDF 是 FPDF 项目的一个分支,允许您在 PDF 中使用 UTF-8,请在此处查看我的答案:stackoverflow.com/a/56429391/2430549

标签: php pdf unicode fpdf


【解决方案1】:

我实际上刚刚将所有依赖于 FPDF 的代码移植到 mPDF。花了一些时间,但最终总比尝试破解一些与 FPDF 有限功能一起工作的东西要好。

感谢您的回复。

【讨论】:

  • 这并不是“FPDF 功能有限”的问题。如果您的字体不包含心形符号,则无论您使用什么软件,都不会得到预期的符号。
【解决方案2】:

我正在使用 TCPD 来生成 PDF 文件

 $UnicodeString='♡♡♡♡♡♡♡♡♡♡';
 $fileNameHere='UnicodeFile.pdf';

 $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
 $pdf->setFontSubsetting(true);
 $pdf->SetFont('dejavusans', '', 20, '', true);
 $pdf->AddPage();
 $pdf->writeHTMLCell(0, 0, '', '', $UnicodeString, 0, 1, 0, true, 'L', true);
 $pdf->Output($fileNameHere,'F');

【讨论】:

  • 谢谢你,我最终选择了 mPDF,但我相信 TCPDF 也会很好用。
  • 不客气。据我所知,mPDF 已停止开发。最后一次发布是 2013 年 12 月 31 日。我建议使用 TCPDF。它要稳定得多。 techwars.io/fight/tcpdf/mpdf
猜你喜欢
  • 1970-01-01
  • 2012-09-02
  • 1970-01-01
  • 2014-07-19
  • 1970-01-01
  • 2015-10-27
  • 2015-10-04
  • 2017-06-08
  • 1970-01-01
相关资源
最近更新 更多