Appearance
文档控件添加二维码方法
Add2DcodePic
语法
javascript
Add2DCodePic(BarCodeType, StringData, IsFloat, left, top, relative, Scale, zorder, bIsTransBackground, GBCodebDefaultSet)
功能
添加二维码图片。
参数
名称 | 必选/可选 | 数据类型 | 说明 |
---|---|---|---|
BarCodeType | 必选 | long | 条码类型 |
StringData | 必选 | string | 条码编码字符串 |
IsFloat | 必选 | bool | 是否浮动,默认true浮动 |
left | 必选 | long | 图片的x点 |
top | 必选 | long | 图片的y点 |
relative | 必选 | long | 图片定位的相对位置 |
Scale | 必选 | long | 二维码图片的缩放比例 |
zorder | 必选 | long | 图片相对文字位置 |
bIsTransBackground | 必选 | bool | 白色背景是否透明,默认false |
GBCodebDefaultSet | 可选 | bool | 国标二维码默认设置 |
返回值
无返回值。
说明
添加二维码图片。
条码类型对照表
条码类型 | 参数值 | 说明 |
---|---|---|
PDF417 | 1 | 二维码,公文国标二维码 |
QRCode | 2 | 二维码 |
Code128 | 3 | 一维码 |
Code39 | 4 | 一维码 |
EAN13 | 5 | 一维码 |
注意:其中1-2是二维码,3-5为一维码。公文国标二维码为PDF417即需要参数设置为1。通过配合参数StringData,和设置初始值参数GBCodeDefaultSet一起使用。
参数详细说明
- BarCodeType:通过传入1-5来指定要生成的条码的类型
- StringData:该参数传入需要编码的字符串,长度不能超过200。对应的QRCode和PDF417对编码的字符集范围没有特别的要求,但是对于一维条码、Code128、Code39和EAN13对字符集有特别的要求。Code128和Code39只能支持英文和数字,而EAN13只能支持13位数字。具体要求可以参考相关的标准,如果不符合标准则调用会失败。
- IsFloat:是否作为浮动图片插入,true为浮动,false为内嵌
- left:图片的x坐标位置
- top:图片的y坐标位置
- relative:图片定位的相对位置(1:光标位置;2:页边距;3:页面距离;4:默认设置)
- Scale:二维码图片的缩放比例,100表示原始大小
- zorder:图片相对文字位置(0:下方;1:上方)
- bIsTransBackground:白色背景是否透明
- GBCodebDefaultSet:国标二维码默认设置
示例代码
基本用法
javascript
// 添加PDF417二维码(公文国标)
app.Add2DCodePic(1, "ntko测试数据", true, 100, 200, 1, 100, 1, false);
// 添加QRCode二维码
app.Add2DCodePic(2, "https://www.example.com", true, 50, 50, 1, 100, 1, false);
// 添加Code128一维码
app.Add2DCodePic(3, "123456789", true, 100, 100, 1, 100, 1, false);
完整参数示例
javascript
// PDF417二维码 - 公文国标
OCX_OBJ.Add2DCodePic(
1, // PDF417二维码
"公文编号:2024001", // 编码字符串
true, // 浮动图片
100, // x坐标
200, // y坐标
1, // 光标位置
100, // 100%缩放
1, // 文字上方
false, // 背景不透明
true // 国标默认设置
);
// QRCode二维码
OCX_OBJ.Add2DCodePic(
2, // QRCode二维码
"https://www.ntko.com", // 网址
true, // 浮动图片
50, // x坐标
50, // y坐标
1, // 光标位置
80, // 80%缩放
1, // 文字上方
false // 背景不透明
);
// Code128一维码
OCX_OBJ.Add2DCodePic(
3, // Code128一维码
"ABC123", // 英文数字字符串
true, // 浮动图片
150, // x坐标
150, // y坐标
1, // 光标位置
100, // 100%缩放
1, // 文字上方
false // 背景不透明
);
不同条码类型示例
javascript
// 1. PDF417二维码(公文国标)
function addPDF417Code(content, x, y) {
OCX_OBJ.Add2DCodePic(1, content, true, x, y, 1, 100, 1, false, true);
}
// 2. QRCode二维码
function addQRCode(content, x, y) {
OCX_OBJ.Add2DCodePic(2, content, true, x, y, 1, 100, 1, false);
}
// 3. Code128一维码
function addCode128(content, x, y) {
OCX_OBJ.Add2DCodePic(3, content, true, x, y, 1, 100, 1, false);
}
// 4. Code39一维码
function addCode39(content, x, y) {
OCX_OBJ.Add2DCodePic(4, content, true, x, y, 1, 100, 1, false);
}
// 5. EAN13一维码
function addEAN13(content, x, y) {
OCX_OBJ.Add2DCodePic(5, content, true, x, y, 1, 100, 1, false);
}
实用工具函数
javascript
// 二维码工具类
class QRCodeUtils {
// 添加网址二维码
static addURLQRCode(url, x, y, scale = 100) {
OCX_OBJ.Add2DCodePic(2, url, true, x, y, 1, scale, 1, false);
}
// 添加文本二维码
static addTextQRCode(text, x, y, scale = 100) {
OCX_OBJ.Add2DCodePic(2, text, true, x, y, 1, scale, 1, false);
}
// 添加公文国标二维码
static addGBQRCode(content, x, y, scale = 100) {
OCX_OBJ.Add2DCodePic(1, content, true, x, y, 1, scale, 1, false, true);
}
// 添加产品条码
static addProductBarcode(code, x, y, scale = 100) {
if (code.length === 13 && /^\d+$/.test(code)) {
// EAN13条码
OCX_OBJ.Add2DCodePic(5, code, true, x, y, 1, scale, 1, false);
} else if (/^[A-Za-z0-9]+$/.test(code)) {
// Code128条码
OCX_OBJ.Add2DCodePic(3, code, true, x, y, 1, scale, 1, false);
} else {
console.error("不支持的条码格式");
}
}
// 添加透明背景二维码
static addTransparentQRCode(content, x, y, scale = 100) {
OCX_OBJ.Add2DCodePic(2, content, true, x, y, 1, scale, 1, true);
}
}
// 使用示例
QRCodeUtils.addURLQRCode("https://www.example.com", 100, 100);
QRCodeUtils.addGBQRCode("公文编号:2024001", 200, 200);
QRCodeUtils.addProductBarcode("1234567890123", 300, 300);
字符集要求
二维码(PDF417、QRCode)
- 支持字符集:支持所有字符,包括中文、英文、数字、符号等
- 长度限制:建议不超过200字符
一维码字符集要求
条码类型 | 支持字符集 | 长度要求 | 示例 |
---|---|---|---|
Code128 | 英文、数字 | 无特殊限制 | "ABC123", "123456" |
Code39 | 英文、数字 | 无特殊限制 | "ABC123", "PRODUCT01" |
EAN13 | 数字 | 必须13位 | "1234567890123" |
完整示例
javascript
// 文档二维码生成器
function documentQRCodeGenerator() {
// 1. 添加文档信息二维码
function addDocumentInfo() {
const docInfo = {
title: "重要文档",
version: "1.0",
date: "2024-01-01",
author: "系统管理员"
};
const infoString = JSON.stringify(docInfo);
OCX_OBJ.Add2DCodePic(2, infoString, true, 50, 50, 1, 80, 1, false);
}
// 2. 添加公文国标二维码
function addGBDocumentCode() {
const gbContent = "公文编号:2024001\n发文机关:某某部门\n发文日期:2024-01-01";
OCX_OBJ.Add2DCodePic(1, gbContent, true, 100, 100, 1, 100, 1, false, true);
}
// 3. 添加产品条码
function addProductCodes() {
// EAN13条码
OCX_OBJ.Add2DCodePic(5, "1234567890123", true, 200, 200, 1, 100, 1, false);
// Code128条码
OCX_OBJ.Add2DCodePic(3, "PROD001", true, 200, 250, 1, 100, 1, false);
}
// 4. 添加水印二维码
function addWatermarkQRCode() {
OCX_OBJ.Add2DCodePic(2, "内部文档", true, 300, 300, 1, 50, 0, true); // 背景透明,文字下方
}
// 5. 批量添加二维码
function addBatchQRCodes() {
const codes = [
{ type: 2, content: "https://www.example.com", x: 50, y: 50 },
{ type: 2, content: "联系方式:13800138000", x: 50, y: 150 },
{ type: 1, content: "公文编号:2024001", x: 50, y: 250 }
];
codes.forEach(code => {
OCX_OBJ.Add2DCodePic(code.type, code.content, true, code.x, code.y, 1, 100, 1, false);
});
}
}
注意事项
字符集限制:
- 二维码(PDF417、QRCode)支持所有字符
- 一维码(Code128、Code39)只支持英文和数字
- EAN13只支持13位数字
长度限制:StringData参数长度不能超过200字符
国标二维码:PDF417是公文国标二维码,建议配合GBCodebDefaultSet参数使用
定位参数:
- relative:1-光标位置,2-页边距,3-页面距离,4-默认设置
- zorder:0-文字下方,1-文字上方
缩放比例:Scale参数以百分比计算,100表示原始大小
背景透明:bIsTransBackground参数对PNG等支持透明的格式有效
坐标系统:left和top参数以磅为单位,1磅约等于1/72英寸
浮动图片:IsFloat为true时图片可以精确定位,false时跟随文本流
条码标准:一维码必须符合相应的国际标准,否则调用会失败
性能考虑:大量二维码可能影响文档性能,建议合理控制数量