使用CSS和图像生成PDF

时间:2014-05-03 16:38:04

标签: css image pdf

使用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>) */);

第一个参数是要输出到PDF的html数据,第二个我有点猜对了,但我不确定,第三个是fontPath。

图像的东西也是我喜欢的提示......

有没有人曾经使用过这个捆绑包或类似的东西;如果是的话,请你帮帮我吗?

1 个答案:

答案 0 :(得分:5)

好吧,我找到了答案。

您要问两件事:如何添加图片如何添加新字体

添加图像

这很简单。假设您正在使用Twig,则需要执行以下操作:

<img src="{{ app.request.scheme ~'://' ~ app.request.httpHost ~ asset("img/MyImage.png") }}" />

当然你也可以把它变成一个宏,所以你不要在这个地方重复自己,就像这样。

{% macro image(uri) %}
{{ app.request.scheme ~'://' ~ app.request.httpHost ~ asset(uri) }}
{% endmacro %}

你就像这样使用它

{% import '::imgurimacro.html.twig' as img %}
...
<img src="{{ img.image('img/MyImage.png') }}" />

它应该有用。

添加字体

这个有点复杂。首先确保您拥有最新的Spraed PDF Generator版本。在composer.json中:

"spraed/pdf-generator-bundle": "dev-master"

每当您必须将字体添加到新PDF时,请执行以下操作:

$pdf = $pdfGenerator->generatePDF($postData , 'UTF-8', array('C:\Windows\Fonts\Font1.ttf', 'C:\Windows\Fonts\Font2.ttf'));

接下来,在fonts文件夹中(或者您放置资源的任何位置)创建一个web文件夹(或您选择的任何名称),然后在其中添加.ttf文件。< / p>

在Twig文件中,将以下内容添加为CSS样式:

@font-face {
    font-family: "MyFontFamily";
    src: {{ app.request.scheme ~'://' ~ app.request.httpHost ~ asset('fonts/Font1.ttf') }};
}

现在每当你写

<p style="font-family: MyFontFamily">Hello World!</p>

它应该打印&#34; Hello World!&#34;使用pdf中的注册字体。