Skip to content

文档控件添加二维码方法

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国标二维码默认设置

返回值

无返回值。

说明

添加二维码图片。

条码类型对照表

条码类型参数值说明
PDF4171二维码,公文国标二维码
QRCode2二维码
Code1283一维码
Code394一维码
EAN135一维码

注意:其中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);
        });
    }
}

注意事项

  1. 字符集限制

    • 二维码(PDF417、QRCode)支持所有字符
    • 一维码(Code128、Code39)只支持英文和数字
    • EAN13只支持13位数字
  2. 长度限制:StringData参数长度不能超过200字符

  3. 国标二维码:PDF417是公文国标二维码,建议配合GBCodebDefaultSet参数使用

  4. 定位参数

    • relative:1-光标位置,2-页边距,3-页面距离,4-默认设置
    • zorder:0-文字下方,1-文字上方
  5. 缩放比例:Scale参数以百分比计算,100表示原始大小

  6. 背景透明:bIsTransBackground参数对PNG等支持透明的格式有效

  7. 坐标系统:left和top参数以磅为单位,1磅约等于1/72英寸

  8. 浮动图片:IsFloat为true时图片可以精确定位,false时跟随文本流

  9. 条码标准:一维码必须符合相应的国际标准,否则调用会失败

  10. 性能考虑:大量二维码可能影响文档性能,建议合理控制数量