网页打印模板解析源码--SAAS本地化及未来之窗行业应用跨平台架构

news/2024/9/20 1:16:57/ 标签: javascript, 前端, 开发语言

一、打印模板解析

/*
///cyberwin_offline_database_printtemp.js未来之窗打印模板解析技术 2024-09
*/
class CyberWin_Database_printtemp_KV {constructor() {this.data = {};this.line_count = 0 ;}解析(数据) {// this.data[key] = value;this.line_count = 0 ;this.data = {};const parser = new DOMParser();const xmlDoc = parser.parseFromString(数据, 'application/xml');console.log("未来之窗打印");// console.log(xmlDoc);const targetElement = xmlDoc.getElementsByTagName('Report')[0];if (targetElement) {// console.log(targetElement.textContent);}const rootElement = xmlDoc.getElementsByTagName('Report')[0];const childElements = rootElement.getElementsByTagName('ReportPage')[0];console.log("打印2=ReportPage");console.log(childElements);const childElements_页面 = childElements.childNodes;for (let i = 0; i < childElements_页面.length; i++) {console.log("打印3=ReportPage="+childElements_页面[i].nodeType+",Node.ELEMENT_NODE="+Node.ELEMENT_NODE);console.log(childElements_页面[i]);// console.log(childElements_页面[i].tagName + ': ' + childElements_页面[i].textContent);// if (childElements_页面[i].nodeType === Node.ELEMENT_NODE) {// if (childElements_页面[i].nodeType ===3) {if (childElements_页面[i] != "#text") {console.log("打印4="+childElements_页面[i].tagName );if("DataBand" == childElements_页面[i].tagName || "PageHeaderBand"  == childElements_页面[i].tagName){const childElements_打印 = childElements_页面[i].childNodes;for (let j = 0; j < childElements_打印.length; j++) {console.log("打印明细");console.log("打印4 nodeType="+childElements_打印[j].nodeType);if (childElements_打印[j] == "#text") {console.log("打印5,明细不满足");continue;}if (childElements_打印[j].nodeType ==3) {console.log("删除空行");continue;}console.log(childElements_打印[j]);var Font = childElements_打印[j].getAttribute('Font');var CanGrow = childElements_打印[j].getAttribute('CanGrow');var content = childElements_打印[j].getAttribute('Text');//Leftvar x =childElements_打印[j].getAttribute('Left');var y =childElements_打印[j].getAttribute('Top');console.log(content);//Font="宋体, 9pt"var 字体分离array = 	 Font.split(', ');var 字体_大小 =字体分离array[1].replace('pt','');if(x){}else{x=0;}if(y){}else{y=0;}if(CanGrow){CanGrow ="Y";}else{CanGrow = "N";}console.log(childElements_打印[j].tagName + ',Top: ' + Font +" left="+x);var 打印条目 ={type:'text',x:x,y:y,content:content,CanGrow:CanGrow,Font:Font,Fontsize:字体_大小};this.data[this.line_count] = 打印条目;this.line_count=this.line_count+1;}}}}return {count:this.line_count,data:this.data};}}

 二、代码解释

在这神秘的修仙代码之境,有一神奇之“类”,名曰“CyberWin_Database_printtemp_KV”。

此“类”初建之时,犹如铸就一座空灵之库,其内部数据为空,且行数计数为零。

而后,有一神奇之法“解析”,能洞悉传入之神秘“数据”。

先是将一切归空重置,再以仙法“DOMParser”解析此“数据”,化为神秘之“xmlDoc”。

继而探寻其中特定元素,遍历诸多节点。

于层层节点之中,筛选甄别,获取各种属性与内容。

如同在仙阵之中,寻觅珍贵的灵能符文与奇妙法诀。

最后,将所得之“打印条目”精心收藏,行数计数递增,并以所得成果回传。

此过程犹如在仙法秘境中探索寻宝,步步精妙,玄机暗藏。 

三、阿雪技术观

拥抱开源与共享,见证科技进步奇迹,畅享人类幸福时光!

让我们积极投身于技术共享的浪潮中,不仅仅是作为受益者,更要成为贡献者。无论是分享自己的代码、撰写技术博客,还是参与开源项目的维护和改进,每一个小小的举动都可能成为推动技术进步的巨大力量

扫码,可学习更多


http://www.ppmy.cn/news/1521291.html

相关文章

Qt/QML学习-Dialog

QML学习 Dialog例程视频讲解代码 main.qml import QtQuick 2.15 import QtQuick.Window 2.15 import QtQuick.Controls 2.15Window {width: 640height: 480visible: truetitle: qsTr("Dialog")Dialog {id: dialoganchors.centerIn: Overlay.overlaytitle: "这…

后端开发刷题 | 数组中的逆序对

描述 在数组中的两个数字&#xff0c;如果前面一个数字大于后面的数字&#xff0c;则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P mod 1000000007 数据范围&#xff1a; 对于 50%50% 的数据, size≤1…

JavaWeb - Mybatis入门

MySQL的客户端命令行&#xff0c;如何来连接服务器上部署的MySQL &#xff1a; mysql -u 用户名 -p 密码 [-h 数据库服务器的 IP 地址 -P 端口号 ] Mybatis 做为后端程序开发人员&#xff0c;通常会使用 Java 程序来完成对数据库的操作。 Java 程序操作数据库&#xff0c;现 …

C#基础(2)枚举

前言 我们其实在前面已经了解过枚举到底有什么作用&#xff0c;但是那毕竟是概念性的语言&#xff0c;理解起来很抽象&#xff0c;今天我们会具体来讲一讲枚举&#xff0c;并谈一谈它的应用。 希望你能从今天的C#基础中有所收获。 基本概念 1.枚举&#xff1a;是一个比较特…

Ubuntu22.04版本左右,开机自动启动脚本

Ubuntu22.04版本左右&#xff0c;开机自动启动脚本 1. 新增/lib/systemd/system/rc-local.service中[Install]内容 vim /lib/systemd/system/rc-local.service 按 i 进入插入模式后&#xff0c;新增内容如下&#xff1a; [Install] WantedBymulti-user.target Aliasrc-local.…

Android终端如何快速接入GB28181平台实现实时音视频回传

技术背景 GB28181是由中国国家标准委员会发布的基于IP网络的安防视频监控标准。Android平台GB28181设备对接模块&#xff0c;主要涉及到视频监控领域&#xff0c;可实现不具备国标音视频能力的 Android终端&#xff0c;通过平台注册接入到现有的GB/T28181—2016服务&#xff0…

Prometheus(八):Prometheus监控elasticsearch及常用API

目录 1 Prometheus监控elasticsearch1.1 启动ES自带的监控模块暴露指标数据1.2 通过Prometheus的插件 Elasticsearch Exporter来获取指标数据1、简介2、安装3、Prometheus配置 2 Prometheus常用API2.1 查询2.2 删除2.3 注册服务 1 Prometheus监控elasticsearch 使用Prometheus…

AI在医学领域:基础模型和视觉-语言模型在计算病理学应用概述

近年来&#xff0c;人工智能&#xff08;AI&#xff09;基于方法在计算病理学&#xff08;CPath&#xff09;领域中的应用迅速增长&#xff0c;这主要得益于数字幻灯片扫描仪的广泛采用。因此&#xff0c;大规模的全幻灯片图像&#xff08;Whole Slide Images, WSIs&#xff09…

盘点4款超好用的电脑数据恢复工具

如今我们的生活和工作越来越离不开电脑&#xff0c;因此电脑里面也储存了我们大量的数据&#xff1a;图片&#xff0c;文档&#xff0c;工作资料等。但是这些重要数据却会因为误删除、病毒攻击、系统崩溃等原因遭到丢失。所以数据恢复软件就变得十分的重要&#xff0c;今天&…

零基础转行学网络安全怎么样?

&#x1f91f; 基于入门网络安全打造的&#xff1a;&#x1f449;黑客&网络安全入门&进阶学习资源包 如果您对转行学习网络安全感兴趣&#xff0c;以下是一些分析和建议&#xff1a; 一、网络安全行业的前景 网络安全行业作为一个新兴且不断发展的领域&#xff0c;具…

天润融通解开售后维修的成本枷锁,提高维修服务效率

如今&#xff0c;企业客户服务在开展业务咨询和售后受理时&#xff0c;主要方式还是通过电话与在线方式进行。这种方式虽然方便&#xff0c;但是对于一些非常紧急的情况还是显得有些不够。 比如&#xff0c;虽然现在许多企业APP已经实现了一键咨询和一键报修&#xff0c;但当客…

基于JAVA+SpringBoot+Vue的大学校园回忆录系统

基于JAVASpringBootVue的大学校园回忆录系统 前言 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN[新星计划]导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末附源码下载链接&#x1f345; …

vscode +STM32 VS CODE EXTENSION

stm32 vs code extersion 1.0.0版本可以直接导入cubeide的工程&#xff0c;之后版本不可以&#xff0c;所以为了省事&#xff0c;使用stm32 vs code extersion 1.0.0插件。 安装完stm32 vs code extersion插件&#xff0c;会默认把相关插件一起安装。但是需要手动安装Ninja&am…

Nginx: TCP建立连接的优化和启用Fast Open功能

TCP 建立连接优化 在三次握手中&#xff0c;相关TCP的内核参数可优化这一过程 net.ipv4.tcp_syn_retries 6net.ipv4.tcp_synack_retries 5net.ipv4.tcp_syncookies 0net.ipv4.tcp_max_syn_backlognet.core.somaxconnnet.core.netdev_max_backlog 1 &#xff09; net.ipv4…

HTTP 之 消息结构(二十二)

HTTP&#xff08;超文本传输协议&#xff09;是一种用于传输超媒体文档的协议&#xff0c;它定义了客户端和服务器之间请求和响应的消息结构。HTTP消息由一系列标准头部字段、一个空行和可选的消息体组成。 客户端请求消息 请求消息包括以下格式&#xff1a;请求行&#xff08;…

VR虚拟驾驶未来发展_vr自动驾驶汽车所带来的改变

在自动驾驶汽车的基础上&#xff0c;VR虚拟现实技术的应用也让自动驾驶汽车更加智能化&#xff0c;能够实现更高级的驾驶体验&#xff0c;今天这篇文章就和大家一起探讨一下 VR虚拟驾驶未来发展的趋势&#xff0c;以及虚拟现实自动驾驶汽车所带来的几个改变。 一、VR 虚拟驾驶未…

hadoop的sbin

路径&#xff1a;opt/homebrew/sbin Hadoop 的 sbin 目录下包含了一系列 shell 脚本&#xff0c;用于启动、停止和管理 Hadoop 的各个组件和服务。下面逐一解释这些脚本的作用&#xff1a; 启动和停止脚本 start-all.sh 用于启动所有的 Hadoop 守护进程&#xff0c;包括 Name…

Qt-高DPI显示器

与标准DPI显示器相比&#xff0c;高DPI显示器增加了像素密度。 像素密度以每英寸点数(DPI)或每英寸像素(PPI)来衡量&#xff0c;由显示像素的数量和它们的大小决定。因此&#xff0c;单独的像素数量不足以确定显示器是否属于高dpi类别。 4K显示器有固定的像素数(约8米)&#x…

【时时三省】(C语言基础)指针进阶 例题2

山不在高&#xff0c;有仙则名。水不在深&#xff0c;有龙则灵。 ----CSDN 时时三省 第一个arr 数组名相当于首元素地址 因为他没有放到strlen内部 也没有取地址 strlen是找&#xff3c;0 找不到&#xff3c;0就不会停下来 所以它打印的就是随机值 第二个arr0 首元素地址加零还…

C++ 图形框架 Duilib

Duilib是一个开源的DirectUI界面库&#xff0c;遵循BSD协议&#xff0c;可以免费用于商业项目。它具有以下特点&#xff1a; 简约易扩展的设计&#xff1a;Duilib遵循简洁、清晰的设计理念&#xff0c;使得用户界面更加直观、易于使用。同时&#xff0c;它也提供了丰富的扩展接…