使用 PDF 块工具呈现 PDF 模板时不支持字体

Fonts not supported while rendering PDF templates using PDF blocks tool

我正在使用 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());
        }

但是积木无法正常工作,我不确定它出了什么问题。 任何帮助将不胜感激

谢谢 吉特什

I have the fonts installed in my server and I can see it in usr/share/fonts folder, all the files have .ttf extension in the folder

您必须使字体可用于 PDFlib。请参阅 PDFlib 9.1 教程,第 6.4.4 章 "Searching for Fonts" 以及第 3.1.4 章 "Resource Configuration and File Search"。

简而言之: PDFlib 在您使用选项 "SearchPath" 指定的 SearchPath 目录 (y/ies) 中搜索字体文件。 /usr/share/fonts 不是 PDFlib 搜索字体文件的默认目录。

当您希望 PDFlib 在此目录中搜索时,您应该将此目录添加为 SearchPath 目录

$p->set_option("searchpath={{/usr/share/fonts} {/maybe/some/other/dir}}");

另请参阅 PDFlib perl 示例(如 starter_block.pl),它们也演示了搜索路径。