# PDF URL→二维码功能设计 ## 需求 导出 PDF 时,如果发现文本内容中有 URL,自动将 URL 转换为二维码,扫描可跳转。 ## 规则 - **检测位置**:任意位置(AI报告内容、标题等所有文本) - **替代方式**:二维码替代原 URL 文字 - **二维码大小**:60x60pt(约2.5cm) - **放置位置**:URL 原文字位置 ## 技术方案 **新增依赖:** - `qrcode` Python 包 **修改文件:** - `app/services/pdf_generator.py` **实现步骤:** 1. 安装 qrcode 包 2. 在 `generate_pdf()` 中,正则检测 URL(`http://` 或 `https://` 开头) 3. 检测到 URL 时,生成二维码 PNG 图片 4. 用 ReportLab 的 `Image` flowable 嵌入 PDF,替代原 URL 文字 **二维码生成方式:** ```python import qrcode from io import BytesIO def generate_qr_image(url, size=60): qr = qrcode.make(url) buf = BytesIO() qr.save(buf, format='PNG') buf.seek(0) return buf ``` **URL 正则:** `https?://[^\s<>"{}|\\^`\[\]]+`