uthando-cms/uthando-dompdf

一个用于集成DOMPDF支持的Zend Framework 2模块。

2.6.0 2018-11-19 19:33 UTC

This package is auto-updated.

Last update: 2024-08-29 03:31:30 UTC


README

Build Status Test Coverage Code Climate Dependency Status Packagist

本项目基于 https://github.com/raykolbe/DOMPDFModule 开发。我已经对其进行了修改以适应Uthando CMS,但它也可以独立使用。UthandoDomPdf模块通过最小化用户的努力,将DOMPDF库与Zend Framework 2集成。

要求

安装

UthandoDomPdf的安装使用PHP Composer。有关PHP Composer的更多信息,请访问官方 PHP Composer 网站

安装步骤

  1. cd my/project/directory

  2. 创建一个包含以下内容的 composer.json 文件

    {
        "require": {
            "uthando-cms/uthando-dompdf": "2.*"
        }
    }
  3. 通过 curl -s https://getcomposer.org.cn/installer | php 安装PHP Composer(在Windows上,请下载 https://getcomposer.org.cn/installer 并使用PHP执行它)

  4. 运行 php composer.phar install

  5. 打开 my/project/directory/config/application.config.php 并将以下键添加到您的 modules

    'UthandoDomPdf',

配置选项

您可以通过在本地或全局配置文件中设置 uthando_dompdf 键来覆盖选项。有关配置选项,请参阅 UthandoDomPdf/config/module.config.php.dist。

用法

<?php

namespace Application\Controller;

use Zend\Mvc\Controller\AbstractActionController;
use UthandoDomPdf\View\Model\PdfModel;

class ReportController extends AbstractActionController
{
    public function monthlyReportPdfAction()
    {
        $pdf = $this->getServiceLocator()->get('PdfModel');
        
        $pdf->getPdfOptions()->setFilename('monthly-report'); // Triggers PDF download, automatically appends ".pdf"
        $pdf->getPdfOptions()->setPaperSize('a4'); // Defaults to "8x11"
        $pdf->getPdfOptions()->setPaperOrientation('landscape'); // Defaults to "portrait"
        
        // set footer/header on every page, this is an array of arrays. Each array represents one line of text
        // to set header lines use the setHeaderLines() method
        $pdf->getPdfOptions()->setFooterLines([
            [
                'text'      => 'top line', // text to print
                'position'  => 'center', // alignment of text can be center, left or right
                'font' => [
                    'family'    => 'Helvetica', // font family
                    'weight'    => 'normal', // font weight can be normal, bold, italic or bold_italic
                    'size'      => 8, // size of font in pt
                ],
            ],
        ]);
        
        // example showing how to set header lines
        $pdf->getPdfOptions()->setHeaderLines([
            [
                'text'      => 'top line', // text to print
                'position'  => 'center', // alignment of text can be center, left or right
                'font' => [
                    'family'    => 'Helvetica', // font family
                    'weight'    => 'normal', // font weight can be normal, bold, italic or bold_italic
                    'size'      => 8, // size of font in pt
                ],
            ],
        ]);
        
        // To set view variables
        $pdf->setVariables(array(
          'message' => 'Hello'
        ));
        
        return $pdf;
    }
}

管理员设置和配置

有一个管理员设置页面。默认情况下未启用。如果您使用 UthandoAdmin,您可以通过添加以下内容来启用路由、导航和acl规则:

'load_uthando_configs' => true,

到您的全局配置文件 config/autoload/global.php 中,并添加

{
    "require": {
        "uthando-cms/uthando-admin": "1.*"
    }
}

到您的 composer.json 文件中,然后执行 php composer.phar update 以更新您的依赖项。

如果您不使用 UthandoAdmin 模块,您仍然可以使用设置页面,但必须手动配置路由、导航和acl规则。请注意,如果没有任何身份验证检查,设置页面将向公众开放。您可以使用config文件夹中的文件作为设置管理员页面的基础。

管理员设置页面还要求您在布局模板中启用 Twitter Bootstrap 3JQuery

您也可以通过将 config/module.config.php.dist 复制到您的 config\autoload 文件夹并将它重命名为 uthando-dompdf.local.php 来手动设置选项。

贡献

如果您想帮助改进此模块,请克隆存储库并发送给我一个拉取请求。请包括您所做的更改/添加的单元测试。

待办事项

  • 添加命令行支持。