首页 > 解决方案 > 从 Javascript 中的特定规范生成 QR 码

问题描述

我在 ElectronJS 应用程序中工作,该应用程序根据客户给出的特定要求生成 QR 码,

标签如下:

  1. 姓名

  2. 地址

  3. 年龄

  4. 薪水

  5. 年税百分比

  6. XML工资报告的哈希(我还没有在代码中实现这个)

我开始在 nodeJS 中进行实验,因为在 nodeJS 中使用 Buffer 模块将使字符串转换为十六进制值非常容易。

const { Buffer } = require("buffer");

var name = "John"; // tag 1
var address = "88 times Circlem, new Castle"; // tag 2
var age = "42"; // tag 3
var salary = "8500.00"; // tag 4
var tax = "20"; // tag 5

function toHex(name, address, age, salary, tax) {
tag_name = "1";
tag_s = Buffer.from(tag_name).toString("hex");
length_name = name.length.toString();
length_s = Buffer.from(length_name).toString("hex");
buffer_name = Buffer.from(name).toString("hex");

tag_address = "2";
tag_ta = Buffer.from(tag_address).toString("hex");
length_address = address.length.toString();
length_t = Buffer.from(length_address).toString("hex");
buffer_address = Buffer.from(address).toString("hex");

tag_age = "3";
tag_ti = Buffer.from(tag_age).toString("hex");
length_age = age.length.toString();
length_ti = Buffer.from(length_age).toString("hex");
buffer_age = Buffer.from(age).toString("hex");

tag_salary = "4";
tag_to = Buffer.from(tag_salary).toString("hex");
length_salary = salary.length.toString();
length_s = Buffer.from(length_salary).toString("hex");
buffer_salary = Buffer.from(salary).toString("hex");

tag_tax = "5";
tag_t = Buffer.from(tag_tax).toString("hex");
length_tax = tax.length.toString();
length_v = Buffer.from(length_tax).toString("hex");
buffer_tax = Buffer.from(tax).toString("hex");

allstring =
tag_s +
length_s +
buffer_name +
tag_ta +
length_t +
buffer_address +
tag_ti +
length_ti +
buffer_age +
tag_to +
length_s +
buffer_salary +
tag_t +
length_v +
buffer_tax;

allbase64 = Buffer.from(allstring).toString("base64");

console.log(`
tag_name = ${tag_name}
tag_s = ${tag_s}
length_name = ${length_name}
length_s = ${length_s}
buffer_name = ${buffer_name}

tag_address = ${tag_address}
tag_ta = ${tag_ta}
length_address = ${length_address}
length_t = ${length_t}
buffer_address = ${buffer_address}

tag_age = ${tag_age}
tag_ti = ${tag_ti}
length_age = ${length_age}
length_ti = ${length_ti}
buffer_age = ${buffer_age}

tag_salary = ${tag_salary}
tag_to = ${tag_to}
length_salary = ${length_salary}
length_s = ${length_s}
buffer_salary = ${buffer_salary}

tag_tax = ${tag_tax}
tag_t = ${tag_t}
length_tax = ${length_tax}
length_v = ${length_v}
buffer_tax = ${buffer_tax}



allstring = ${allstring}

allbase64 = ${allbase64}
`);
}

toHex(name, address, age, salary, tax);

这是 TLV 的正确实施......?仅使用 Buffer 模块将字符串打包成十六进制,然后将所有这些部分连接在一起?

标签: javascriptqr-codetlv

解决方案


推荐阅读