mkebza/wk-pdf-bundle

为 symfony 服务的 wkhtmltopdf 简单封装

安装: 962

依赖者: 0

建议者: 0

安全性: 0

星标: 0

关注者: 2

分支: 0

公开问题: 0

类型:symfony-bundle

v0.4.0 2023-09-03 20:24 UTC

This package is auto-updated.

Last update: 2024-09-03 22:32:31 UTC


README

使用 Symfony Flex 的应用程序

打开命令行控制台,进入您的项目目录并执行

$ composer require mkebza/wk-pdf-bundle

不使用 Symfony Flex 的应用程序

步骤 1: 下载 Bundle

打开命令行控制台,进入您的项目目录并执行以下命令以下载此 Bundle 的最新稳定版本

$ composer require mkebza/wk-pdf-bundle

此命令需要您全局安装了 Composer,如 Composer 文档中的安装章节中所述。

步骤 2: 启用 Bundle

然后,通过将其添加到项目 app/AppKernel.php 文件中注册的 Bundle 列表中来启用此 Bundle

<?php
// app/AppKernel.php

// ...
class AppKernel extends Kernel
{
    public function registerBundles()
    {
        $bundles = array(
            // ...
            new MKebza\WkPDF\MKebzaWkPdfBundle(),
        );

        // ...
    }

    // ...
}

如何使用

从文件生成新的 PDF 文档并发送作为响应。控制器函数

public function myAction(PDFRenderer $pdf): Response
{
    $html = $this->renderView('my template');
    // or you can use fromFile(function)
    return $pdf->fromHtml($html, 'a4')->getResponse();
}

配置文件可以是配置文件名、选项数组(将创建新的匿名配置文件)、PDFRenderingProfile 对象或 null(默认配置文件)。

配置

m_kebza_wk_pdf:
    bin: /usr/local/bin/wkhtmltopdf # Path to your wkhtmltopdf bin, default
    tmp: /var/ # where temporary files are written, this is necessary to be writable directory
    default_profile: a4 # name of default profile
    profiles: # See profiles won
    

配置文件

存在两个预定义配置文件 a4a4_borderless。您可以在配置中定义自己的。

m_kebza_wk_pdf:
    profiles:
        myprofile:
            - --lowquality
            - --dpi 96
            - --margin-top 7mm
            - --margin-left 1mm
            - --margin-right 1mm
            - --margin-bottom 1mm
            - --page-size 'A4'
            - --encoding 'UTF-8'

参数不会进行解析或转义,它们将原样传递给 wkhtmltopdf 二进制文件。因此请小心。Wkhtmltopdf 文档

如果您将配置文件命名为默认配置文件之一相同的名称,则您的配置文件将覆盖默认配置文件。