我有一个程序,可以在学生文件上打印单个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');
}
答案 0 :(得分:0)
经过几天的玩耍,希望此解决方案将来对某人有所帮助。我使用了另一个名为“ lara pdf合并”的软件包。通过将我的文件写入保存目标,将这些文件添加到合并的文件,然后在下载后删除已保存的文件,我可以获得我的功能。这是我的控制器代码:
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');
}