Symfony2 使用 FPDF 输出 pdf

标签 symfony pdf

如何在 Symfony 中返回响应以输出 pdf?我目前正在使用 FPDF,因为我不想使用任何捆绑软件。这是我的 Controller 操作:

public function pdfAction(Request $request) {

    //grab from database

    $pdf = new \FPDF;

    for($i = 0; $i < count($entities); $i++) {
        //manipulate data

       $pdf->AddPage();
       $pdf->SetFont("Helvetica","","14");
       $pdf->SetTextColor(255, 255, 255);
    }

    $pdf->Output();

    return new Response($pdf, 200, array(
        'Content-Type' => 'pdf'));

}

有了这些,我得到的只是一个包含乱码字符的页面。我对 I/O 操作很陌生,所以任何帮助都会很棒。谢谢..

最佳答案

您需要为响应设置正确的 Content-Type。此外,不要将您的 FPDF 对象作为响应内容发送,而是发送 PDF 输出。试试这个:

public function pdfAction(Request $request) {

    //................//

    return new Response($pdf->Output(), 200, array(
        'Content-Type' => 'application/pdf'));

}

更新:

要下载而不是显示生成的 PDF 文件,您需要将 disposition 设置为 attachment:

use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\ResponseHeaderBag;

public function pdfAction(Request $request) {

    //................//

    $response = new Response(
        $pdf->Output(),
        Response::HTTP_OK,
        array('content-type' => 'application/pdf')
    );

    $d = $response->headers->makeDisposition(
        ResponseHeaderBag::DISPOSITION_ATTACHMENT,
        'foo.pdf'
    );

    $response->headers->set('Content-Disposition', $d);

    return $response;
}

http://symfony.com/doc/current/components/http_foundation/introduction.html#serving-files

关于Symfony2 使用 FPDF 输出 pdf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24089758/

相关文章:

javascript - PDF 操作

php - base.html.twig 中的自定义变量

symfony - 修改消费者内部rabbitMQ发送的消息

php - 如何在 CentOS 6.x 上更新 PHP 和安装 ICU 库

Oracle 包含返回误报 BLOB 的函数

c# - 从 PDF 表单添加到 MSSQL

asp.net - 我们需要哪些选项才能从ASP.NET Core Web Api生成PDF

symfony - 从 symfony 中的 Controller 操作返回图像

php - 使用 Guzzle 通过 Symfony 将 HTTP GET 发送到外部 API

c# - iTextSharp 签署在 MemoryStream 中创建的 PDF