|
@@ -37,6 +37,37 @@ protected function error($message = 'error', $status = 400, $data = []) |
|
@@ -37,6 +37,37 @@ protected function error($message = 'error', $status = 400, $data = []) |
|
37
|
}
|
37
|
}
|
|
38
|
|
38
|
|
|
39
|
/**
|
39
|
/**
|
|
|
|
40
|
+ * 生成二维码
|
|
|
|
41
|
+ * @param Request $request
|
|
|
|
42
|
+ * @return string
|
|
|
|
43
|
+ * @author Akun
|
|
|
|
44
|
+ * @date 2026/03/05 10:28
|
|
|
|
45
|
+ */
|
|
|
|
46
|
+ public function createQr(Request $request)
|
|
|
|
47
|
+ {
|
|
|
|
48
|
+ $qrText = $request->input('qr_text');
|
|
|
|
49
|
+ if (empty($qrText)) {
|
|
|
|
50
|
+ return $this->error('二维码内容未知');
|
|
|
|
51
|
+ }
|
|
|
|
52
|
+
|
|
|
|
53
|
+ // 生成二维码图片
|
|
|
|
54
|
+ try {
|
|
|
|
55
|
+ $qrImage = 'www/wwwroot/qrcode/qrcode_' . time() . '.png';
|
|
|
|
56
|
+ $renderer = new ImageRenderer(
|
|
|
|
57
|
+ new RendererStyle(300, 0),
|
|
|
|
58
|
+ new GdImageBackEnd() // 使用 GD 后端
|
|
|
|
59
|
+ );
|
|
|
|
60
|
+ $writer = new Writer($renderer);
|
|
|
|
61
|
+
|
|
|
|
62
|
+ $writer->writeFile($qrText, $qrImage);
|
|
|
|
63
|
+
|
|
|
|
64
|
+ return $this->success(['qr_image' => $qrImage]);
|
|
|
|
65
|
+ } catch (\Exception $e) {
|
|
|
|
66
|
+ return $this->error($e->getMessage());
|
|
|
|
67
|
+ }
|
|
|
|
68
|
+ }
|
|
|
|
69
|
+
|
|
|
|
70
|
+ /**
|
|
40
|
* pdf文件添加二维码
|
71
|
* pdf文件添加二维码
|
|
41
|
* @param Request $request
|
72
|
* @param Request $request
|
|
42
|
* @return string
|
73
|
* @return string
|
|
@@ -52,27 +83,20 @@ public function addQrToPdf(Request $request) |
|
@@ -52,27 +83,20 @@ public function addQrToPdf(Request $request) |
|
52
|
{
|
83
|
{
|
|
53
|
$sourceFile = $request->input('original_pdf');
|
84
|
$sourceFile = $request->input('original_pdf');
|
|
54
|
if (empty($sourceFile)) {
|
85
|
if (empty($sourceFile)) {
|
|
55
|
- return $this->error('原始pdf地址未知');
|
86
|
+ return $this->error('pdf地址未知');
|
|
56
|
}
|
87
|
}
|
|
57
|
if (!file_exists($sourceFile)) {
|
88
|
if (!file_exists($sourceFile)) {
|
|
58
|
- return $this->error('原始pdf文件不存在');
|
89
|
+ return $this->error('pdf文件不存在');
|
|
59
|
}
|
90
|
}
|
|
60
|
- $qrText = $request->input('qr_text');
|
|
|
|
61
|
- if (empty($qrText)) {
|
|
|
|
62
|
- return $this->error('二维码内容未知');
|
91
|
+ $qrImage = $request->input('qr_image');
|
|
|
|
92
|
+ if (empty($qrImage)) {
|
|
|
|
93
|
+ return $this->error('二维码地址未知');
|
|
|
|
94
|
+ }
|
|
|
|
95
|
+ if (!file_exists($qrImage)) {
|
|
|
|
96
|
+ return $this->error('二维码文件不存在');
|
|
63
|
}
|
97
|
}
|
|
64
|
|
98
|
|
|
65
|
- // 生成二维码图片
|
|
|
|
66
|
- $qrImage = public_path('qrcode_temp.png');
|
|
|
|
67
|
- $renderer = new ImageRenderer(
|
|
|
|
68
|
- new RendererStyle(300, 0),
|
|
|
|
69
|
- new GdImageBackEnd() // 使用 GD 后端
|
|
|
|
70
|
- );
|
|
|
|
71
|
- $writer = new Writer($renderer);
|
|
|
|
72
|
-
|
|
|
|
73
|
- // 生成 PNG 图片数据
|
|
|
|
74
|
- $writer->writeFile($qrText, $qrImage);
|
|
|
|
75
|
-
|
99
|
+ try {
|
|
76
|
$pdf = new Fpdi();
|
100
|
$pdf = new Fpdi();
|
|
77
|
|
101
|
|
|
78
|
$pageCount = $pdf->setSourceFile($sourceFile);
|
102
|
$pageCount = $pdf->setSourceFile($sourceFile);
|
|
@@ -116,9 +140,9 @@ public function addQrToPdf(Request $request) |
|
@@ -116,9 +140,9 @@ public function addQrToPdf(Request $request) |
|
116
|
$outputFile = substr($sourceFile, 0, -4) . '_' . time() . '.pdf';
|
140
|
$outputFile = substr($sourceFile, 0, -4) . '_' . time() . '.pdf';
|
|
117
|
$pdf->Output('F', $outputFile);
|
141
|
$pdf->Output('F', $outputFile);
|
|
118
|
|
142
|
|
|
119
|
- // 删除临时二维码图片
|
|
|
|
120
|
- unlink($qrImage);
|
|
|
|
121
|
-
|
|
|
|
122
|
- return $this->success(['pdf_file' => $outputFile]);
|
143
|
+ return $this->success(['target_pdf' => $outputFile]);
|
|
|
|
144
|
+ } catch (\Exception $e) {
|
|
|
|
145
|
+ return $this->error($e->getMessage());
|
|
|
|
146
|
+ }
|
|
123
|
}
|
147
|
}
|
|
124
|
} |
148
|
} |