takeoo/zend-pdf
Composer 安装命令:
composer require takeoo/zend-pdf
包简介
Create pdf from view in zend framework 2
README 文档
README
Create pdf from view in ZendFramework 3
Works on zend framework v3.*
IF you want to use it with older versions, use one of previous tags
Requirements
-
wkhtmltopdf installed on your server
- Debian, Ubuntu:
sudo apt-get install wkhtmltopdf
- *Debian servers have known errors with wkhtmltopdf lib, so if you get error like:
wkhtmltopdf: cannot connect to X server
install xvfb:
sudo apt-get install xvfb
-
zend-view 2.3* is installed as dependency
-
zend-service-manager is already installed with 3.* version of zf3.
Install
-
Composer install
composer require takeoo/zend-pdf
-
Add "Takeoo\Pdf" to 'modules' array in application.config.php
Usage
-
Takeoo\Zend-pdf will create service throughout service manager, so it is available in serviceLocator as 'PdfCreator';
-
Instantiate:
$pdfCreator = $serviceManager->get('PdfCreator');
NOTE: PdfCreator is not shared service, so every call to serviceManager will create new instance.
PdfCreator uses ViewResolver which is auto-magically injected to PhpRenderer if have MVC application, so you can use any view or layout you have in your app!
-
Set layout
$pdfCreator->setLayoutTemplate('layout/pdf-template');
- Add view as you would in your response, just pass name and variables to createHtml() function
$pdfCreator->createHtml('path/to/view', ['variableName' => $variableValue]);
OR you can directly pass already created view model
$pdfCreator->createHtmlFromViewModel($viewModel);
-
Output
-
All modern browser support pdf output directly to browser:
$pdfCreator->output();
-
get file handle
$pdfCreator->writePdf();
NOTE: Both above functions will save file to your disk
-
-
Get file path
$pdfCreator->getFilePath();
-
By default all files are generated to your project root into "{Ymd_His}.pdf"
-
Change file destination
$pdfCreator->setPdfFileName('path/to/desired/folder/nameofyourfile.pdf');
NOTE: All functions with public scope (with exception of output() and writePdf()) are fluent, so you can chain all functions:
$pdfCreator->setLayoutTemplate('layout/pdf-layout') ->createHtml('view', ['variable1' => $variable1Value]) ->setPdfFileName('./../file.pdf') ->setHasXvfb(false) ->output();
NOTE: By default all wkhtmltopdf conversions are created with setHasXvfb(true), so you have to have installed Xvfb on your server! If you want to turn it of just do:
$pdfCreator->setHasXvfb(false);
takeoo/zend-pdf 适用场景与选型建议
takeoo/zend-pdf 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 4.1k 次下载、GitHub Stars 达 0, 最近一次更新时间为 2017 年 03 月 18 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 takeoo/zend-pdf 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 takeoo/zend-pdf 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 4.1k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 2
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: Unknown
- 更新时间: 2017-03-18