作者 刘锟

update

... ... @@ -37,6 +37,37 @@ protected function error($message = 'error', $status = 400, $data = [])
}
/**
* 生成二维码
* @param Request $request
* @return string
* @author Akun
* @date 2026/03/05 10:28
*/
public function createQr(Request $request)
{
$qrText = $request->input('qr_text');
if (empty($qrText)) {
return $this->error('二维码内容未知');
}
// 生成二维码图片
try {
$qrImage = 'www/wwwroot/qrcode/qrcode_' . time() . '.png';
$renderer = new ImageRenderer(
new RendererStyle(300, 0),
new GdImageBackEnd() // 使用 GD 后端
);
$writer = new Writer($renderer);
$writer->writeFile($qrText, $qrImage);
return $this->success(['qr_image' => $qrImage]);
} catch (\Exception $e) {
return $this->error($e->getMessage());
}
}
/**
* pdf文件添加二维码
* @param Request $request
* @return string
... ... @@ -52,27 +83,20 @@ public function addQrToPdf(Request $request)
{
$sourceFile = $request->input('original_pdf');
if (empty($sourceFile)) {
return $this->error('原始pdf地址未知');
return $this->error('pdf地址未知');
}
if (!file_exists($sourceFile)) {
return $this->error('原始pdf文件不存在');
return $this->error('pdf文件不存在');
}
$qrText = $request->input('qr_text');
if (empty($qrText)) {
return $this->error('二维码内容未知');
$qrImage = $request->input('qr_image');
if (empty($qrImage)) {
return $this->error('二维码地址未知');
}
if (!file_exists($qrImage)) {
return $this->error('二维码文件不存在');
}
// 生成二维码图片
$qrImage = public_path('qrcode_temp.png');
$renderer = new ImageRenderer(
new RendererStyle(300, 0),
new GdImageBackEnd() // 使用 GD 后端
);
$writer = new Writer($renderer);
// 生成 PNG 图片数据
$writer->writeFile($qrText, $qrImage);
try {
$pdf = new Fpdi();
$pageCount = $pdf->setSourceFile($sourceFile);
... ... @@ -116,9 +140,9 @@ public function addQrToPdf(Request $request)
$outputFile = substr($sourceFile, 0, -4) . '_' . time() . '.pdf';
$pdf->Output('F', $outputFile);
// 删除临时二维码图片
unlink($qrImage);
return $this->success(['pdf_file' => $outputFile]);
return $this->success(['target_pdf' => $outputFile]);
} catch (\Exception $e) {
return $this->error($e->getMessage());
}
}
}
... ...
... ... @@ -38,5 +38,6 @@
Route::get('/update_robots', [NoticeController::class, 'updateRobots']);
});
Route::any('/create_qr',[\App\Http\Controllers\Api\ToolController::class,'createQr']);
Route::any('/qr_pdf',[\App\Http\Controllers\Api\ToolController::class,'addQrToPdf']);
... ...