首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用laravel批量打印PDF文件

使用laravel批量打印PDF文件
EN

Stack Overflow用户
提问于 2019-07-31 22:19:34
回答 1查看 833关注 0票数 2

我有一个程序,可以打印一个单独的PDF时,学生文件。我使用的是Laravel 5.7中的niklasravnsborg/laravel-pdf包。它工作得很好,因为我可以将pdf从视图中流式传输到浏览器中,然后从那里打印。

现在我想在一天结束时批量打印PDF,而不是一个接一个。我该怎么做呢?在软件包存储库中没有关于此的文档。

我想过几种方法:第一,将每个PDF保存为图像文件,然后在一天结束时尝试打印该文件夹中的所有文件。如果我这样做,我将如何打印该文件夹中的所有文件?

下一步:有没有人知道一种方法,可以将一个新的PDF附加到一个包含所有以前循环的pdf的变量中?例如:

代码语言:javascript
运行
复制
$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');
}
EN

回答 1

Stack Overflow用户

发布于 2019-08-03 04:52:14

经过几天的尝试,希望这个解决方案能在未来对某些人有所帮助。我使用了另一个名为"lara pdf merger“的包。通过将我的文件写入保存目标,将这些文件添加到合并文件,然后在下载后删除保存的文件,我能够获得我的功能。这是我的控制器代码:

代码语言:javascript
运行
复制
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');

}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57292983

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档