首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >运行作业时转换失败(API Convertapi : docx to pdf)

运行作业时转换失败(API Convertapi : docx to pdf)
EN

Stack Overflow用户
提问于 2019-11-25 09:16:42
回答 1查看 123关注 0票数 1

当我尝试将docx文件转换为pdf时,我遇到了以下问题:当我转换一个文件时,转换工作,但当我想使用Laravel作业转换它们时,转换失败。

这是我在failed_jobs表中得到的错误:

代码语言:javascript
复制
ConvertApi\Error\Client: SSL certificate problem: unable to get local issuer certificate in C:\laragon\www\webapp_adminLTE\vendor\convertapi\convertapi-php\lib\ConvertApi\Client.php:119

这就是我在控制器中调用作业的地方:

代码语言:javascript
复制
    public function menusEdition(Request $request){
    $menus = Menu::where('day',$request->day)->get();

    foreach($menus as $menu){
        $job = new MenusEdition($menu);
        $this->dispatch($job);
    }
    return back();
}

这是我的工作类别:

代码语言:javascript
复制
<?php

namespace App\Jobs;

use App\Http\Controllers\MenusController;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;

class MenusEdition implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

    protected $menu;

    /**
     * Create a new job instance.
     *
     * @return void
     */
    public function __construct($menu)
    {
        $this->menu = $menu;
    }

    /**
     * Execute the job.
     *
     * @return void
     */
    public function handle(MenusController $menusController)
    {
        $menu = $this->menu;
        $menusController->templateEdition($menu->id);
        return;
    }
}

这是我的job类调用的方法:

代码语言:javascript
复制
    public function templateEdition($menuId)
{
    $menuModel = new Menu();

    $breakfast = $menuModel->getTitleMacroPerMeal($menuId,"Breakfast");
    $snack1 = $menuModel->getTitleMacroPerMeal($menuId,"Snack 1");
    $lunch = $menuModel->getTitleMacroPerMeal($menuId,"Lunch");
    $snack2 = $menuModel->getTitleMacroPerMeal($menuId,"Snack 2");
    $dinner = $menuModel->getTitleMacroPerMeal($menuId,"Dinner");

    $menu = Menu::find($menuId);

    $filepath = $menuModel->editMenuTemplate(
        $menu,
        $menu->meal_plan,
        $menu->date,
        $menu->customer_name,
        $breakfast,
        $snack1,
        $lunch,
        $snack2,
        $dinner,
        $menu->calories,
        $menu->carbs,
        $menu->proteins,
        $menu->fats
    );

    $result = ConvertApi::convert('pdf', ['File' => $filepath]);
    # save to file
    $pdfFile = str_replace('docx','pdf',$filepath);

    $result->getFile()->save($pdfFile);

    $storedFile = Storage::disk('public')->putFileAs('menus', new File($pdfFile), $menu->date.'-'.$menu->customer_name.'.pdf');

    return $storedFile;
}

非常感谢你们的帮助。

EN

回答 1

Stack Overflow用户

发布于 2020-01-17 04:15:06

错误消息SSL certificate problem: unable to get local issuer certificate提示某些CA证书丢失。我建议更新/安装根证书。

Windows上的

以下链接可能会有所帮助:

https://stackoverflow.com/a/32095378/316536

http://woshub.com/updating-trusted-root-certificates-in-windows-10/

Ubuntu上的

安装

代码语言:javascript
复制
sudo apt-get install ca-certificates

更新

代码语言:javascript
复制
sudo update-ca-certificates
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59024066

复制
相关文章

相似问题

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