acucchieri/tcpdf-bundle

tcpdf库与Symfony的集成

安装: 131

依赖者: 0

建议者: 0

安全: 0

星星: 1

关注者: 1

分支: 0

开放问题: 0

类型:symfony-bundle

4.0.0 2024-03-21 10:27 UTC

This package is auto-updated.

Last update: 2024-09-21 14:07:43 UTC


README

ACTcpdfBundleTCPDF PHP库与Symfony集成。这意味着在您的Symfony应用程序中实现和输出PDF文档变得简单。

安装

步骤 1:下载Bundle

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

composer require acucchieri/tcpdf-bundle

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

步骤 2:启用Bundle

然后,通过在项目的app/AppKernel.php文件中添加以下行来启用该Bundle

// app/AppKernel.php
class AppKernel extends Kernel
{
    public function registerBundles()
    {
        $bundles = [
            // ...
            new AC\TcpdfBundle\ACTcpdfBundle(),
        ];

        // ...
    }
}

用法

使用AC\TcpdfBundle\Pdf\PdfBuider创建您的PDF文档。此类扩展TCPDF,有关PDF生成的更多信息,请参阅TCPDF文档

PDF输出

ACTcpdfBundle 提供了帮助器来服务您的PDF

在浏览器中显示PDF

返回一个带有Content-Disposition: inline的响应

$myPdf->inline('my-pdf.doc');

下载PDF

返回一个带有Content-Disposition: attachment的响应

$myPdf->download('my-pdf.doc');

以base64 mime多部分电子邮件附件的形式获取PDF(RFC 2045)

$myPdf->attachment('my-pdf.doc');

在文件系统中保存PDF

$myPdf->save('/path/to/my-pdf.doc');

以字符串形式输出PDF

$myPdf->toString();

MultiCell辅助器

AC\TcpdfBundle\Pdf\PdfBuilder::addMultiCellRow($cells, $sameHeight, $nobr) 允许您根据MultiCell构建复杂表格。

$cells是一个多维数组。每个单元格(数组)包含

  • 数据(文本或HTML)
  • 选项。可用的选项
  • height 单元格高度
  • width 单元格宽度
  • border 绘制单元格边框。允许值:0或1。默认值=0
  • align 水平对齐。允许值:‘L’(左)、‘C’(居中)、‘R’(右)或‘J’(两端对齐)。默认值=‘T’
  • valign 垂直对齐。允许值:‘T’(顶部)、‘M’(中间)或‘B’(底部)。默认值=‘T’
  • fill 指示是否需要绘制单元格背景。true或false。默认值=false
  • is_html 指示数据是否为HTML。有关支持的标签,请参阅TCDPF文档。默认值=false

$sameHeight 如果设置为true,则所有行单元格具有相同的高度。默认值=false。

$nobr 如果设置为true,则行不会在两页之间中断。默认值=false。

示例

$data = [
  ['foo' => 'AAA', 'bar' => 123, 'baz' => '<b>text<b>'],
  ['foo' => 'BBB', 'bar' => 456, 'baz' => '<a href="https://domain.td">link</a>'],
  ['foo' => 'CCC', 'bar' => 789, 'baz' => '<ul><li>line 1</li><li>line 2</li></ul>'],
];

foreach ($data as $row) {
    $pdf->addRowCell([
      [$row['foo'], ['with' => 30]],
      [$row['bar'], ['width' => 40, 'align' => 'R']],
      [$row['baz'], ['width' => 50, 'is_html' => true]],
    ]);
}

许可

此Bundle受MIT许可协议保护。有关完整的许可证,请参阅Bundle中的许可证