代码之家  ›  专栏  ›  技术社区  ›  DeveloperX

如何使用Laravel将base64个pdf文件合并为一个文件?

  •  0
  • DeveloperX  · 技术社区  · 3 年前

    我有一个问题,我想知道如何解决它。 我有一个返回base64 pdf的api:

    {
    "resp_1": "JWETRi0xLjMNCiXi48/TDQoNCjEgMCB.....",
    "resp_2": "RTGHEgi0xLhjhjjjDQoNCjEgMCB.....",
    }
    

    我需要将它们合并为一个文件并上传到S3,上传文件没有问题,但这里的问题是合并。我正在尝试:

    ...
    use Webklex\PDFMerger\Facades\PDFMergerFacade as PDFMerger;
    ....
    .... 
    
     
       //$resp_1 is JWETRi0xLjMNCiX.....  
       $file_encoded = base64_decode($resp_1);
       $file_encoded_2 = base64_decode($resp_2);
    
       $oMerger = PDFMerger::init();
    
        $oMerger->addPDF(mb_convert_encoding($file_encoded, 'UTF-8', 'UTF-8'), 'all');
        $oMerger->addPDF(mb_convert_encoding($file_encoded_2, 'UTF-8', 'UTF-8'), 'all');   
        
        $oMerger->merge();
        $oMerger->save(public_path('storage/merged.pdf'));
    .....
    

    {“message”:“无法在'%PDF-1.3\r\n%????……上找到PDF。”
    “file”:“D:\test\vendor\webklex\lavel- pdfmerger\src\pdfmerger\pdfmerger.php”,“行”:184,“跟踪”:[

    我能做什么?

    1 回复  |  直到 3 年前
        1
  •  1
  •   lezhni    3 年前

    使用 addString 方法而不是 addPDF ( 添加PDF 接受文件路径作为参数):

    $oMerger->addString('raw file data', 'all');