我正在使用Pdflib模块将内容呈现为PDF模板,我正在使用PDF块插件。 我创建了PDF块,并添加了字体,如Arial,Calibri等; 但渲染时显示错误
Warning: Font 'Arial' with encoding 'unicode': Font file (AFM, PFM, TTF, OTF etc.) or host font not found
我的服务器中安装了字体,我可以在usr / share / fonts文件夹中看到它,所有文件在文件夹中都有.ttf扩展名。 我使用以下代码来呈现数据
if ($p->fill_textblock($page, $elem, $data->{$elem},"encoding=unicode") == -1) {
printf ("Warning: %s\n", $p->get_errmsg());
}
如果我使用Perl代码中的字体,它可以正常工作
my $font = 'Arial';
my $text_optlist ="font=".$font." encoding=unicode";
foreach my $elem(keys %{$data}){
if ($p->fill_textblock($page, $elem, $data->{$elem},$text_optlist) == -1) {
printf ("Warning: %s\n", $p->get_errmsg());
}
但是这些块不起作用,我不确定它有什么问题。 任何帮助将不胜感激
由于 Jitesh
答案 0 :(得分:2)
我的服务器中安装了字体,我可以在usr / share / fonts文件夹中看到它,所有文件在文件夹中都有.ttf扩展名
您必须使字体可用于PDFlib。请参阅PDFlib 9.1教程,第6.4.4章和第34页;搜索字体"以及3.1.4和#34;资源配置和文件搜索"。
用几句话说: PDFlib搜索您使用选项" SearchPath"指定的SearchPath director(y / ies)中的字体文件。 / usr / share / fonts不是PDFlib搜索字体文件的默认目录。
如果希望PDFlib在此目录中搜索,则应将此目录添加为SearchPath目录
$p->set_option("searchpath={{/usr/share/fonts} {/maybe/some/other/dir}}");
另请参阅PDFlib perl示例(如starter_block.pl),它也演示了Searchpath。