如何逐步使DOMPDF支持Unicode字体?

4
我使用了DOMPDF库,现在遇到了关于unicode语言内容的问题。我发现了这个dompdf帮助,但我不理解其中的内容。请问有人能详细讲解吗?谢谢。

可能是DOMPDF Cyrillic 字符问题的重复问题。 - hakre
5个回答

10
  1. 启用 mbstring 扩展
  2. 找到支持目标语言的字符的 .ttf 格式字体
  3. 为 DOMPDF 生成 .afm 文件:
    1. 使用命令行,进入包含 load_font.php 的目录,然后运行 php load_font.php 字体名称 /路径/到/字体.ttf
    2. 使用在线工具,填写表单并下载它给你的 zip 文件。将该 zip 文件中的文件复制到 dompdf/lib/fonts 中。如果您之前已经这样做过,请添加相关行到 dompdf_font_family_cache,否则只需将 dompdf_font_family_cache.sample 重命名为 dompdf_font_family_cache
  4. 通过确保以下行存在来启用DOMPDF的Unicode模式:

    define("DOMPDF_UNICODE_ENABLED", true);
    

    该设置位于dompdf_config.inc.php中。 如果读取的是false而不是true,请更改它。


1
我收到了以下信息: 无法找到 ttf2afm / ttf2pt1 可执行文件(检查了 /home/piseth/dev/example/pdf_php/lib/ttf2ufm/ttf2ufm-src/ttf2pt1)。 - Piseth Sok
看起来你需要安装tt2afm或tt2pt1。请尝试访问http://ttf2pt1.sourceforge.net/。 - Ryan McCue
我尝试了您的指示,但它没有起作用。我在另一个主题中读到,我应该在print.tpl中添加关于字体族的CSS,然后它确实起作用了。 - deem
我按照上述指示操作了,但对我没有用。 - Mr. Tomar
1
当我从包含缅甸语的HTML生成PDF表单时(நான் என் முதலாளி வீட்டில் ஜன்னல்கள் வெளிப்புறம் சுத்தம் செய்ய தேவையில்லை என்று புரிந்துகொள்ளுங்கள்。)然后在PDF中显示为“?” - Mr. Tomar
有没有可能使用dompdf显示泰米尔语内容。我已经在codeigniter中使用了dompdf并尝试显示泰米尔语内容,但它显示1.??? ????? ?????? ???????。有人可以帮助我解决这个问题吗? - Vinoth Kumar

3
这方面有一个维基页面可以参考:wiki page
下一个测试版(0.6 beta 3)即将发布,它有一个字体安装程序,不需要命令行(也不需要编译)。您可以通过检出SVN trunk来使用它。此测试版还支持@font-face

SVN trunk无法正常工作。我已经将def("DOMPDF_UNICODE_ENABLED", true);进行了更改,但仍然无法正常工作。 - Piseth Sok
@user970587 如果您能提供您尝试渲染的代码样本(以及更多关于您尝试过的细节),那将会很有帮助。 - BrianS

1

从0.7版本开始,dompdf默认支持并启用了unicode。(因此无需配置)。

不是所有的dompdf字体都支持unicode。我成功地使用了font-family: DejaVu Sans

要安装自定义字体或了解更多信息,您可以阅读官方unicode how to


1

下载load_font.php并将其放置在项目根目录中。

查看load_font.php

添加$fontDir = "storage/fonts";

这将显示字体的添加位置。

在例如PREETI的网站上下载您的字体并将其放置在项目根目录中。

在命令行中运行php load_font.php PREETI PREETI.ttf

然后您的字体将被安装到storage/fonts目录中。

现在转到PDF文件并添加内容。

<style>
    body {
        font-family: PREETI;
        color: #1c2221;
    }
</style>

在命令行中运行php load_font.php PREETI PREETI.ttf=>我该如何在浏览器或php程序中运行此命令...我想在网站中使用,请帮忙...命令行是用于Windows的吗?..我希望安装到网站上。 - user1526780

-1

尝试使用此推荐的DOMPDF方法来操作您的代码。 这是一个启用DOMPDF Unicode支持的指南。 为确保最大兼容性,您应该遵循以下所有步骤。点击获取更多详细信息。 确保启用了MBString PHP扩展 安装dompdf 0.6.0或更高版本 配置dompdf以支持Unicode 将支持您字符的字体加载到dompdf中 创建兼容的HTML文档 请查看链接以获取更多信息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接