2

我有一个 CakePHP 控制器,它获取一个 URL 并通过首先将其转换为图像将其转换为 PDF。PDF 正在通过 TCPDF 正确生成,但它只是显示它。如何将 PDF 文件保存在服务器上而不仅仅是显示它?

<?php
App::import('Vendor', 'TestPdf.tcpdf', array('file'=>'tcpdf'.DS.'tcpdf.php'));

$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
$pdf->SetMargins(0, 0, 0);
$pdf->SetAutoPageBreak(false);
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);

foreach($pages as $page)
{
    $pdf->AddPage();
    $pdf->setJPEGQuality("100");
    $pdf->Image($page, 0, 0, 210, 0, 'PNG', '', '', false, 300);
}


$pdf->Output('example_001.pdf', 'I');
4

2 回答 2

3

根据文档,“I”选项告诉TCPDF::Output()将 PDF 输出发送给客户端。要存储在服务器端,请使用“F”。

$pdf->Output('example_001.pdf', 'F');
于 2013-05-16T19:11:06.720 回答
0

有一个 CakePHP 插件可以实现你想要做的,它支持几个 PDF 引擎:

  • dom.pdf
  • 文件格式
  • Tcpdf
  • wkhtmltopdf(需要额外安装)推荐引擎

它还可以保存到文件或流作为下载。

该插件可以在这里找到:

https://github.com/ceeram/CakePdf

有关您的方案,请参阅“用法”下的第 2 点。

于 2013-05-16T19:10:51.800 回答