【问题标题】:Merge two pdfs with Ilovepdf and dompdf使用 Ilovepdf 和 dompdf 合并两个 pdf
【发布时间】:2021-12-28 00:07:26
【问题描述】:

我有一个代码可以将 html 文本转换为 pdf,另一个可以将此 pdf 与用户上传的 pdf 合并,但我无法将两者合并在一起,它会下载转换后的 pdf 而不是合并后的。

当我把它与用户上传的两个文件合并时,它可以工作。

我的代码:

        $dompdf = new Dompdf();
        $dompdf->loadHtml('hello world');

        // (Optional) Setup the paper size and orientation
        $dompdf->setPaper('A4', 'landscape');
        // Render the HTML as PDF
        $dompdf->render();
        // Output the generated PDF to Browser
        $arquivo =  $dompdf->stream();

        $ilovepdf = new Ilovepdf('iLovePdfKey', 'iLovePdfKey');
        // Create a new task
        $myTaskMerge = $ilovepdf->newTask('merge');
        // Add files to task for upload
        $arquivo = $this->convertHello();
        $file1 = $myTaskMerge->addFile('path to the file that the user upload');
        $file2 = $myTaskMerge->addFile($arquivo);
        // Execute the task
        $myTaskMerge->execute();
        // Download the package files
        $myTaskMerge->download();

【问题讨论】:

    标签: php pdf dompdf


    【解决方案1】:

    $dompdf->stream() 将呈现的 PDF 发送到浏览器。因此,您无法以这种方式访问​​生成的 PDF。您必须捕获输出并保存到文件中。

    根据您的示例代码,如下所示:

    $dompdf = new Dompdf();
    $dompdf->loadHtml('hello world');
    $dompdf->render();
    $arquivo = $dompdf->output();
    $tmp = tempnam(sys_get_temp_dir(), "pdf")
    file_put_contents($tmp, $arquivo);
    
    $ilovepdf = new Ilovepdf('iLovePdfKey', 'iLovePdfKey');
    $myTaskMerge = $ilovepdf->newTask('merge');
    $file1 = $myTaskMerge->addFile('path to the file that the user upload');
    $file2 = $myTaskMerge->addFile($tmp);
    $myTaskMerge->execute();
    unset($tmp);
    $myTaskMerge->download();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-30
      • 1970-01-01
      相关资源
      最近更新 更多