我使用dompdf通过php将html页面保存为pdf。我在我的html页面(实际上是php页面)中使用波斯语字符,但是当我试图将其保存为pdf时,导出只是看起来像'?????' :(。我搜索了所有的网,我在“dompdf_config.inc.php”或“dompdf_config.custom.inc.php”文件中找到了unicode字符https://github.com/dompdf/dompdf/wiki/UnicodeHowTo#configure-dompdf-for-unicode-support的配置。但问题是我找不到这样的文件我所有的dompdf文件夹和我的所有文件系统。请有人告诉我它在哪里或我必须做什么。还有一点是我必须使用dompdf,因为它具有出色的CSS兼容性。谢谢。 这是出口。 http://i.stack.imgur.com/nYAzW.png 这是我的代码。
require("dompdf/autoload.inc.php");
use Dompdf\Dompdf;
$dompdf = new Dompdf();
$dompdf->loadHtml("<html><head>
<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\">
<link rel=\"stylesheet\" type=\"text/css\" href=\"styles/scorestyle.css\">
</head>
<body><div>
<div id=\"showscorediv\"><table><tbody><tr class=\"scoresubject\"><th colspan=\"2\">کارنامه ارزیابی</th></tr><tr class=\"scorecategory\"><th>شاخص ها</th><th>امیتاز ها</th></tr><tr><td><span class=\"level_0\">شاخص های کیفی</span></td><td class=\"scoretd\">62</td></tr><tr><td><span class=\"level_1\">شاخص های مرتبط با تیم کاری</span></td><td class=\"scoretd\">10</td></tr><tr><td><span class=\"level_1\">شاخص های مرتبط با محصول</span></td><td class=\"scoretd\">28</td></tr><tr><td><span class=\"level_1\">شاخص های مرتبط با بازار</span></td><td class=\"scoretd\">24</td></tr><tr><td><span class=\"level_0\">شاخص های کمی</span></td><td class=\"scoretd\">60</td></tr><tr><td><span class=\"level_1\">شاخص های تولیدی</span></td><td class=\"scoretd\">20</td></tr><tr><td><span class=\"level_1\">شاخص های درآمدی</span></td><td class=\"scoretd\">14</td></tr><tr><td><span class=\"level_1\">شاخص های هزینه ای</span></td><td class=\"scoretd\">26</td></tr><tr class=\"scoresubject\"><th>امتیاز کل</th><th>122</th></tr></tbody></table>
</div>
</div></body></html>");
$dompdf->setPaper('A4', 'landscape');
$dompdf->render();
$dompdf->stream();
您似乎使用的是dompdf 0.7.0,它不再使用dompdf_config.inc.php配置文件。此版本始终启用Unicode支持。
要显示示例代码中使用的字符,您需要确保:
$dompdf->set_option('option', 'value');
设置它们(其中选项是tempDir
,fontDir
或fontCache
)。仅供参考,您不能将TTF / UFM放在字体目录中。 dompdf必须记录有关字体的信息才能使用它。此外,无论如何,AFM指标文件在这种情况下都不起作用,因为它表示字体上的Windows ANSI编码。 Windows ANSI编码不支持示例中的字符。 Dompdf使用UFM指标格式进行Unicode支持。
0.7.0之前不再包含先前版本的dompdf中包含的实用程序。只要您满足使用@font-face
声明的要求,您就不需要任何外部实用程序。但是,如果需要,您可以在dompdf-utils project中找到兼容版本的load_font.php脚本。
由于您使用的是0.7.0(刚刚发布),因此Internet上的大量信息可能已过时,因此您可能需要了解如何使用它:
最后,dompdf包含一个可以支持你的角色的字体(DejaVu)。尝试将以下内容添加到样式表中,以便在自定义字体不起作用时进行后备:
* { font-family: BZar_0, DejaVu Sans, sans-serif; }
要设置任何DOMPDF选项,您必须定义命名常量。所有可用选项都可以在这里找到:http://pxd.me/dompdf/www/setup.php
要启用波斯语字符,您基本上必须启用unicode支持。
define("DOMPDF_UNICODE_ENABLED", true);
您可能还想设置DOMPDF_FONT_DIR
和DOMPDF_DEFAULT_FONT
,以确保您使用的字体支持unicode字符。
我刚刚添加了来自dompdf 0.6.2版本的dompdf_config.inc.php和dompdf_config.custom.inc.php文件,除了将autoload.inc.php和functions.inc.php的dir包含到我的dompdf 0.8。*之外它还可以。