frcho/pdf-bundle

Symfony2 的 PDF Bundle

安装: 603

依赖者: 0

建议者: 0

安全: 0

星标: 0

关注者: 1

分支: 0

开放问题: 0

类型:symfony-bundle

1.0.0 2018-05-21 16:08 UTC

This package is auto-updated.

Last update: 2024-09-09 14:02:42 UTC


README

PDF Bundle 提供了一种简单的方式,可以从您的视图创建 PDF,基于 siphoc/PdfBundle

安装

步骤 1:使用 Composer 下载 Bundle

将 frchoPdfBundle 添加到 composer。

{
    "require": {
        "frcho/pdf-bundle": "dev-master"
    }
}

安装 Bundle

$ composer.phar update frcho/pdf-bundle

Composer 将安装该 Bundle 以及所需的依赖项。

步骤 2:启用 Bundle

在您的 AppKernel 中添加以下内容

<?php
// app/AppKernel.php

public function registerBundles()
{
    $bundles = array(
        // ...
        new frcho\PdfBundle\SiphocPdfBundle(),
    );
}

步骤 3:配置您的 Bundle

在您的 config.yml 文件中

kijhoTechnologies_pdf:
    basepath: "%kernel.root_dir%/../web"
    binary: "/usr/local/bin/wkhtmltopdf"
    options:
        'lowquality': false
        'enable-javascript': true
        'debug-javascript': true

用法

下载

在您的控制器中,您可以通过以下方式下载控制器的内容

$pdfGenerator = $this->get('frcho.pdf.generator');
$pdfGenerator->setName('my_pdf.pdf');
return $pdfGenerator->downloadFromView(
    'AcmeDemoBundle:Demo:index.html.twig', array(
        'name' => $name,
    )
);

内联显示

还可以选择在浏览器中显示内容。为此,请使用以下示例

$pdfGenerator = $this->get('frcho.pdf.generator');
$pdfGenerator->setName('my_pdf.pdf');
return $pdfGenerator->displayForView(
    'AcmeDemoBundle:Demo:index.html.twig', array(
        'name' => $name,
    )
);

文档

主要文档可以在 Resources/doc/index.html 找到。它由 PHPDocumentor2 自动生成。该目录本身通过 git 被排除,因为我们使用了 PHPDoc Markdown 插件来创建适当的 MD 文件以包含在 Git 中。

如果您想贡献,请确保更新文档并运行 PHPDocumentor2 和 PHPDoc Markdown。这样,文档才能保持正确更新。

测试

我使用了 PHPUnit 进行测试。贡献需要用测试来支持。

许可

此 Bundle 在 MIT 许可证下。

依赖

Buzz

为了外部调用,我包含了来自 Buzz Bundle 的 @kriswallsmith

Snappy

为了创建实际的 PDF,我们使用了 Snappy。它有 wkhtmltopdf 依赖项。请确保您使用的是最新版本(>=0.11.0_rc1)。

Symfony

由于这是一个 Symfony Bundle,因此有一些 Symfony 依赖项。

Http Foundation

为了创建适当的响应,我实现了 Symfony 2.1 的 Http Foundation 组件。

模板

为了自动渲染视图,我添加了 templating component 以强制使用正确的模板引擎。

HttpKernel

从版本 1.1.2 开始,我们实现了一个日志记录实例。这依赖于 Symfony2 的 HttpKernel 组件。