我有一个程序,可以打印一个单独的PDF时,学生文件。我使用的是Laravel 5.7中的niklasravnsborg/laravel-pdf包。它工作得很好,因为我可以将pdf从视图中流式传输到浏览器中,然后从那里打印。
现在我想在一天结束时批量打印PDF,而不是一个接一个。我该怎么做呢?在软件包存储库中没有关于此的文档。
我想过几种方法:第一,将每个PDF保存为图像文件,然后在一天结束时尝试打印该文件夹中的所有文件。如果我这样做,我将如何打印该文件夹中的所有文件?
下一步:有没有人知道一种方法,可以将一个新的PDF附加到一个包含所有以前循环的pdf的变量中?例如:
$finalpdf;
$students = Student::all();
foreach($students as $student){
$pdf = PDF::loadView('pdf.document', $student);
$finalpdf .+ $pdf; //i know this line doesn't work, but how to alter it?
return $pdf->save('document.pdf');
}发布于 2019-08-03 04:52:14
经过几天的尝试,希望这个解决方案能在未来对某些人有所帮助。我使用了另一个名为"lara pdf merger“的包。通过将我的文件写入保存目标,将这些文件添加到合并文件,然后在下载后删除保存的文件,我能够获得我的功能。这是我的控制器代码:
use PDF;
use Illuminate\Filesystem\Filesystem;
use LynX39\LaraPdfMerger\Facades\PdfMerger;
public function batchPrint(){
$pdfMerger = PDFMerger::init();
$i = 0;
$students = Student::whereDate('updated_at', Carbon::today('America/Los_Angeles'))->get();
foreach ($students as $student) {
$pdf = PDF::loadView('printTables', compact('student'));
$pdf->save('pdf/document'.$i.'.pdf');
$pdfMerger->addPDF('pdf/document'.$i.'.pdf');
$i++;
}
$pdfMerger->merge();
$pdfMerger->save("file_name.pdf", "browser");
$file = new Filesystem;
$file->cleanDirectory('pdf');
}https://stackoverflow.com/questions/57292983
复制相似问题