我在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
。
答案 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
)