You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用endroid/qr-code生成的SVG二维码无法在Adobe Illustrator打开

问题原因分析

endroid/qr-code生成的SVG无法在Adobe Illustrator 28.0中正常显示,核心原因是该库默认生成的SVG包含AI对SVG标准支持不完善的特性,常见情况包括:

  • 生成的二维码方块使用了圆角属性(rx/ry),AI对SVG矩形的圆角渲染存在兼容性问题
  • SVG中嵌入了AI不兼容的CSS样式属性(如shape-rendering、vector-effect)
  • viewBox与实际尺寸的映射关系不符合AI的解析逻辑
修复方案

针对上述问题,可通过调整PHP生成配置或修改输出的SVG代码两种方式解决:

方式一:调整PHP生成配置(推荐)

修改QR Code的生成参数,移除AI不兼容的特性,生成原生兼容的SVG:

// create QR code
$qrCode = QrCode::create($url)
            ->setEncoding(new Encoding('UTF-8'))
            ->setErrorCorrectionLevel(new ErrorCorrectionLevelLow())
            ->setSize(210)
            ->setMargin(0)
            // 禁用圆角方块模式,改为无圆角的严格对齐模式
            ->setRoundBlockSizeMode(new RoundBlockSizeModeNone())
            ->setForegroundColor(new Color(0,0,0))
            ->setBackgroundColor(new Color(255,255,255))
            // 配置SVG写入器,移除不必要的CSS属性
            ->setWriterOptions([
                'exclude_xml_declaration' => false,
                'indent' => false,
                'add_root_id' => false,
                // 禁用形状渲染优化属性,避免AI无法识别
                'shape_rendering' => null,
            ]);

方式二:手动修复生成的SVG代码

如果无法修改生成配置,可直接编辑输出的SVG文件:

  • 移除所有<rect>标签中的rx和ry属性
  • 删除SVG根标签内的style属性(如style="shape-rendering: crispEdges;")
  • 确保viewBox属性值与width/height属性完全匹配,示例:
    <svg width="210" height="210" viewBox="0 0 210 210" xmlns="http://www.w3.org/2000/svg">
    
验证方法

修改后重新生成SVG,在Illustrator中打开即可正常显示二维码内容。

内容的提问来源于stack exchange,提问作者joshmoto

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 04:47:45