在PDFBundle中使用另一种字体(PHPPdf)

时间:2015-03-18 11:44:16

标签: php symfony pdf

我在Symfony2中使用PdfBundle(PHPPdf)并想使用其他字体。 我想将font.xml文件添加到app文件夹中的config.yml:

ps_pdf:
    fonts_file: "@FoundationBundle/Resources/config/fonts.xml"

但它总是说File "@FoundationBundle/Resources/config/fonts.xml" doesn't exist or is unreadable我尝试了不同的变化,但我找不到解决方案。我如何加载fonts.xml文件?

编辑:我的fonts.xml路径为/src/FoundationBundle/Resources/config/fonts.xml,因此我想将其加载到/app/config/config.yml

2 个答案:

答案 0 :(得分:0)

我注意到名为Recources的目录中的拼写错误。它应该是Resources

除此之外,如果我没记错的话,这个包不支持“包语法”。请尝试使用此代码:

ps_pdf:
    fonts_file: "%kernel_root%/Resources/config/fonts.xml"

fonts.xml放入/path/to/your/project/app/Resources/config/

答案 1 :(得分:0)

我使用以下语法在我的Foundation Bundle中加载xml文件(添加app/config/config.yml中的行):

ps_pdf:
    fonts_file: "%kernel.root_dir%/../src/FoundationBundle/Resources/config/fonts.xml"

对我来说重要的是我需要清除symfony中的缓存,以便它与php app/console cache:clear --env=dev一起使用。我还需要在新的/vendor/psliwa/php-pdf/lib/PHPPdf/Resourced/config/fonts.xml配置中复制fonts.xml中的fonts.xml内容。

下一个问题是在我的Bundle中的font.xml中设置变量。在这里,我可以再次使用Bundle语法。所以我在字体XML中设置calibri这样的字体:

<font name="calibri">
    <normal src="%FoundationBundle:public/fonts/calibri.ttf%" />
    <bold src="%FoundationBundle:public/fonts/calibrib.ttf%" />
    <italic src="%FoundationBundle:public/fonts/calibrii.ttf%" />
    <bold-italic src="%FoundationBundle:public/fonts/calibribi.ttf%" />
</font>

现在,该字体位于Resources/public/fonts下的Foundation Bundle中。我保存在文件夹Resources/public/fonts中的Foundation Bundle中的字体。

更改font.xml后,还需要清除缓存。同样在开发者环境中(php app/console cache:clear --env=dev