使用 CSS 和图像生成 PDF

2023-12-24

使用Symfony2.3.​​4

我正在使用此捆绑包生成 PDF 文档:SpraedPDFGenerator捆绑包 https://github.com/stedekay/SpraedPDFGeneratorBundle这是它的主要 php 类(我认为):PDF生成器.php https://github.com/stedekay/SpraedPDFGeneratorBundle/blob/master/PDFGenerator/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。

图像问题也是我希望得到的提示......

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


好吧我找到了答案。

你问的是两件事:如何添加图像 and 如何添加新字体.

添加图像

这很简单。假设您使用 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 文件。

在 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>

它应该打印“Hello World!”使用 pdf 中注册的字体。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 CSS 和图像生成 PDF 的相关文章

随机推荐