我有一个TestPdfGeneration.php
文件,它通过MPDF生成一个PDF文件作为输出。
由于(我认为(MPDF的行为,我应该在运行该测试时添加--stderr
选项,否则它会抱怨";报头已经被发送";;我已经查看了PHPUnit文档,但没有提到如何添加选项;在飞行中";到特定的测试文件。
我可以在phpunit.xml
文件中添加选项,但这将在全局范围内应用;我正在寻找的是一种方法,只将该选项添加到那些真正需要它的测试类中
有人能帮我吗?
编辑
以下是我如何生成PDF文件:它使用mPDF的包装包,以便与Laravel一起使用。mPDF
对象本身可以使用getMpdf()
函数来获得。
$pdf_config = [
'tempDir' => __DIR__ . '/tempPdf',
'format' => 'A4',
'setAutoTopMargin' => 'pad',
'margin_top' => 5,
'margin_footer' => 5,
];
$pdf = PDF::getPdf($pdf_config);
if(isset($pdf_data['bozza'])) {
$pdf->getMpdf()->SetWatermarkText('DRAFT');
$pdf->getMpdf()->showWatermarkText = true;
}
$pdf->getMpdf()->setAutoTopMargin = 'pad';
$pdf->getMpdf()->shrink_tables_to_fit = 1;
$pdf->getMpdf()->WriteHTML(View::make($pdf_data['view'], $pdf_data, [])->render());
// D -> Download
// I -> Inline => stream
return $pdf->getMpdf()->Output($pdf_data['filename'], 'I');
我认为重点是mPDF中的WriteHTML
函数,因为这就是调用视图的渲染函数的时候。
使用S
作为生成PDF的模式。它不像I
那样发送HTTP头,只是返回二进制PDF字符串。
return $pdf->getMpdf()->Output($pdf_data['filename'], 'S');