在GotenbergBundle项目中通过Twig模板嵌入自定义字体生成PDF

在GotenbergBundle项目中通过Twig模板嵌入自定义字体生成PDF

在开发基于Symfony的PDF生成功能时,GotenbergBundle是一个非常实用的工具包。本文将详细介绍如何在使用GotenbergBundle生成PDF时,通过Twig模板嵌入自定义字体。

基本原理

GotenbergBundle通过调用Gotenberg服务来将HTML内容转换为PDF文档。在这个过程中,我们可以利用标准的CSS字体嵌入技术(@font-face)来使用自定义字体。

实现步骤

1. 准备字体文件

首先需要将字体文件(如.ttf格式)放置在项目的assets目录下。例如,我们有一个名为"Kanit.ttf"的字体文件。

2. 配置PDF生成器

在PHP代码中配置PDF生成器时,需要明确指定要包含的字体文件:

return $gotenberg
    ->html()
    ->content('content.html.twig')
    ->addAsset('Kanit.ttf') // 从assets目录加载字体文件
    ->generate();

3. 在Twig模板中定义字体

在HTML模板中,使用标准的CSS @font-face规则定义字体:

<style>
    @font-face {
        font-family: "my_custom_font";
        src: url("Kanit.ttf");  // 注意路径直接使用文件名
        font-weight: normal;
        font-style: normal;
    }
</style>

4. 应用自定义字体

定义好字体后,就可以在CSS样式中使用它了:

h1 {
    font-family: "my_custom_font";
    color: red;
}

注意事项

  1. 字体文件路径在模板中必须使用根路径(直接写文件名),不要包含任何目录结构
  2. 确保字体文件的格式是Gotenberg服务支持的格式(通常.ttf格式都能正常工作)
  3. 字体文件大小会影响PDF生成的速度和最终文件大小
  4. 商业字体使用时请注意授权问题

高级用法

如果需要使用多种字体样式(如粗体、斜体等),可以为每种样式单独定义@font-face规则:

@font-face {
    font-family: "my_custom_font";
    src: url("Kanit-Regular.ttf");
    font-weight: normal;
    font-style: normal;
}

@font-face {
    font-family: "my_custom_font";
    src: url("Kanit-Bold.ttf");
    font-weight: bold;
    font-style: normal;
}

通过这种方式,可以在PDF文档中使用丰富多样的字体样式,满足各种设计需求。

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值