当前位置: 首页 > news >正文

屯留网站建设长春怎么做网站

屯留网站建设,长春怎么做网站,linchong.wordpress,做网站的费用如何写分录#xff08;优于别人#xff0c;并不高贵#xff0c;真正的高贵应该是优于过去的自己。——海明威#xff09; 场景 根据订单参数生成账单PDF 结果 示例代码 /* eslint-disable no-unused-vars */ /* eslint-disable no-undef */ /* eslint-disable complexity */ const… 优于别人并不高贵真正的高贵应该是优于过去的自己。——海明威 场景 根据订单参数生成账单PDF 结果 示例代码 /* eslint-disable no-unused-vars */ /* eslint-disable no-undef */ /* eslint-disable complexity */ const PDFDocument require(pdfkit); const fs require(fs); const dayjs require(dayjs); const AgencyWithdrawOrderStatus {Completed: Completed,Submitted: Submitted,Rejected: Rejected, } const agencyName Jasin; const agencyEmail pdfkitdev.com; const order {id: FI-AWO-20230718-8657637839,accountID: {id: ID-AGE-20230707-6351711990,type: AGENCY},transactionNo: FIAWO202307180650601146,referenceID: ,transferWay: Bank card,walletID: FI-WAL-20230707-5401898911,transferID: FI-TRF-20230718-4134849682,transactionID: FI-TRA-20230718-2048728248,somoServiceFee: 345,somoServiceFeeRate: 0.05,bankTransferFee: 3000,bankTransferFeeRate: 3000,paypalTransferFee: 345,paypalTransferFeeRate: 0.05,paypalRemittanceAmount: 6555,bankRemittanceAmount: 6900,totalAmount: 6900,status: Submitted,transactionList: [{brandName: asdasdads,transactionID: FI-TRA-20230710-1494352833,brandID: ID-BRA-20230627-2309656536,campaignID: AC-CAM-20230710-3827733853,campaignTitle: Jack,orderID: AC-ORD-20230710-2795223591,type: AGENCY_CAMPAIGN_ORDER_PAYMENT,amount: 6900,somoServiceFee: 345,paypalTransferFee: 345,bankTransferFee: 0}, {brandName: asdasdads,transactionID: FI-TRA-20230710-5284753385,brandID: ID-BRA-20230627-2309656536,campaignID: AC-CAM-20230710-4072616238,campaignTitle: Kami,orderID: AC-ORD-20230710-7402268061,type: AGENCY_CAMPAIGN_ORDER_PAYMENT,amount: 0,somoServiceFee: 0,paypalTransferFee: 0,bankTransferFee: 0}],transactionCount: 2,accountBalance: 888750099,withdrawalMethod: {bankEnabled: true,bankAccountName: 12213,bankAccountNumber: 22,bankName: 333,bankAddress: 444,bankSwiftCode: 555},reason: ,createdAt: {$date: 2023-07-18T09:53:45.568Z},updatedAt: {$date: 2023-07-18T09:53:45.568Z},__v: 0 }; const method async () {const pdfBuffer await new Promise((resolve) {// 实例化PDF对象const doc new PDFDocument({ size: A4 });const fontSize 14;const remittanceText Remittance amount:;const remittanceTitleColor #8792A2;const remittanceAmountColor #181C1F;const remittanceAmountSize 40;const orderStatusText order.status;const orderStatusColor {Submitted: #4E515C,Completed: #009944,Rejected: #FF0000,}[orderStatusText];const orderStatusBackColor {Submitted: #f2f4f9,Completed: #d8f7e6,Rejected: #f0dede,}[orderStatusText];const orderStatusOffset {Submitted: -6,Completed: -8,Rejected: 0,}[orderStatusText];const getFloatNumber (number) {return parseFloat(number.toString()).toFixed(2);};const getConvertAmount (number) {return number / 100;};const rejectedOffset order.status Rejected ? 45 : 0;const remittanceAmount order.withdrawalMethod.paypalEnabled? order.paypalRemittanceAmount: order.bankRemittanceAmount;const transferFee order.withdrawalMethod.paypalEnabled? order.paypalTransferFee: order.bankTransferFee;const remittanceAmountLength getFloatNumber(getConvertAmount(remittanceAmount),).length;const remittanceAmoutOffset remittanceAmountLength - 4 0 ? remittanceAmountLength - 4 : 0;const transferAccount (order.withdrawalMethod.paypalEnabled? order.withdrawalMethod.paypalAccountID: order.withdrawalMethod.bankAccountName) ?? ;const transferDetailTitleColor #F2F3F7;const transferDetailTitleSize 16;const transferDetailBackgroundColor #171A1F;const transferDetailTitleText Transfer detail:;const orderStatusX 100;const orderStatusY 105;const startX 73;const transferDetailRectY 150;const transferDetailX 80;const transferDetailY 168;const transferDetailWidth 500;const transferDetailHeight 60;const sideWidth 500;const sideHeight 1;const valueColor #272A33;const linceColor #F5F7F7;doc.// 使用字体font(${__dirname}/Montserrat-Bold.ttf).// 字体大小fontSize(fontSize).// 字体颜色fillColor(remittanceTitleColor).// 这一行的文本text(remittanceText).fontSize(remittanceAmountSize).fillColor(remittanceAmountColor).text($ ${getFloatNumber(getConvertAmount(remittanceAmount))}).// 渲染块指定xy坐标以及宽高rect(orderStatusX 112 remittanceAmoutOffset * 23,orderStatusY - 8,92,34,).// 块的颜色fill(orderStatusBackColor).// 块的字体大小fontSize(fontSize).// 字体的颜色fillColor(orderStatusColor).font(${__dirname}/Montserrat-Regular.ttf).// 指定xy坐标text(orderStatusText,orderStatusX 16 112 orderStatusOffset remittanceAmoutOffset * 23,orderStatusY,);if (orderStatusText AgencyWithdrawOrderStatus.Rejected) {doc.rect(startX, transferDetailRectY, 469, 30).fill(#FFE58F).// 插入图片image(withdraw.pdf.rejected.png,startX 10,transferDetailRectY 5,{ width: 20, height: 20 },).fontSize(12).fillColor(#000000).text( ${order.reason}, startX 35, transferDetailRectY 6.5);}doc.rect(startX,transferDetailRectY rejectedOffset,transferDetailWidth,transferDetailHeight,).fill(transferDetailTitleColor).fontSize(transferDetailTitleSize).fillColor(transferDetailBackgroundColor).font(${__dirname}/Montserrat-Bold.ttf).text(transferDetailTitleText,transferDetailX,transferDetailY rejectedOffset,{continued: false,baseline: top,},).font(${__dirname}/Montserrat-Regular.ttf).fontSize(fontSize).fillColor(remittanceTitleColor).text(Agency:,startX,transferDetailRectY transferDetailHeight 20 rejectedOffset,{ lineBreak: false },).fillColor(valueColor).text(agencyName, startX 200, doc.y, { lineGap: 5 }).fontSize(fontSize).fillColor(remittanceTitleColor).text(Email:, startX, doc.y, { lineBreak: false, lineGap: 5 }).fillColor(valueColor).text(agencyEmail, startX 200, doc.y, { lineGap: 5 }).fontSize(fontSize).fillColor(remittanceTitleColor).text(Transaction No. :, startX, doc.y, { lineBreak: false }).fillColor(valueColor).text(order.transactionNo, startX 200, doc.y, { lineGap: 5 }).fontSize(fontSize).fillColor(remittanceTitleColor).text(Reference ID. :, startX, doc.y, { lineBreak: false }).fillColor(valueColor).text(order.referenceID || , startX 200, doc.y, { lineGap: 5 }).fontSize(fontSize).fillColor(remittanceTitleColor).text(Transfer way:, startX, doc.y, { lineBreak: false }).fillColor(valueColor).text(order.transferWay, startX 200, doc.y, { lineGap: 5 }).fontSize(fontSize).fillColor(remittanceTitleColor).text(Transfer account:, startX, doc.y, { lineBreak: false }).fillColor(valueColor).text(transferAccount, startX 200, doc.y, { lineGap: 5 }).fontSize(fontSize).fillColor(remittanceTitleColor).text(Transfer status:, startX, doc.y, { lineBreak: false }).fillColor(valueColor).text(orderStatusText, startX 200, doc.y, { lineGap: 5 }).fontSize(fontSize).fillColor(remittanceTitleColor).text(Created time:, startX, doc.y, { lineBreak: false }).fillColor(valueColor).text(dayjs(order.createdAt.valueOf()).format(YYYY-MM-DD HH:mm:ss),startX 200,doc.y,{ lineGap: 5 },).fontSize(fontSize).fillColor(remittanceTitleColor).text(Update time:, startX, doc.y, { lineBreak: false }).fillColor(valueColor).text(dayjs(order.updatedAt.valueOf()).format(YYYY-MM-DD HH:mm:ss),startX 200,doc.y,{ lineGap: 5 },).rect(startX, doc.y 10, sideWidth, sideHeight).fill(linceColor).fontSize(fontSize).fillColor(remittanceTitleColor).text(Order total amount:, startX, doc.y 20, { lineBreak: false }).fillColor(valueColor).text($ ${getFloatNumber(getConvertAmount(order.totalAmount))},startX 200,doc.y,{lineGap: 5,},).fontSize(fontSize).fillColor(remittanceTitleColor).text(SOMO service fee:, startX, doc.y, {lineBreak: false,}).fillColor(remittanceTitleColor).text($ ${getFloatNumber(getConvertAmount(order.somoServiceFee))},startX 200,doc.y,{lineGap: 5,strike: true,},).fontSize(fontSize).fillColor(remittanceTitleColor).text(Transfer fee:, startX, doc.y, { lineBreak: false }).fillColor(valueColor).text($ ${getFloatNumber(getConvertAmount(transferFee))},startX 200,doc.y,{lineGap: 5,},).fontSize(fontSize).fillColor(remittanceTitleColor).text(Remittance amount:, startX, doc.y, { lineBreak: false }).fillColor(valueColor).text($ ${getFloatNumber(getConvertAmount(remittanceAmount))},startX 200,doc.y,{lineGap: 5,},).rect(startX, doc.y 10, sideWidth, 60).fill(#F2F3F7).fontSize(transferDetailTitleSize).fillColor(#171A1F).font(${__dirname}/Montserrat-Bold.ttf).text(Associated with the order, transferDetailX, doc.y 30, {lineBreak: false,baseline: top,}).text( , { lineGap: 10 }).font(${__dirname}/Montserrat-Regular.ttf);for (let i 0; i order.transactionList.length; i) {const item order.transactionList[i];const itemTransferFee order.withdrawalMethod.paypalEnabled? item.paypalTransferFee: item.bankTransferFee;doc.text( , { lineGap: 10 });doc.fontSize(fontSize).fillColor(remittanceTitleColor).text(Brand:, startX, doc.y, { paragraphGap: -20 }).fillColor(valueColor).text(item.brandName, startX 200, doc.y, { lineGap: 8 });doc.fontSize(fontSize).fillColor(remittanceTitleColor).text(Campaign:, startX, doc.y, { paragraphGap: -20 }).fillColor(valueColor).text(item.campaignTitle, startX 200, doc.y, { lineGap: 8 });doc.fontSize(fontSize).fillColor(remittanceTitleColor).text(Order ID:, startX, doc.y, { paragraphGap: -20 }).fillColor(valueColor).text(item.orderID, startX 200, doc.y, { lineGap: 8 });doc.fontSize(fontSize).fillColor(remittanceTitleColor).text(Oder price:, startX, doc.y, { paragraphGap: -20 }).fillColor(valueColor).text($ ${getFloatNumber(getConvertAmount(item.amount))},startX 200,doc.y,{lineGap: 8,},);doc.fontSize(fontSize).fillColor(remittanceTitleColor).text(SOMO service fee:, startX, doc.y, {paragraphGap: -20,}).fillColor(remittanceTitleColor).text($ ${getFloatNumber(getConvertAmount(item.somoServiceFee))},startX 200,doc.y,{lineGap: 8,strike: true,},);doc.fontSize(fontSize).fillColor(remittanceTitleColor).text(Transfer fee:, startX, doc.y, { paragraphGap: -20 }).fillColor(valueColor).text($ ${getFloatNumber(getConvertAmount(itemTransferFee))},startX 200,doc.y,{lineGap: 8,},);doc.rect(startX, doc.y 20, sideWidth, sideHeight).fill(linceColor);}doc.end();const buffers [];// 使用pdfkit的监听方法收集buffer便于后续文件处理doc.on(data, buffers.push.bind(buffers));doc.on(end, () {const pdfData Buffer.concat(buffers);return resolve(pdfData);});});fs.writeFileSync(${__dirname}/file.pdf, pdfBuffer); }; method();
http://www.zqtcl.cn/news/432410/

相关文章:

  • 百度做的网站能优化吗html网站系统
  • php素材网站源码免费下载网站维护的内容有哪些
  • 打鱼跟电子游戏网站怎么做佛山微网站开发哪家好
  • 知名的网站建设网站在工信部备案
  • 网站首页的快照更新慢爆wordpress密码
  • dw做网站背景图片设置铺平微博通 wordpress
  • 勉县网站建设电商网站要素
  • 重庆旅游seo整站优化网站制作的一般步骤是什么
  • 网站建设评估体系p2p网站建设框架
  • .net 快速网站开发东莞网站建设公司哪家好
  • 东莞个人网站设计潍坊专业人员继续教育
  • 网站建设如何创业建设招标网官网
  • 公司没有销售网站怎么做业务怎么做微信推送 网站
  • 商城网站模版郴州网页定制
  • 电子商务网站建设步骤海外广告投放渠道
  • 网站用花生壳nas做存储十堰市网站建设
  • 用html5做手机网站抖音平台建站工具
  • 在线课程网站开发的研究意义网站开发需要哪些知识
  • 深圳网站优化怎么做手工艺品外贸出口公司网站建设方案
  • 从网站优化之角度出发做网站策划wordpress邀请码插件
  • 大学营销型网站建设实训课程o2o的四种营销模式
  • 咋做网站代码背景图宁远网站建设
  • 有哪些可以做网站的企业网站想换个风格怎么做
  • 怎么在百度搜索自己的网站在电脑上建设个人网站
  • wordpress网站菜单固定电商未来发展趋势前景
  • 五合一网站建设费用python 做网站 用哪个框架好
  • 波莱网站开发动态域名可以做网站吗
  • 网站建设 赣icp 南昌面馆装修设计
  • 福田附近公司做网站建设多少钱网站建设文献综述范文
  • 镇江网站建设设计建设银行投诉网站首页