validate([ 'stem' => 'required|string', 'options' => 'nullable|array', 'answer' => 'nullable|string', 'solution' => 'nullable|string', ]); try { $service = app(ExamPdfExportService::class); // 过滤空选项 $options = array_filter($request->input('options', []), fn($v) => !empty($v)); // 构建题目数据数组 $questionData = [ 'stem' => $request->input('stem'), 'options' => $options, 'answer' => $request->input('answer'), 'solution' => $request->input('solution'), ]; $result = $service->generatePreviewPdf($questionData); if (!$result || empty($result['url'])) { throw new \Exception('PDF 生成失败'); } return response()->json([ 'success' => true, 'url' => $result['url'], ]); } catch (\Exception $e) { return response()->json([ 'success' => false, 'error' => $e->getMessage(), ], 500); } } }