跳到主要内容

批量生成二维码

一张电子表格进去,一整批印刷用的码出来。

CSV 文件的每一行都会按你的设计变成一个码,一次最多一万个,以 ZIP 或标签纸的形式输出。

  1. 电子表格

    把 CSV 文件拖到这里,或者选择一个

    存为 UTF-8 的文件总是按 UTF-8 读取。如果文件里的文字显示成乱码,请选择你的电子表格软件保存它时所用的编码。

  2. 每个字段的来源

    模板可以混合文字和列:用花括号写上列名,就能填入该列的值。

    和上面一样使用模板。文件名里不能用的字符会被替换,重复的名字会加上编号。

  3. 预览

    添加一张电子表格,就能在这里看到它的各行。

  4. 输出

    输出
    每个文件的格式
    扫描检查

    每个码都使用「制作」中的设计。

工作室需要 JavaScript,因为它做的一切都在这个页面里进行。本页下方的离线文件就是同一个工作室,装在一份你可以留存的文档里。

详细说明

从一列数值到一盒标签。

内容是一个模板:普通文字,中间用花括号写入列名,这样一列商品编号就会变成每行一个网址。文件名也按它们自己的模板生成。无法生成的行,比如带空格的网址,会按行号报告并被略去,而不是变成一个摆上货架才发现扫不出来的码。

ZIP 里每一行对应一个你所选格式的文件,并附有一份清单,列出每一行的处理结果。标签纸按常见的 A4 和 US Letter 版式排版,从地址标签到名片和圆形贴纸都有,输出为可用桌面打印机打印的 PDF。电子表格本身就在这个标签页里读取,当它是一份客户名单时,这一点很重要。

静态码

码和它指向的地方之间,什么都没有。

很多二维码网站卖一种他们称为「动态码」的东西。你印出来的码指向他们的服务器,服务器再把每一次扫描转发到你的链接;试用或订阅一结束,转发也就停了。试用期往往是七到十四天,等它结束时,这个码通常已经印在菜单、包装盒或店铺橱窗上了。

在这里制作的码,本身就装着你的链接、你的网络或你的联系方式。手机直接从图案里把它们读出来,所以中间没有服务器,也没有任何人能关掉的东西。只要它指向的页面还能打开,它就一直能用。

以后更改目标地址

人们买动态码,通常是为了在印好之后还能改它指向的地方。这件事你可以按自己的方式来做:让码指向你自己掌控的网站上的一个地址,比如 example.com/menu,再把这个地址重定向到任何你想去的地方。工作室会为 Cloudflare、Netlify、Vercel、Apache 和 nginx 写好重定向规则,没有重定向设置的主机则可以用它写出的一个小 HTML 页面;对于你以后可能更改的目标地址该用哪种状态码,它也会告诉你。

统计扫描次数

想知道有多少人扫过一个码,就给它的链接加上推广活动参数,由你自己的分析工具来统计访问。工作室会替你填好来源、媒介和推广活动。统计数字留在你的分析工具里,和你统计的其他数据放在一起,别人看不到。

扫描检查

在印出来之前检查,而不是之后。

一个码可以完全符合标准,贴到墙上却照样扫不出来:相对于距离太小,对比度太低,或者标志盖住了读码器需要的模块。在你保存之前,工作室会像手机那样,把每个设计读回一遍。

  • 模拟拍摄画面

    检查会把码放进一张张模拟照片里:离得很远、对焦不准、斜着拍、光线很差,再像一个严格的手机读码器那样逐张读取。只有在完美条件下才扫得出的码,通不过检查。

  • 你的尺寸,你的距离

    告诉它人们会站在多远的地方、码会印多宽,它就按这两条来检验设计。结果用直白的话给出:在你选定的毫米宽度下,从多少厘米之外仍能读出。

  • 量得出来的对比度

    每一组颜色旁边都标着它的对比度;模块比背景还浅时,工作室会指出来,因为很多手机读不了这样的码。透明背景按白色来测量,并会提醒你对照实际要印上去的东西再检查一遍。

  • 给标志留出空间

    标志会盖住码的一部分,而让手机能绕过它读出内容的,正是纠错。工作室会建议使用留出空间最多的 H 级,在标志四周留出空隙,并在标志就位的情况下运行检查。

  • 三种结论

    「扫描良好」「能扫描,但需留意」或「无法稳定扫描」,每种都附有原因,有修正办法时也会给出。之后再改动设计,结果就会被标为已过时,直到重新运行检查。

码里能装什么

二十二种内容,每一种都按手机预期的格式写入。

Wi-Fi 码、联系人名片和银行转账各有一套自己的小格式,手机遇到写得稍有差错的码,只会把文本显示出来。每个字段都会在你输入时检查:IBAN 和 GTIN 核对校验位,电话号码核对国家代码。有专门页面的类型都附有链接。

日常

  • 网页链接

    在浏览器中打开的网址。

  • 文本

    任意文本,按原样显示。

  • 电子邮件

    一封已填好收件地址、主题和正文的电子邮件。

  • 拨打电话

    一个要拨打的电话号码。

  • Wi-Fi 网络

    Wi-Fi 网络的名称和密码,让手机无需手动输入就能加入。

  • 联系人名片

    包含姓名、电话号码、电子邮件和地址的联系人,一步就能存进通讯录。

  • 联系人名片(精简)

    更短的联系人名片,生成的码更小,但信息比完整的名片少。

  • 日历事件

    带有时间和地点的事件,一步就能添加到日历。

  • 地图位置

    地图上的一个点,在地图应用中打开。

消息与通话

  • 短信

    一条已填好号码和内容的短信。

  • WhatsApp 聊天

    与某个号码的 WhatsApp 聊天,你也可以预先写好一条消息。

  • Telegram 聊天

    与某个用户名或电话号码的 Telegram 聊天。

  • Signal 聊天

    与某个电话号码的 Signal 聊天。

  • FaceTime 通话

    拨给某个电话号码或电子邮件地址的 FaceTime 通话。

付款

  • SEPA 转账

    一笔已填好账户、金额和参考号的欧元银行转账,供欧洲的银行应用使用。

  • 瑞士 QR 账单

    瑞士 QR 账单的付款部分,以瑞士法郎或欧元计价。

  • Pix 付款

    向某个 Pix 密钥付款,供巴西的银行应用使用。

  • UPI 付款

    向某个收款地址发起的 UPI 付款,供印度的付款应用使用。

  • Bitcoin 付款

    向某个 Bitcoin 地址付款的请求,可以预先填好金额。

  • Lightning 发票

    钱包生成的 Lightning 发票,做成扫描即可付款的码。

商品与发票

  • 商品链接(GS1)

    一种商品码:收银台把它当作条形码读取,手机则把它当作网页打开。

  • 沙特电子发票

    沙特税务发票上的码。这里可以读取,但不能生成。

设计

你的配色,你的标志,都在摄像头读得出的范围之内。

从四十六个预设中选一个开始,每个预设都用你自己的内容绘制,而不是示例;也可以每个部分都自己设置。「随机搭配」会挑出一套仍然扫得出的新组合,「撤销」可以退回去。

  • 模块与定位方块

    十四种模块形状,从方形、圆点到条形、六边形和星形;定位方块由九种外环和八种中心组合而成,每一种只在手机仍能从你选的模块中找到它时才会提供,所以三个角既可以贴合品牌,也可以与品牌形成反差。

  • 颜色与渐变

    纯色、线性渐变、径向渐变或图案,可以铺满整个码,也可以在每个模块内部各自呈现;定位方块和背景各有自己的颜色,背景还可以是透明的。

  • 标志与图标

    添加你自己的 PNG、JPEG 或 WebP 格式标志,或者从十六个内置图标中选一个,涵盖链接、Wi-Fi、菜单、音乐等用途。你可以选择它四周留多少空隙、是否清除它下面的模块,以及是否给它垫一块底板。

  • 边框与说明文字

    十一种边框,从横幅、对话气泡到票券、吊牌和邮票,每种都配有一句说明文字,比如「扫一扫」,告诉人们这个码是做什么用的。

  • 实际尺寸的校样

    码以印刷校样的形式显示。拿一张银行卡贴在屏幕上校准一次,校样就会按实际印刷的宽度绘制,让你在用上纸之前就能判断尺寸。

  • 品牌套件与已保存的设计

    把你的配色、你的标志和你喜欢的设计存进设计库:可以是一个你保存和打开的文件,也可以是这个浏览器里的设计库,它在你开启之前一直关着,关掉时就会被删除。设计只保存码的外观,从不保存码的内容,所以设计库文件可以放心发给同事。

扫描与安全

去之前,先看清一个码会把你带到哪里。

把摄像头对准一个码,打开一张它的图片,或者粘贴一张截图。在打开任何东西之前,工作室会准确显示码里装着什么、手机会拿它做什么;如果其中有值得再看一眼的地方,也会直接说出来。

  • 码里写什么,就显示什么

    内容按它在码里写的样子显示,并标明它是哪一类内容、手机会拿它做什么:打开一个网页、加入一个网络、保存一位联系人,或者发起一笔付款。

  • 形似地址

    以下情况它都会标出来:用别的字母表里长得像普通字母的字符写成的地址,混用多种字母表的地址,用数字代替名称的地址,以及故意写得像另一个网站的链接。

  • 重定向服务

    它会点出一个链接经过的短链接服务和二维码重定向服务,因为运营这些服务的人决定着扫描最终去往哪里,而且随时都能更改。

  • 付款与消息

    当一个码会发起付款、预先写好一条消息、加入一个没有密码的网络,或者拨打带 * 或 # 的服务代码时,它都会告诉你;这类服务代码可能会更改手机设置,比如呼叫转移。

  • 跟踪参数与不安全的链接

    它会数出一个链接带着多少个跟踪参数,在链接没有使用安全连接时发出警告,还会指出那些长到你能看到的部分可能并不是关键部分的链接。

  • 在你的机器上读取

    摄像头画面或图片就在这个页面里读取,不会发往任何地方,所以检查一个码,不会让任何人知道它的内容。

替换经过别人服务器的码

如果你已经印好的码要经过一个重定向服务,就在这里扫描它,打开它通向的地址,再为那个最终地址制作一个新的静态码。新码不再依赖那项服务。你扫描的任何码,也都可以在「制作」里重做,内容原样不变,用上你自己的设计。

批量与打印

一张电子表格,一千个码。

CSV 文件的每一行,都会按你在「制作」里做好的设计变成一个码。文件在这个页面里读取,一次最多一万行,里面的任何内容都不会被发往任何地方。

  • 把列变成内容

    把内容写成模板,在文字中间用花括号写入列名,这样一列商品编号就会变成每行一个网址。文件名也按模板生成:文件名里不能用的字符会被替换,重复的名字会加上编号。

  • 其他编码的导出文件

    UTF-8 文件(Google 表格和 Numbers 表格都这样保存)按原样读取,Excel 的 UTF-16「Unicode 文本」也一样。其他文件则按 Windows 版 Excel 在页面所用语言下保存 CSV 时的编码读取:日文页面用 Shift_JIS,中文页面用 GBK,阿拉伯文页面用 Windows-1256,其余页面用 Windows-1252。工作室这样读取时会告诉你。如果文字仍然显示成乱码,请从列表里选择文件的编码,这个列表还提供 Big5、韩文和西里尔文编码。

  • 附带清单的 ZIP

    把每个码按你选的格式各存成一个文件,打包进一个 ZIP 下载,里面附带一份清单,列出每一行的处理结果。没能生成的行会在清单里写明,而不是悄无声息地缺掉。

  • 标签纸

    也可以把这一批排成标签纸 PDF,采用常见的 A4 和 US Letter 版式,从小号地址标签到名片和圆形贴纸都有,直接用桌面打印机就能打印。

  • 交给印刷厂

    PDF 和 EPS 可以输出为 CMYK,PDF 还可以带上出血和裁切线。SVG 在任何尺寸下都让每个模块保持清晰的形状,适合标识牌或任何需要缩放的用途。

  • 按实际尺寸打印

    单个码可以按检查时设定的宽度直接送到打印机,PNG 也会记录它的打印分辨率,所以排版软件放置它时同样是这个尺寸。

隐私

你放进码里的东西,留在你自己手里。

二维码装的往往是人们不愿公开的东西:Wi-Fi 密码、手机号码、联系人名片上的家庭住址、IBAN。生成码、绘制它、检查它,以及把码读回来,全都在这个标签页里进行。

  • 不发送任何内容

    你输入的内容、你添加的标志、你打开的电子表格和你扫描的图片,全都在你的机器上处理。没有账号,服务器上也没有副本,因为制作码的每一步都不需要这些。

  • 内容从不保存

    工作室从不保存码的内容。设计和品牌套件只在你要求时才会保存:存进你保存的设计库文件,或者存进这个浏览器里的设计库;后者在你开启之前一直关着,关掉时就会被删除。两者保存的都只是码的外观,不含任何内容。

  • 这些页面没有分析统计

    工作室的页面不加载任何分析脚本,它们的内容安全策略只允许连接本站。你可以在浏览器的开发者工具里看到这两点。

  • 你能读的源代码

    制作、检查和读取码的全部代码都以 MIT 许可发布,放在 GitHub 上,也作为 npm 包发布;它没有运行时依赖,所以底下没有任何你读不到的东西。

离线

整个工作室,装进一个你可以留存的文件。

每次发布都附带一个单 HTML 文件形式的工作室。从你自己的磁盘上打开它,再把网络关掉:它的每个部分都照常工作,因为它从一开始就没有哪一部分需要网络。

文件

单文件版

「制作」「扫描」「批量」和设计库都在一份文档里,脚本和样式表也写在里面。它不保留 cookie,也不往浏览器存储里放任何东西,开头几行就带着一份拒绝一切连接的内容安全策略。

许可协议
MIT
从版本发布列表下载

校验下载的文件

每次发布都会在 HTML 文件旁附上一个 SHA256SUMS 文件,以及一份构建来源证明;GitHub 会依据生成该文件的工作流运行和提交为这份证明签名。

构建过程是确定性的,所以也可以从源代码重新构建这个文件,再逐字节比较。所需的命令写在代码仓库的 RELEASING.md 里。

macOS 和 Linux,SHA256SUMS 放在同一个文件夹里

shasum -a 256 -c SHA256SUMS

Windows,然后把结果与 SHA256SUMS 对照

certutil -hashfile qr-code-studio.html SHA256

构建来源证明,使用 GitHub 的命令行工具

gh attestation verify qr-code-studio.html --repo hexpro-dev/qr-code-studio

自己试一试

打开这个文件,关掉 Wi-Fi,然后制作、检查、保存并扫描一个码。项目自己的测试在 Chromium、Firefox 和 WebKit 中做同样的事,只要有一个请求离开页面,或者留下了任何东西,测试就不通过。

细节

具体规格。

除非某一行另有说明,这些数据同时适用于本页和离线文件,两者由同一份源代码构建。

运行环境
任何现代浏览器,手机或电脑皆可
内容
二十二种,从网页链接、文本、Wi-Fi 和联系人名片,到 SEPA、Pix 和 UPI 付款,以及 GS1 Digital Link
码制
QR Code Model 2,版本 1 至 40;另有用于极小印刷的 Micro QR 和矩形 Micro QR
纠错
L、M、Q 和 H,约为 7%、15%、25% 和 30%
保存格式
SVG、PNG、PDF、EPS、JPEG 和 WebP,也可以按实际尺寸直接打印
印刷色彩
sRGB,PDF 和 EPS 可用 CMYK;PDF 可带出血和裁切线
批量
每批最多一万行 CSV,输出为文件 ZIP 包或标签纸 PDF
读取来源
摄像头、图片或粘贴的截图
扫描检查
按你的印刷尺寸和距离生成模拟拍摄画面:远距离、失焦、倾斜和光线不足
有效期
没有期限。码是静态的,内容就装在码本身里
网络
你输入的任何内容都不会被发送。没有分析统计,只连接本站
存储
码的内容从不保存。设计存进你留存的文件,或者存进你在这个浏览器里开启的设计库
离线
一个不在浏览器中保留任何内容的单 HTML 文件,发布时附有 SHA-256 校验和与构建来源证明
依赖
运行时没有依赖
许可协议
MIT

QR Code 是 DENSO WAVE INCORPORATED 的注册商标。

值得一问的问题。

真的免费吗?
是的。没有账号,没有套餐,也没有试用期,你做多少个码、它们被扫多少次都没有限制。在这里做的码由你打印和使用,用于商业项目或其他任何场合都可以,没有水印,也不要求署名。
我的二维码会失效吗?
不会因为这里的任何原因失效。码直接装着它的内容,所以只要内容还有效,它就能用:网页链接在页面还在时能用,Wi-Fi 码在密码改掉之前能用。码一旦做好,我们这边就不再参与任何环节。
你们为什么不提供动态码或扫描统计?
两者都需要在每一次扫描的路径上放一台服务器。正是这台服务器让网站能够统计扫描、更改目标地址;也正是它,让一个码在套餐停止付费,或者背后的公司关门时失效。我们宁愿印出来的码永远不依赖我们。人们想从动态码得到的两样东西,照样可以做到:让码指向你自己网站上的一个地址并做重定向,再加上推广活动参数,让你自己的分析工具统计访问。
码印好之后,还能改它指向的地方吗?
只有当码指向你自己掌控的东西时才行。使用你自己域名下的一个地址,比如 example.com/menu,需要时随时更改它背后的重定向;工作室会为常见的主机写好这条重定向。对于可能更改的目标地址,请使用临时状态码 302 或 307,因为浏览器会记住永久重定向。
怎么统计有多少人扫过它?
给链接加上推广活动参数(来源、媒介和推广活动),访问就会出现在你网站现有的分析工具里。工作室会替你加上这些参数,数据始终归你所有。
加上标志会让它扫不出来吗?
只要留足空间就不会。纠错让手机在码被盖住一部分时仍能读出它,H 级留出的空间最多,约占码的 30%。扫描检查会在标志就位的情况下读取这个码,所以你会在打印之前就知道结果,而不是之后。
哪些颜色能稳定扫描?
浅色背景上的深色模块,两者之间对比强烈。很多手机读不了模块比背景还浅的码,白底上的浅色在光线差时也常常扫不出来。工作室会显示你选的每一组颜色的对比度,太低时会告诉你。
应该印多大?
这取决于人们离它有多远。输入最远的扫描距离和印刷宽度,扫描检查就会告诉你这个码是否经得住。短链接生成的码更简单,同样尺寸下能从更远的地方读出。
扫描检查能保证每部手机都读得出吗?
任何检查都做不到。它通过模拟拍摄画面读取这个码,这些画面比大多数真实拍摄更苛刻,能发现常见的失败原因。大批量印刷之前,请用你的受众可能使用的手机扫一扫试印样张。
把 Wi-Fi 密码放进二维码安全吗?
密码以文本形式写在码里,所以任何扫描它的人都能读到;一张清晰的码的照片,就等于这个密码本身。所有 Wi-Fi 码都是这样。把它放在你愿意把密码直接写在墙上的地方;如果这个码出现在了不该出现的地方,就把密码改掉。
我怎么判断一个码能不能放心打开?
先在这里扫描它。工作室会显示完整的地址或内容,以及手机会拿它做什么,并对形似地址、重定向服务、付款和会运行脚本的链接发出警告,这一切都在打开任何东西之前完成。
一次能做多少个码?
一批最多可处理 CSV 文件中的一万行,输出为附带清单的文件 ZIP 包,或标签纸 PDF。更长的列表可以拆成几个文件,一批一批地做。
可以把码交给印刷厂吗?
可以。保存为 CMYK 的 PDF 或 EPS,如果印刷厂要求,PDF 还可以加上出血和裁切线;也可以保存为 SVG,它在任何尺寸下都保持清晰。
我输入的东西会被上传吗?
不会。码在你的浏览器里生成、绘制和检查,你扫描的图片也在那里读取。浏览器开发者工具的网络面板里,看不到任何把它带走的请求;离线文件则在断网的情况下做同样的事。
没有互联网连接也能用吗?
离线文件可以。从版本发布列表下载它,从你自己的磁盘上打开,断网时它的每个部分都能用。
Micro QR 和矩形 Micro QR 是什么?
它们是更小的码制,用于放不下普通 QR 码的印刷位置,比如元器件标签或小包装的边缘。大多数手机摄像头两种都读不了,所以每当你选用其中一种,工作室都会提醒你。只有在读码的是你确知支持它们的扫码器时,才使用它们。
我该选哪种文件格式?
需要缩放或编辑的用途选 SVG,比如标识牌或网站。交给印刷厂选 PDF 或 EPS。文档、幻灯片和电子邮件选 PNG,按你需要的宽度导出。某个系统别的都不收时,再用 JPEG 和 WebP。

更多页面

同一个工作室,为一件事打开。

这些每一个都是本工作室,已经按名字所说的用途设置好,前面配了一页专门讲那件事的文字。它们背后没有任何本页上没有的东西。