【问题标题】:FPDF calibri not showing euro signFPDF calibri 不显示欧元符号
【发布时间】:2013-06-30 14:26:59
【问题描述】:

我目前正在使用 FPDF 生成 PDF 报价。我想得到以下输出:

520 欧元

通过这样做:

$pdf->Cell(20, 10, chr(128).' 520', 1, 0);

但 fpdf 只显示一个空白区域。我正在使用 Calibri 作为字体,我这样做是为了加载它:

$pdf->AddFont('Calibri', '', 'calibri.php');

但无济于事。有趣的是,chr 123 到 127 和 129 等工作。欧元符号是 only 没有出现的符号。有人知道怎么做吗?

更新:当我尝试时

$pdf->Cell(20, 10, utf8_decode('€ 520'), 1, 0);

我得到一个问号。它不应该是无效字体,因为我在 calibri.php 中发现了 chr(128)。

【问题讨论】:

    标签: php character-encoding special-characters fpdf


    【解决方案1】:

    我通过删除“128 /.notdef”更改了 calibri.php 字体。不知何故,在那之后它起作用了......

    【讨论】:

      【解决方案2】:

      尝试使用iconv

      $euro = iconv('utf-8', 'cp1252', '€');
      $pdf->Cell(20, 10, $euro.' 520'), 1, 0);
      

      cp1252(西欧) php 中的 header() 不会在文件 pdf 中打印您的请求,而只是在页面中。

      【讨论】:

      • 您应该扩展您的答案以解释您在做什么以及为什么它可以解决 OP 的问题。
      【解决方案3】:

      这个也可以工作,可以用于包含多个€的字符串:

      $this->Cell(140, 4, mb_convert_encoding($string, "Windows-1252", "UTF-8"), $border, 0, "L");
      

      HTH

      【讨论】:

      • 请尝试解释您所做的以及为什么它解决了提问者的问题。这将有助于下一个偶然发现您的解决方案的人。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-12
      • 1970-01-01
      • 1970-01-01
      • 2012-08-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多