用途
Syncfusion EJ2 Angular Barcode 组件用于在 Angular 应用中生成和自定义条形码与二维码。当需要创建线性条码、生成二维码、编码 Data Matrix、自定义条码外观、导出条码图片或为二维码添加 Logo 时,可使用该组件。
主要能力
组件支持三类条码家族:
- 线性条码:Code39、Code128、Code11、Codabar、Code32、Code93,适用于产品标识、序列号、库存管理等,字符集为字母数字(因类型而异),常见于零售、仓储、电信行业。
- QR Code:适用于 URL、联系信息、支付等,支持完整 Unicode,常见于营销、移动、金融场景。
- Data Matrix:适用于紧凑编码、小标签,字符集为数字/字母数字,常见于医疗、制造、物流。
关键能力包括:7 种线性条码类型及符号验证;全面自定义(颜色、尺寸、字体、边距);通过 QRCodeLogo 为 QR 码添加 Logo;多种导出格式(PNG、JPG、Base64);QR 码自动版本选择;条码下方显示文本自定义。
使用方式
安装包为 @syncfusion/ej2-angular-barcode-generator,需注意 Ivy 与 ngcc 包的选择。基本用法示例:
<ejs-barcodegenerator
#barcode
type="Code128"
value="123456789"
width="200px"
height="150px">
</ejs-barcodegenerator>
import { Component } from '@angular/core';
import { BarcodeGeneratorComponent } from '@syncfusion/ej2-angular-barcode-generator';
@Component({
selector: 'app-root',
templateUrl: './app.component.html'
})
export class AppComponent {}
带自定义颜色的 QR 码:
<ejs-barcodegenerator
type="QRCode"
value="https://example.com"
[foreColor]="'#FF0000'"
width="200px"
height="200px">
</ejs-barcodegenerator>
导出与下载:
export class BarcodeComponent {
@ViewChild('barcode') barcode: BarcodeGeneratorComponent;
downloadBarcode() {
this.barcode.exportImage('barcode','PNG');
}
getBase64() {
const base64String = this.barcode.toDataURL('image/png');
// Send to server or store
}
}
带 Logo 的品牌 QR 码:
<ejs-barcodegenerator
type="QRCode"
value="https://mysite.com"
#qrCode>
</ejs-barcodegenerator>
export class BrandedQRComponent implements OnInit {
@ViewChild('qrCode') qrCode: BarcodeGeneratorComponent;
ngOnInit() {
(this.qrCode.qrcodelogo as QRCodeLogo) = {
imageSource: 'assets/logo.svg',
width: 50,
height: 50
};
}
}
常用属性包括:type(条码类型,默认 Code128)、value(编码数据)、width/height(尺寸)、foreColor(条码颜色,默认 #000000)、backgroundColor(背景色,默认 #FFFFFF)、displayText(条码下方可读文本)、margin(边距)、qRCodeLogo(QR 码 Logo)、mode(渲染模式 SVG 或 Canvas,默认 SVG)。
适用场景
- 零售/库存产品标签系统
- 移动支付与认证(QR 码)
- 医疗/制药追踪(Data Matrix)
- 文档管理与归档
- 使用品牌 QR 码的营销活动
限制与注意事项
API 验证要求:在生成代码示例前,务必阅读参考文件(references/*.md)验证 API 类名、属性和签名,不要假设或推断类名。不同条码类型存在字符集限制与验证规则。资料中未提供收费、价格、平台兼容性等具体信息。