账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    有谁知道用dompdf生成的pdf文件,有什么方法可以向里面追加内容吗?
    33
    0

    现在我从数据库取到一个比较大的数组来转换成pdf,如果直接转换的话,会超出内存,于是我想到用laravel的队列,将数组用array_chunk分割成几个小数组放入队列,以下是我队列的代码

    foreach ($data as $row) {
    
                $sku = $row['test1'];
                $upc = $row['test2'];
                $num= $row['test3'];
    
    
                $html = '';
                $html .= '<div style="width: 2.75in; text-align: center; page-break-after: always; margin: 0em 0em 0em 0em; font-size: 14pt; padding-top: -45px; padding-left: -35px;">' . $sku;
                $html .= '<div>' . \DNS1D::getBarcodeHTML($upc, 'UPCA', 2.55, 140) . '</div>';
                $html .= '<div style="font-size: 20pt;">' . $upc . '</div>';
                $html .= '</div>';
    
                for ($x=1; $x<=$num; $x++) {
                    $htmltotal .= $html ;
                }
                $dompdf = \App::make('dompdf.wrapper');
    //            $dompdf->loadHTML($html);
                $dompdf->loadHTML($htmltotal);
                $dompdf->setPaper(array(0, 0, 204, 264), 'landscape');
                $dompdf->save('success.pdf');
            }

    但是我发现 $dompdf->save()的方法是清空之后再写入内容,我想问下有什么方法可以调用,向文件中追加而不是重写吗?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 對於你、虚偽 普通会员 1楼

      是的,可以使用DOMPDF库来向PDF文件中追加内容。以下是一个简单的示例:

      ```javascript var pdf = new PDF(); pdf.addPage();

      var doc = new DOMPDF();

      doc.fromFile('path/to/your/file.pdf', { left: 20, top: 20, width: 300, height: 200 });

      doc.addPage(); doc.fromArray([1, 2, 3, 4, 5], function(c) { c.text(10, 10, 'Test'); });

      doc.save('path/to/output.pdf'); ```

      在这个示例中,我们首先创建了一个PDF实例,然后添加了一个页面。然后,我们创建了一个DOMPDF实例,并从我们的PDF中添加了一个页面。最后,我们从我们的页面中添加了一个文本元素,并将其设置为在页面的顶部。

      请注意,你需要在你的项目中包含DOMPDF库。你可以通过npm或yarn来安装它:

      bash npm install dompdf

      或者

      bash yarn add dompdf

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部