weprovide/magento2-module-dompdf

此软件包已被废弃且不再维护。未建议替代包。

使用Dompdf渲染PDF的结果类

安装量 148 190

依赖者: 0

建议者: 0

安全: 0

星标: 24

关注者: 2

分支: 14

开放问题: 7

类型:magento2-module

1.2.1 2018-04-18 08:45 UTC

This package is not auto-updated.

Last update: 2024-05-28 09:21:12 UTC


README

使用Dompdf渲染PDF的结果类

安装

  1. composer require weprovide/magento2-module-dompdf
  2. bin/magento setup:upgrade

使用

使用普通字符串渲染

<?php
namespace YourNameSpace\YourModule\Controller\Download;

use Magento\Framework\App\Action\Context;
use WeProvide\Dompdf\Controller\Result\DompdfFactory;
use WeProvide\Dompdf\Controller\Result\Dompdf;

class Pdf extends \Magento\Framework\App\Action\Action
{
    protected $dompdfFactory;
    protected $layoutFactory;

    /**
     * Constructor
     *
     * @param Context $context
     * @param DompdfFactory $dompdfFactory
     *
     */
    public function __construct(
        Context $context,
        DompdfFactory $dompdfFactory
    ) {
        $this->dompdfFactory = $dompdfFactory;
        parent::__construct($context);
    }

    public function getHtmlForPdf() {
        return '
        <html>
            <body>
                <h1>Hello world</h1>
            </body>
        </html>';
    }

    /**
     * Execute view action
     *
     * @return \Magento\Framework\Controller\ResultInterface
     */
    public function execute()
    {
        /** @var Dompdf $response */
        $response = $this->dompdfFactory->create();
        $response->setData($this->getHtmlForPdf());

        return $response;
    }
}

使用块和模板渲染

创建控制器

<?php
namespace YourNameSpace\YourModule\Controller\Download;

use Magento\Framework\App\Action\Context;
use Magento\Framework\View\LayoutFactory;
use WeProvide\Dompdf\Controller\Result\Dompdf;
use WeProvide\Dompdf\Controller\Result\DompdfFactory;

class Pdf extends \Magento\Framework\App\Action\Action
{
    protected $dompdfFactory;
    protected $layoutFactory;

    /**
     * Constructor
     *
     * @param Context $context
     * @param DompdfFactory $dompdfFactory
     *
     */
    public function __construct(
        Context $context,
        DompdfFactory $dompdfFactory,
        LayoutFactory $layoutFactory
    ) {
        $this->dompdfFactory = $dompdfFactory;
        $this->layoutFactory = $layoutFactory;
        parent::__construct($context);
    }

    public function getHtmlForPdf()
    {
        /** @var \Magento\Framework\View\Element\Template $block */
        $block = $this->layoutFactory->create()->createBlock('Magento\Framework\View\Element\Template');
        $block->setTemplate('YourNameSpace_YourModule::pdf.phtml');

        $data = [
            'foo' => 'bar'
        ];
        $block->setData($data);

        return $block->toHtml();
    }

    /**
     * Execute view action
     *
     * @return \Magento\Framework\Controller\ResultInterface
     */
    public function execute()
    {
        /** @var Dompdf $response */
        $response = $this->dompdfFactory->create();
        $response->setData($this->getHtmlForPdf());

        return $response;
    }
}

YourNameSpace/YourModule/view/frontend/template 中创建模板文件

API

以下列出了所有公共方法

public $pdf => Dompdf实例。可用于设置自定义选项,如方向和纸张大小。所有选项的列表可以在这里找到。

public function setData($html) => 等同于 $dompdf->loadHtml($html)

public function setFileName($fileName) => 设置输出文件名。

public function setAttachment($mode) => 模式可以是attachment(下载)或inline(不下载)。

public function renderOutput() => 等同于运行 $dompdf->render() & $dompdf->output()。由于Dompdf不支持两次渲染,将缓存输出。

参考代码请查看此处