surda/mpdf

mPDF集成到Nette框架中

v1.0.4 2019-10-01 08:32 UTC

This package is auto-updated.

Last update: 2024-09-29 05:22:05 UTC


README

Build Status Licence Latest stable PHPStan

安装

推荐使用Composer进行安装

composer require surda/mpdf

之后,您需要在config.neon中注册扩展

extensions:
    mpdf: Surda\Mpdf\DI\MpdfExtension

配置

默认

mpdf:
    mpdf:
        tempDir: %tempDir%/mpdf

自定义mPDF配置

查看https://mpdf.github.io/reference/mpdf-functions/construct.html

mpdf:
    mpdf:
        tempDir: %tempDir%/mpdf
        margin_left: 15
        margin_right: 15
        margin_top: 16
        margin_bottom: 16
        margin_header: 9
        margin_footer: 9
        mode: 'utf-8'
        format: 'A4'
        orientation: 'P'
        default_font_size: 0  
        default_font: ''

使用

use Surda\Mpdf\MpdfFactory;
use Surda\Mpdf\Response\PdfResponse;

class OrderPresenter extends Nette\Application\UI\Presenter
{
    /** @var MpdfFactory */
    private $pdfFactory;

    /**
     * @param MpdfFactory $pdfFactory
     */
    public function injectMpdfFactory(MpdfFactory $pdfFactory): void
    {
        $this->pdfFactory = $pdfFactory;
    }

    public function actionPdf(): void
    {
        $this->template->setFile('/path/to/template.latte');

        $mpdf = $this->mpdfFactory->create();
        $mpdf->WriteHTML($this->template);

        $this->sendResponse(new PdfResponse($mpdf->Output()));
    }
}

仅使用latte创建PDF

$latte = new Latte\Engine;
$latte->setTempDirectory('/path/to/temp');

$parameters = [
    'foo' => 'bar',
];

$template = $latte->renderToString('/path/to/template.latte', $parameters);

$mpdf = $this->mpdfFactory->create();
$mpdf->WriteHTML($template);

$this->sendResponse(new PdfResponse($mpdf->Output()));

响应

// Download
$this->sendResponse(new PdfResponse($mpdf->Output('file.pdf', \Mpdf\Output\Destination::DOWNLOAD)));

// Display in a browser
$this->sendResponse(new PdfResponse($mpdf->Output('file.pdf', \Mpdf\Output\Destination::INLINE)));