@solinker/nodes-eyprint
Version:
易云打印可使普通打印机具有远程打印,共享打印,自助打印,订单打印,电商平台云打印等联网功能,使用易云打印平台的用户可实时通过网络在线向各种类型的打印机发送打印任务。
463 lines • 14.7 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.EyprintV1 = void 0;
const n8n_workflow_1 = require("n8n-workflow");
const descriptionV1 = {
defaults: {
name: '易云打印',
},
displayName: '易云打印',
description: '易云打印可使普通打印机具有远程打印,共享打印,自助打印,订单打印,电商平台云打印等联网功能,使用易云打印平台的用户可实时通过网络在线向各种类型的打印机发送打印任务。',
name: 'eyprint',
inputs: ["main"],
outputs: ["main"],
group: ['group'],
version: 1,
credentials: [],
properties: [
{
"displayName": "Operation",
"name": "operation",
"type": "options",
"options": [
{
"displayName": "打印内容",
"name": "打印内容",
"value": "printContent",
"action": "打印内容"
},
{
"displayName": "设置打印机状态",
"name": "设置打印机状态",
"value": "setPrinterState",
"action": "设置打印机状态"
},
{
"displayName": "查询打印机在线状态",
"name": "查询打印机在线状态",
"value": "queryPrinterStatus",
"action": "查询打印机在线状态"
}
],
"default": "printContent",
"noDataExpression": true
},
{
"displayName": "需要打印文件的URL地址",
"name": "sourceFile",
"type": "string",
"default": "",
"description": "必需是公网可访问的地址。部分HTTPS协议不兼容,建议采用HTTP协议。",
"displayOptions": {
"show": {
"operation": [
"printContent"
]
}
}
},
{
"displayName": "打印文件的文件类型",
"name": "Type",
"type": "options",
"default": "",
"description": "",
"displayOptions": {
"show": {
"operation": [
"printContent"
]
}
},
"options": [
{
"displayName": "img",
"name": "img",
"value": "img"
},
{
"displayName": "pdf",
"name": "pdf",
"value": "pdf"
},
{
"displayName": "html",
"name": "html",
"value": "html"
},
{
"displayName": "doc",
"name": "doc",
"value": "doc"
},
{
"displayName": "docx",
"name": "docx",
"value": "docx"
},
{
"displayName": "xls",
"name": "xls",
"value": "xls"
},
{
"displayName": "xlsx",
"name": "xlsx",
"value": "xlsx"
},
{
"displayName": "ppt",
"name": "ppt",
"value": "ppt"
},
{
"displayName": "pptx",
"name": "pptx",
"value": "pptx"
}
]
},
{
"displayName": "文件名",
"name": "filename",
"type": "string",
"default": "",
"description": "未指定明平台则随机生成一个文件名",
"displayOptions": {
"show": {
"operation": [
"printContent"
]
}
}
},
{
"displayName": "打印内容是否旋转90度",
"name": "Landscape",
"type": "options",
"default": "",
"description": "",
"displayOptions": {
"show": {
"operation": [
"printContent"
]
}
},
"options": [
{
"displayName": "True",
"name": "True",
"value": "True"
},
{
"displayName": "False",
"name": "False",
"value": "False"
}
]
},
{
"displayName": "是否彩色打印(需打印机支持彩色打印)",
"name": "trueColor",
"type": "options",
"default": "",
"description": "",
"displayOptions": {
"show": {
"operation": [
"printContent"
]
}
},
"options": [
{
"displayName": "True",
"name": "True",
"value": "True"
},
{
"displayName": "False",
"name": "False",
"value": "False"
}
]
},
{
"displayName": "打印份数",
"name": "Copies",
"type": "string",
"default": "",
"description": "取值范围:1~100",
"displayOptions": {
"show": {
"operation": [
"printContent"
]
}
}
},
{
"displayName": "打印内容是否自适应纸张大小",
"name": "Scaling",
"type": "options",
"default": "",
"description": "",
"displayOptions": {
"show": {
"operation": [
"printContent"
]
}
},
"options": [
{
"displayName": "True",
"name": "True",
"value": "True"
},
{
"displayName": "False",
"name": "False",
"value": "False"
}
]
},
{
"displayName": "双面打印",
"name": "Duplex",
"type": "options",
"default": "",
"description": "",
"displayOptions": {
"show": {
"operation": [
"printContent"
]
}
},
"options": [
{
"displayName": "单面打印",
"name": "单面打印",
"value": "Simplex"
},
{
"displayName": "双面长边",
"name": "双面长边",
"value": "Vertical"
},
{
"displayName": "双面短边",
"name": "双面短边",
"value": "Horizontal"
}
]
},
{
"displayName": "打印页码范围",
"name": "printRange",
"type": "string",
"default": "",
"description": "取值示例:1,2,4,5,8,10;默认值:all",
"displayOptions": {
"show": {
"operation": [
"printContent"
]
}
}
},
{
"displayName": "打印任务类型",
"name": "tasktype",
"type": "options",
"default": "",
"description": "",
"displayOptions": {
"show": {
"operation": [
"printContent"
]
}
},
"options": [
{
"displayName": "now",
"name": "now",
"value": "now"
},
{
"displayName": "plan",
"name": "plan",
"value": "plan"
}
]
},
{
"displayName": "打印任务执行的时间点",
"name": "printtime",
"type": "string",
"default": "",
"description": "当指定打印任务类型为plan(定时打印)时生效。\n未指定时则为服务器当前时间。",
"displayOptions": {
"show": {
"operation": [
"printContent"
]
}
}
},
{
"displayName": "定义打印内容的宽度",
"name": "Width",
"type": "string",
"default": "",
"description": "PDF文件不支持该设置。\nScaling值为False时起效。\n默认值为打印客户端设置的值。\n单位:mm(毫米)",
"displayOptions": {
"show": {
"operation": [
"printContent"
]
}
}
},
{
"displayName": "定义打印内容的高度",
"name": "Height",
"type": "string",
"default": "",
"description": "PDF文件不支持该设置。\nScaling值为False时起效。\n默认值为打印客户端设置的值。",
"displayOptions": {
"show": {
"operation": [
"printContent"
]
}
}
},
{
"displayName": "定义打印内容的左边留白",
"name": "leftMargin",
"type": "string",
"default": "",
"description": "PDF文件不支持该设置。\n默认值:0(自动)大于0为手动\n单位:mm(毫米)",
"displayOptions": {
"show": {
"operation": [
"printContent"
]
}
}
},
{
"displayName": "定义打印内容的顶边留白",
"name": "topMargin",
"type": "string",
"default": "",
"description": "PDF文件不支持该设置。\n默认值:0(自动)大于0为手动\n单位:mm(毫米)",
"displayOptions": {
"show": {
"operation": [
"printContent"
]
}
}
},
{
"displayName": "语言播报文字",
"name": "ttsText",
"type": "string",
"default": "",
"description": "最长可接受20个中文字符",
"displayOptions": {
"show": {
"operation": [
"printContent"
]
}
}
},
{
"displayName": "打印机执行状态回调地址",
"name": "callBackUrl",
"type": "string",
"default": "",
"description": "必需是公网可访问的地址。\n客户端打印结束后将打印结果以post方式回调到该URL,回调字段包含:taskID(任务编号),status(打印状态),pageCount(打印页数)",
"displayOptions": {
"show": {
"operation": [
"printContent"
]
}
}
},
{
"displayName": "状态",
"name": "state",
"type": "options",
"default": "",
"description": "",
"displayOptions": {
"show": {
"operation": [
"setPrinterState"
]
}
},
"options": [
{
"displayName": "启用打印机",
"name": "启用打印机",
"value": "True"
},
{
"displayName": "停用打印机",
"name": "停用打印机",
"value": "False"
}
]
}
],
};
class EyprintV1 {
constructor(baseDescription) {
this.description = {
...baseDescription,
...descriptionV1,
};
}
async execute() {
const returnData = [];
const credential = await this.getCredentials('');
const items = this.getInputData();
for (let index = 0; index < items.length; index++) {
const parameters = {};
Object.keys(this.getNode().parameters).forEach((key) => {
parameters[key] = this.getNodeParameter(key, index);
});
try {
returnData.push({
json: await this.helpers.httpRequest({
baseURL: 'https://api.n8n.store/api/eyprint',
url: '/operation',
method: 'POST',
body: {
...parameters,
credential,
},
headers: {
"X-Instance-Id": this.getInstanceId()
}
}),
});
}
catch (error) {
throw new n8n_workflow_1.NodeOperationError(this.getNode(), error.message, { itemIndex: index });
}
}
return this.prepareOutputData(returnData);
}
}
exports.EyprintV1 = EyprintV1;
//# sourceMappingURL=EyprintV1.js.map