SLIM 3的mPDF问题

问题描述 投票:0回答:2

我在SLIM 3中构建一个应用程序,我需要生成一个PDF证书。所以我在我的SLIM应用程序中添加了mPDF库扩展。我试着生成一个测试pdf:

use Mpdf\Mpdf;
use Slim\Http\Request;
use Slim\Http\Response;
/**
 * Class GenerateCertificate
 * @package saikatbepari\pdf
 */
 class GeneratePDF
 {

   public function generateCertificate(Request $request, Response $response)
  {
    $response = $response->withHeader( 'Content-type', 'application/pdf' );
    $mpdf = new Mpdf(['tempDir' => '../tmp']);
    $mpdf->WriteHTML('<h1>Hello world!</h1>');
    $mpdf->Output();
  }


}

我得到的输出是:

enter image description here

任何人都可以帮助我,问题是什么以及如何解决它。任何帮助都会得到满足。

mpdf slim-3
2个回答
0
投票

您的Slim框架可能会重置内容类型。尝试从mPDF返回一个字符串并将其设置为您的PSR7响应的正文:

// ...
$body = $mpdf->Output('', 'S');
$stream = \GuzzleHttp\Psr7\stream_for($body);
$response = $response->withBody($stream);

return $response;

0
投票

这是我的简单解决方案

$app->get('/testing_mpdf/', 'testingMpdf');
function testingMpdf($request, $returned, $args) {
  $mpdf     = new Mpdf();
  $mpdf->WriteHTML('<h1>Hello World!</h1>');
  $mpdf->Output();
  return $returned->withHeader('Content-Type', 'application/pdf');
}
© www.soinside.com 2019 - 2024. All rights reserved.