使用 NodeJS 将汉字打印到 EPSON TM T88V 的正确方法
Proper way to print chinese characters to an EPSON TM T88V using NodeJS
我正在尝试使用带有 node-thermal-printer 模块的 NodeJS 将中文字符打印到热敏收据打印机。
printer1.setCharacterSet('CHINA');
var str = " כ所有人生而自由,在尊嚴和權利上一律平等";
var enc = iconv.encode(str, 'CP936');
console.log (enc);
var enc1 = iconv.encode(enc, 'ISO-8859-1');
console.log (enc1);
printer1.println(enc1);
printer1.partialCut();
printer1.execute()
.then(() => {
console.log('Printing...');
printer1.clear();
})
.catch((err) => {
console.log(err);
})
我读过这个答案Printing simplified Chinese characters on Epson TM-T88IVM 解释说字符串首先必须在 CP936 中编码,然后在 ISO-8859-1 中表示才能正确打印。
我现在得到的只是问号。
字符集或代码页设置不正确?
我是否对字符串进行了不正确的编码?
如果有人能指导我,我将不胜感激。
你说的文章是使用另一个APIOPOS时的资料,里面的参考文章好像是C#的常识。
它们在使用 node-thermal-printer 时不适用。
在node-thermal-printer的例子中,好像是简单设置字符集后打印出来的字符串
node-thermal-printer/examples/charsets.js
printer.println("Č芚ĆćĐđŽž");
printer.drawLine();
printer.setCharacterSet('PC855_CYRILLIC');
printer.println("Все люди рождаются свободными и равными в своем достоинстве и правах.");
printer.drawLine();
printer.setCharacterSet('JAPAN');
printer.println("すべての人々は自由に生まれ、尊厳と権利において平等です");
printer.drawLine();
printer.setCharacterSet('CHINA');
printer.println("所有人生而自由,在尊嚴和權利上一律平等");
printer.drawLine();
printer.setCharacterSet('PC862_HEBREW');
printer.println("כל בני האדם נולדים חופשיים ושווים בכבוד ובזכויות.");
顺便说一句,为了打印 Chinese/Japanese/Korean 等东亚字符,必须使用包含这些字体的打印机型号。
确保您使用的是可以打印它们的模型。
并且您可能需要将设置工具设置为默认打印中文。
TM-T88V Utility
如果仍然无法打印,为什么不向 node-thermal-printer 存储库提交问题?
我正在尝试使用带有 node-thermal-printer 模块的 NodeJS 将中文字符打印到热敏收据打印机。
printer1.setCharacterSet('CHINA');
var str = " כ所有人生而自由,在尊嚴和權利上一律平等";
var enc = iconv.encode(str, 'CP936');
console.log (enc);
var enc1 = iconv.encode(enc, 'ISO-8859-1');
console.log (enc1);
printer1.println(enc1);
printer1.partialCut();
printer1.execute()
.then(() => {
console.log('Printing...');
printer1.clear();
})
.catch((err) => {
console.log(err);
})
我读过这个答案Printing simplified Chinese characters on Epson TM-T88IVM 解释说字符串首先必须在 CP936 中编码,然后在 ISO-8859-1 中表示才能正确打印。
我现在得到的只是问号。 字符集或代码页设置不正确? 我是否对字符串进行了不正确的编码?
如果有人能指导我,我将不胜感激。
你说的文章是使用另一个APIOPOS时的资料,里面的参考文章好像是C#的常识。
它们在使用 node-thermal-printer 时不适用。
在node-thermal-printer的例子中,好像是简单设置字符集后打印出来的字符串
node-thermal-printer/examples/charsets.js
printer.println("Č芚ĆćĐđŽž"); printer.drawLine(); printer.setCharacterSet('PC855_CYRILLIC'); printer.println("Все люди рождаются свободными и равными в своем достоинстве и правах."); printer.drawLine(); printer.setCharacterSet('JAPAN'); printer.println("すべての人々は自由に生まれ、尊厳と権利において平等です"); printer.drawLine(); printer.setCharacterSet('CHINA'); printer.println("所有人生而自由,在尊嚴和權利上一律平等"); printer.drawLine(); printer.setCharacterSet('PC862_HEBREW'); printer.println("כל בני האדם נולדים חופשיים ושווים בכבוד ובזכויות.");
顺便说一句,为了打印 Chinese/Japanese/Korean 等东亚字符,必须使用包含这些字体的打印机型号。
确保您使用的是可以打印它们的模型。
并且您可能需要将设置工具设置为默认打印中文。
TM-T88V Utility
如果仍然无法打印,为什么不向 node-thermal-printer 存储库提交问题?