From 8fe397ff506583da89acd8758c4b8370fcb3dd78 Mon Sep 17 00:00:00 2001 From: chengxl Date: Tue, 3 Feb 2026 09:52:07 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=8E=92=E7=89=88=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/api/controller/Production.php | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/application/api/controller/Production.php b/application/api/controller/Production.php index 16135cf..b3394e3 100644 --- a/application/api/controller/Production.php +++ b/application/api/controller/Production.php @@ -3656,7 +3656,14 @@ class Production extends Base // 方法1: 使用pdflatex命令(推荐) // $command = "{$sLatexDir}pdflatex -include-directory=" . dirname($texFilePath) . // " -output-directory=" . $pdfDir . " " . escapeshellarg($texFilePath); - $command = "pdflatex -output-directory=" . $pdfDir . " " . escapeshellarg($texFilePath); + // $command = "pdflatex -output-directory=" . $pdfDir . " " . escapeshellarg($texFilePath); + $sLatexDir = '/usr/bin/';//latex执行目录 + $command = sprintf( + '%slualatex -interaction=nonstopmode -output-directory=%s %s 2>&1', + rtrim($sLatexDir, '/') . '/', // /usr/bin/lualatex + escapeshellarg($pdfDir), // 转义输出目录(含空格/特殊字符) + escapeshellarg($texFilePath) // 转义tex文件路径 + ); $output = []; $returnVar = 0; @@ -4327,10 +4334,8 @@ class Production extends Base $queue = Queue::push('app\api\job\ArticleCreatePdf@fire', ['p_article_id' => $iPArticleId], 'ArticleCreatePdf'); //生成长表格PDF $aLongTableId = empty($aResult['long_table_id']) ? [] : $aResult['long_table_id']; - var_dump($aLongTableId); if(!empty($aLongTableId)){ //调用生成长表格队列 $longtablequeue = Queue::push('app\api\job\ArticleCreateLongTable@fire', ['p_article_id' => $iPArticleId,'long_table_id' => $aLongTableId], 'ArticleCreateLongTable'); - var_dump($longtablequeue); } return json_encode(array('status' => 1,'msg' => 'tex file generated successfully')); } From 7c54b4f518ecc81d8e42a7cccb8e3e46715c3cc7 Mon Sep 17 00:00:00 2001 From: chengxl Date: Tue, 3 Feb 2026 13:48:12 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=8E=92=E7=89=88=E5=9B=BE=E7=89=87?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/common/LatexContent.php | 50 +++++++++++++++-------------- 1 file changed, 26 insertions(+), 24 deletions(-) diff --git a/application/common/LatexContent.php b/application/common/LatexContent.php index 45f0f74..b2abfbc 100644 --- a/application/common/LatexContent.php +++ b/application/common/LatexContent.php @@ -196,21 +196,23 @@ page={{stage_page}},%号 //文章图片地址 $sIcon = empty($aProductionArticle['icon']) ? '' : $aProductionArticle['icon']; if(!empty($sIcon)){ - // $sIconUrl = rtrim(ROOT_PATH).$this->sArticleIcon.'/'.$sIcon; - // if(file_exists($sIconUrl)){ - // $sIcon = '\KeywordImage{'.$sIconUrl.'}'; - // }else{ - // $sIcon = ''; - // } - //下载图片 - $sImagePath = trim($this->sSubmissionUrl,'/').$this->sArticleIcon.'/'.$sIcon; - $aImageInfo = $this->getImage($sImagePath,$aProductionArticle['article_id']); - if(!empty($aImageInfo['data'])){ - $aImageInfo['data'] = './image/'.basename($aImageInfo['data']); - $sIcon = '\KeywordImage{'.$aImageInfo['data'].'}'; + $sIconUrl = ROOT_PATH.trim($this->sArticleIcon,'/').'/'.$sIcon; + if(file_exists($sIconUrl)){ + $sIconUrl = str_replace(ROOT_PATH.'public/', '', $sIconUrl); + $sIconUrl = '../../'.$sIconUrl; + $sIcon = '\KeywordImage{'.$sIconUrl.'}'; }else{ $sIcon = ''; } + // //下载图片 + // $sImagePath = trim($this->sSubmissionUrl,'/').$this->sArticleIcon.'/'.$sIcon; + // $aImageInfo = $this->getImage($sImagePath,$aProductionArticle['article_id']); + // if(!empty($aImageInfo['data'])){ + // $aImageInfo['data'] = './image/'.basename($aImageInfo['data']); + // $sIcon = '\KeywordImage{'.$aImageInfo['data'].'}'; + // }else{ + // $sIcon = ''; + // } } $aSearch['{{article_icon}}'] = $sIcon; $aSearch['{{keywords}}'] = $sKeywords; @@ -314,21 +316,20 @@ page={{stage_page}},%号 continue; } - // $sIconUrl = rtrim(ROOT_PATH).$this->sArticleIcon.'/'.$sIcon; - // if(file_exists($sIconUrl)){ - // $sIcon = '\KeywordImage{'.$sIconUrl.'}'; - // }else{ - // $sIcon = ''; - // } - //下载图片 - $sImagePath = trim($this->sSubmissionUrl,'/').$this->sArticleMainImage.'/'.$aImageInfo['url']; - $aResult = $this->getImage($sImagePath,$aProductionArticle['article_id']); - if(empty($aResult['data'])){ + $sMainImageUrl = ROOT_PATH.trim($this->sArticleMainImage,'/').'/'.$aImageInfo['url']; + if(!file_exists($sMainImageUrl)){ continue; } + // //下载图片 + // $sImagePath = trim($this->sSubmissionUrl,'/').$this->sArticleMainImage.'/'.$aImageInfo['url']; + // $aResult = $this->getImage($sImagePath,$aProductionArticle['article_id']); + // if(empty($aResult['data'])){ + // continue; + // } // $aImageSearch = ['{{img_url}}' => $aResult['data'],'{{img_title}}' => $aImageInfo['note'],'{{img_fig_sim}}' => 'img_fig_sim_'.$value['ami_id']]; // $sImageTempalteInfo = str_replace(array_keys($aImageSearch), array_values($aImageSearch), $sImageTempalte); - $aImageInfo['image_url'] = $aResult['data']; + // $aImageInfo['image_url'] = $aResult['data']; + $aImageInfo['image_url'] = $sMainImageUrl; $aDealImage = $this->dealImage($aImageInfo); if(empty($aDealImage['data'])){ continue; @@ -642,7 +643,8 @@ page={{stage_page}},%号 $isWideImage = $imageWidth > $wideImageThreshold; // 生成LaTeX图片代码 - $sImageUrl = './image/'.basename($sImageUrl); + $sImageUrl = str_replace(ROOT_PATH.'public/', '', $sImageUrl); + $sImageUrl = '../../'.$sImageUrl; if ($isWideImage) { $latexLines[] = "\\begin{figure*}[htbp]"; // 使用figure*环境实现两栏 $latexLines[] = " \\centering";