使用Symfony2.3.4
我正在使用这个包生成PDF文档:SpraedPDFGeneratorBundle,这是它的主要php类(我认为):PDFGenerator.php
我设法生成它们很好但我不知道如何设置fontPath参数来生成css修改的PDF,其中也包含一些图像.这里:
///XController.php
$pdfGenerator = $this->get('spraed.pdf.generator');
$pdf = $pdfGenerator->generatePDF($postData/* ,
'UTF-8', array(<SOME_PATH_I_GUESS>) */);
Run Code Online (Sandbox Code Playgroud)
第一个参数是要输出到PDF的html数据,第二个我有点猜对了,但我不确定,第三个是fontPath.
图像的东西也是我会喜欢的提示...
有没有人曾经使用过此捆绑或类似的东西; 如果是的话,请你帮忙吗?
好吧,我找到了答案.
您要问两件事:如何添加图像以及如何添加新字体.
这很简单.假设您正在使用Twig,则需要执行以下操作:
<img src="{{ app.request.scheme ~'://' ~ app.request.httpHost ~ asset("img/MyImage.png") }}" />
Run Code Online (Sandbox Code Playgroud)
当然你也可以把它变成一个宏,所以你不要在这个地方重复自己,就像这样.
{% macro image(uri) %}
{{ app.request.scheme ~'://' ~ app.request.httpHost ~ asset(uri) }}
{% endmacro %}
Run Code Online (Sandbox Code Playgroud)
你就这样使用它
{% import '::imgurimacro.html.twig' as img %}
...
<img src="{{ img.image('img/MyImage.png') }}" />
Run Code Online (Sandbox Code Playgroud)
它应该工作.
这个有点复杂.首先确保您拥有最新的Spraed PDF Generator版本.在composer.json中:
"spraed/pdf-generator-bundle": "dev-master"
Run Code Online (Sandbox Code Playgroud)
每当您必须将字体添加到新PDF时,请执行以下操作:
$pdf = $pdfGenerator->generatePDF($postData , 'UTF-8', array('C:\Windows\Fonts\Font1.ttf', 'C:\Windows\Fonts\Font2.ttf'));
Run Code Online (Sandbox Code Playgroud)
接下来,fonts
在web
文件夹中(或者您放置资源的任何位置)创建一个文件夹(或您选择的任何名称),并在那里添加.ttf文件.
在Twig文件中,将以下内容添加为CSS样式:
@font-face {
font-family: "MyFontFamily";
src: {{ app.request.scheme ~'://' ~ app.request.httpHost ~ asset('fonts/Font1.ttf') }};
}
Run Code Online (Sandbox Code Playgroud)
现在每当你写
<p style="font-family: MyFontFamily">Hello World!</p>
Run Code Online (Sandbox Code Playgroud)
它应该打印"Hello World!" 使用pdf中的注册字体.