技术博客
条码生成与识别:13 种条码格式(formatType)对照与选型指南

条码生成与识别:13 种条码格式(formatType)对照与选型指南

作者: 万维易源
2026-08-28
条码格式formatTypeEAN13CODE128选型指南
# 条码生成与识别:13 种条码格式(formatType)对照与选型指南 > 接口/接入点:条码生成与识别(apiCode 1129)· 1129-1 生成 | 是否免费:免费 | 请求方式:POST/GET | 返回格式:JSON | 适用人群:开发者、产品经理 | 阅读时间:约 6 分钟 ## TL;DR - 生成接口用 `formatType`(数字 1–13)选择条码类型,缺省不传按服务端默认(示例为 5=CODE_128)。 - 13 种格式覆盖一维码主流标准:EAN/UPC 系、CODE 系、ITF、PDF_417、RSS 系、CODABAR。 - 选型看场景:商品零售用 EAN_13/UPC,内部物流用 CODE_128,图书用 EAN_13(ISBN),堆叠式二维用 PDF_417。 ## Why:为什么需要选型 不同条码标准的编码容量、字符集、行业约定都不一样。给错 `formatType`,要么生成失败(内容与格式不匹配),要么生成的条码扫码设备不认。先把"我要表达什么数据、谁来解码"想清楚,再选格式,能少走很多弯路。 ## What:formatType 取值对照 `formatType` 为可选参数,传数字: | formatType | 格式名 | 典型场景 | |----|----|----| | 1 | EAN_8 | 小包装商品短条码 | | 2 | EAN_13 | 商品零售(含 ISBN 书号) | | 3 | CODE_39 | 工业/内部物料编号 | | 4 | CODE_93 | CODE_39 高密度变种 | | 5 | CODE_128 | 物流、仓储、内部编码(默认示例值) | | 6 | ITF | 仓储、配送(交错二五码) | | 7 | PDF_417 | 堆叠式二维条码(证件、票据) | | 8 | RSS_14 | GS1 _databar 系列 | | 9 | RSS_EXPANDED | GS1 Databar 扩展 | | 10 | UPC_A | 北美零售商品码 | | 11 | UPC_E | UPC_A 缩短版 | | 12 | UPC_EAN_EXTENSION | UPC/EAN 附加码 | | 13 | CODABAR | 血库、图书馆、物流 | > 文档未明确说明默认值,仅示例传 `5`(CODE_128);不传时以服务端实际默认为准。 ## How:按格式生成示例 以生成 EAN_13(`formatType=2`)为例: Python: ```python import requests APPKEY = "YOUR_APPKEY" resp = requests.post( f"https://route.showapi.com/1129-1?appKey={APPKEY}", data={"content": "6901294172197", "formatType": "2", "width": "150", "height": "60"}, timeout=10, ) body = resp.json().get("showapi_res_body", {}) if body.get("ret_code") == "0": print("EAN_13 图片:", body.get("imgUrl")) ``` cURL: ```bash curl -X POST "https://route.showapi.com/1129-1?appKey=YOUR_APPKEY" \ -H "content-type: application/x-www-form-urlencoded" \ -d "content=6901294172197&formatType=2&width=150&height=60" ``` Node.js: ```javascript const APPKEY = "YOUR_APPKEY"; const body = new URLSearchParams({ content: "6901294172197", formatType: "2", width: "150", height: "60" }); const res = await fetch(`https://route.showapi.com/1129-1?appKey=${APPKEY}`, { method: "POST", headers: { "content-type": "application/x-www-form-urlencoded" }, body }); console.log((await res.json()).showapi_res_body.imgUrl); ``` ## 返回示例与解析 ```json { "showapi_res_body": { "imgUrl": "http://app2.showapi.com/img/barCodeImg/20160930/xxxx.jpg", "ret_code": "0" } } ``` ## 进阶 / 边界 - **内容与格式要匹配**:`content` 必须满足所选格式的编码规则(如 EAN_13 需 12–13 位数字、CODE_128 支持更宽字符集)。不匹配会返回 `ret_code` 非 0,此时换 `formatType` 或核对内容。 - **尺寸范围**:`width` 95–500 像素、`height` 20–120 像素,超出无效。 - **图片有效期**:生成图片每 12 小时删除,见 [12 小时过期策略](https://www.showapi.com/guides/barcode-image-expiry-1129)。 ## FAQ **Q:不传 formatType 会用哪种?** 文档未明说默认值,仅示例用 5(CODE_128)。建议显式传值,避免依赖未文档化的默认行为。 **Q:能生成二维码(QR Code)吗?** 文档 13 种格式中不含 QR Code;列表中的 PDF_417 是堆叠式二维条码,非 QR。需要 QR 请另寻对应接口。 **Q:CODE_128 和 CODE_39 怎么选?** CODE_128 字符集更全、密度更高,通用性强,适合物流/仓储;CODE_39 更"老派"、容错好,部分工业设备只认它。 **Q:生成的条码能被手机普通扫码 App 识别吗?** EAN_13、CODE_128、PDF_417 等主流格式均可被常见扫码工具识别;具体以你手头的扫码设备/App 为准。 **Q:width/height 单位是?** 像素(文档示例值 150×30)。范围 width 95–500、height 20–120。 ## 相关能力 / 下一步阅读 - [条码生成与识别:5 分钟接入,从注册到生成第一条条码与识别第一张图](https://www.showapi.com/guides/barcode-quickstart-1129) - [条码生成图片 12 小时过期:缓存与本地落盘保存策略](https://www.showapi.com/guides/barcode-image-expiry-1129) - [零售与仓储如何用条码生成接口做商品条码与价签](https://www.showapi.com/guides/barcode-generate-retail-1129) - **本系列共 12 篇**:查看[条码生成与识别指南总目录](https://www.showapi.com/guides/barcode-guides-1129)