【问题标题】:Euro symbol doesn't display in dompdf generated pdfdompdf 生成的 pdf 中不显示欧元符号
【发布时间】:2012-08-31 06:20:51
【问题描述】:

我正在使用dompdf 库来生成pdf。我需要输出一个欧元符号(€),但它只显示一个正方形。我尝试直接使用符号或代码€,我正在使用这样的字体系列:

    font-family: Arial, "Helvetica", Arial, "Liberation Sans", sans-serif;

我把它放在:

<meta charset="UTF-8">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

它在 Mac 上运行良好,但在 Linux 上却不行。

【问题讨论】:

  • 了解 a) 您使用的 dompdf 版本以及 b) 您用于欧元的特定代码会有所帮助。
  • 我面临着类似的问题。PDF 是在我的 MAC 上生成的。它不是在 windows 或 Centos 上生成的。有什么想法吗?

标签: linux utf-8 fonts dompdf


【解决方案1】:

根据您的字体系列,dompdf 将使用 Helvetica 作为相关文本的字体。目前 dompdf(最高 v0.6.0)仅支持核心 PDF 字体(Helvetica 就是其中之一)的 Windows ANSI 编码。在 Windows ANSI 中,欧元符号位于 128 位,因此您可以尝试使用 €。这与 v0.5.1 最相关,它不能很好地处理 Windows ANSI 字符集之外的字符。

从 v0.6.0 开始,dompdf 原生使用 UTF8。它还做了很多工作来确保仔细处理字符编码。这对于避免从一个字符集移动到另一个字符集时尤其重要,例如从内部 UTF8 编码到核心 PDF 字体的 Windows ANSI。

【讨论】:

  • 我正在使用最新版本的 dompdf,我正在尝试使用符号 € 和带有 & 符号 (& euro;) 的代码
  • 这对我有用,即使没有指定文档编码。您是否启用了 MBString 扩展?我现在没有办法对此进行测试,但没有它可能会导致字符编码问题。
【解决方案2】:

尝试用

替换 € 符号
&#0128;  &euro;  &#8364;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-12
    相关资源
    最近更新 更多