imag/files-bundle

Symfony 2 的文件包

v3.0.3 2018-12-10 08:40 UTC

This package is auto-updated.

Last update: 2024-08-28 04:01:12 UTC


README

此包可以创建/管理PDF文件。可以从HTML页面创建PDF,并将多个PDF文件附加到文档中,并压缩最终文档。它使用KnpSnappyBundle从HTML创建PDF,并使用ZendPdf附加PDF文件。

安装

  1. 下载FilesBundle
  2. 启用包
  3. 配置KnpSnappyBundle

如何获取包

注意

dev-master版本与2.x版本不兼容。

Composer

在项目根目录修改composer.json

// {root}/composer.json

{
    [...],
    "require": {
        [...],
        "imag/files-bundle": "dev-master"
    }
}

启用包

<?php
// app/AppKernel.php

public function registerBundles()
{
    $bundles = array(
    // ...
    new IMAG\FilesBundle\IMAGFilesBundle(),
    );
}

配置KnpSnappyBundle

请阅读官方KnpSnappyBundle文档 https://github.com/KnpLabs/KnpSnappyBundle

用法

从HTML创建PDF

<?php

$pdf = $this->get('imag_files.pdf')
    ->setTemplate("foo.html.twig", array('includeVar', $includeVar))
    ->setPdfPrefix('foo-file') // Like : 'foo-file-uniqId().pdf'
    ->setPath('/home/foo/tmp') // Default sys_get_temp_dir()
    ->addParameter('name', $value)
    ->htmlToPdf()
    ;

将PDF文件附加到最终文档

<?php

$pdf = $this->get('imag_files.pdf')
    ->setPdfPath($finalPdf)
    ->appendFiles(array($file1, $files2))
    ;

将文件添加到压缩归档中

<?php

$zip = $this->get('imag_files.zip')
    ->add($pdf)
    ;

示例

Twig模板

<!DOCTYPE html>
<html>
  <head>
    <meta charset='utf-8'>
    {% include('NSFooBundle:Pdf/css:' ~ includeVar) %}
  </head>

  <body>
    <h1>{{ data.title }}</h1>
    <h2>{{ data.body }}</h2>
  </body>
</html>