lui*_*r99 4 php pdf dompdf zend-framework2
我正在开始一个新项目,我也是Zend Framework 2的新手.你有什么建议从你想作为变量传递的html代码生成pdf($ html)?我在网上看到DOMPDF非常好,但我不知道如何使用它,查看文档.什么是初学者最简单的方法?
Fin*_*ham 18
您选择的DOMPDF是对的.它是Zend Framework 2中最容易使用的.只需添加一个简单的模块(DOMPDFModule)就可以了.因为你是Zend Framework 2的新手; 这是如何使用它.
将"dino/dompdf-module":"dev-master"添加到composer.json文件中的require部分示例:composer.json
"require": {
"php": ">=5.3.3",
"zendframework/zendframework": "2.2.*",
"dino/dompdf-module": "dev-master"
}
Run Code Online (Sandbox Code Playgroud)
现在使用composer 安装或更新依赖项.Composer将自动包含依赖项,否则我们将使用include包含("dompdf.php")示例:
php composer.phar install
Run Code Online (Sandbox Code Playgroud)
接下来,我们必须将DOMPDFModule添加到config/application.config.php中的modules部分示例:application.config.php
'modules' => array(
'Application',
'DOMPDFModule',
),
Run Code Online (Sandbox Code Playgroud)
我们准备在我们的项目中使用它.
打开我们要生成PDF的控制器并添加
使用DOMPDFModule\View\Model\PdfModel;
到顶部; 在命名空间之后.
示例:
IndexController.php
<?php
namespace Application\Controller;
use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;
use DOMPDFModule\View\Model\PdfModel;
Run Code Online (Sandbox Code Playgroud)
接下来,我们必须将必要的PDF生成代码放入所需的操作.
示例:
我假设; 要下载pdf,我们正在使用以下路线.
example.com/generatepdf
为此创建一个generatepdfAction()方法,我们将在其中放置PDF生成逻辑,如下所示.
IndexController.php
public function generatepdfAction()
{
$pdf = new PdfModel();
return $pdf;
}
Run Code Online (Sandbox Code Playgroud)
正如Zend Framework 2中的大多数行动一样 ; 此操作还将具有相应的视图文件generatepdf.phtml,其中我们实际放置要转换为PDF的HTML.
示例:
generatepdf.phtml
<html>
<body>
<h1>My Name is Blah</h1>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
现在,如果我们去我们创建的路线; 如果浏览器支持查看PDF,则PDF将显示在同一窗口中.
它可以在完成generatepdfAction()通过使用setVariables()的方法PdfModel()
实施例:
IndexController.php
public function generatepdfAction()
{
$pdf = new PdfModel();
$pdf->setVariables(array(
'name' => 'John Doe',
));
return $pdf;
}
Run Code Online (Sandbox Code Playgroud)
generatepdf.phtml
<html>
<body>
<h1>My Name is <?php echo $this->name; ?></h1>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
设置文件名将触发PDF文件的自动下载.可以使用PdfModel()的setOption()方法设置文件名.示例:IndexController.php
public function generatepdfAction()
{
$pdf = new PdfModel();
$pdf->setOption("filename", "my-file");
return $pdf;
}
Run Code Online (Sandbox Code Playgroud)
文件扩展名(.pdf)将自动添加.
纸张尺寸和纸张方向可以通过paperSize和paperOrientation选项设置
示例:
IndexController.php
public function generatepdfAction()
{
$pdf = new PdfModel();
$pdf->setOption("paperSize", "a4"); //Defaults to 8x11
$pdf->setOption("paperOrientation", "landscape"); //Defaults to portrait
return $pdf;
}
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助.
| 归档时间: |
|
| 查看次数: |
10844 次 |
| 最近记录: |