CN118012359A - 基于Handsontable的自定义页眉打印方法、系统和存储介质 - Google Patents
基于Handsontable的自定义页眉打印方法、系统和存储介质 Download PDFInfo
- Publication number
- CN118012359A CN118012359A CN202311872127.8A CN202311872127A CN118012359A CN 118012359 A CN118012359 A CN 118012359A CN 202311872127 A CN202311872127 A CN 202311872127A CN 118012359 A CN118012359 A CN 118012359A
- Authority
- CN
- China
- Prior art keywords
- header
- handsontable
- printing
- information
- picture
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000007639 printing Methods 0.000 title claims abstract description 143
- 238000000034 method Methods 0.000 title claims abstract description 33
- 238000003860 storage Methods 0.000 title claims abstract description 8
- 230000003993 interaction Effects 0.000 claims abstract description 6
- 238000004519 manufacturing process Methods 0.000 claims description 36
- 238000004590 computer program Methods 0.000 claims description 15
- 230000009471 action Effects 0.000 claims description 12
- 230000001502 supplementing effect Effects 0.000 claims description 8
- 238000003780 insertion Methods 0.000 claims description 5
- 230000037431 insertion Effects 0.000 claims description 5
- 238000006243 chemical reaction Methods 0.000 claims description 4
- 230000002452 interceptive effect Effects 0.000 claims description 3
- 230000009469 supplementation Effects 0.000 claims description 3
- 238000012545 processing Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 239000003086 colorant Substances 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000011218 segmentation Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000008719 thickening Effects 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/30—Computing systems specially adapted for manufacturing
Landscapes
- Record Information Processing For Printing (AREA)
Abstract
本发明公开了一种基于Handsontable的自定义页眉打印方法、系统和存储介质,通过Handsontable表格搭建页眉界面,在页眉界面可进行编辑边框、合并格子、插入图片、插入字段、修改字体样式等操作,之后通过与服务器交互获取插入的字段的实际值,然后替换字段数据后将界面转换为图片,再将此图片传给打印服务进行打印。从而在使用handsontable打印时也可支持自定义页眉,包括设置边框、插入图片、修改字体大小颜色等,满足用户的打印需求,提供生成记录管理效率。
Description
技术领域
本发明涉及表格处理技术领域,尤其涉及基于Handsontable的自定义页眉打印方法、系统和存储介质。
背景技术
目前生产执行系统即MES系统通常使用Handsontable插件模拟Excel表格功能。但使用Handsontable页眉表格进行打印时,无法对页眉进行定义,只能简单的放置几个字段,而无法进行添加边框、图片、字体颜色等操作。而对于医药MES系统的工单生成记录模块,大部分药厂现实中的生产记录数据文档都是有页眉的,在页眉中需要体现生产批次、公司图片等信息,另外也会设置边框等样式,但使用handsontable打印是没办法加入图片和设置样式的,从而导致在需要打印时只能使用Excel表格对待打印的生成记录文档进行转换,没办法实现在MES系统中在线打印。
发明内容
本发明针对现有技术中的不足,公开了基于Handsontable的自定义页眉打印方法,包括如下步骤:
S1,MES系统在接收到打印指令后,生成页眉配置交互界面用于采集页眉配置信息,根据所述页眉配置信息加载对应的handsontable页眉表格作为第一页眉界面,所述页眉初始界面包括但不限于根据页眉配置信息生成的对应行列数;
S2,根据接收到的各handsontable指令对handsontable页眉表格进行对应的调整和信息补充;
S3,遍历handsontable页眉表格上的各引用特征,根据所述引用特征在待打印的生产记录文件中查询获取对应内容后填充至所述handsontable页眉表格形成第二页眉界面;
S4,将所述第二页眉界面转换成图片后根据待打印文档的尺寸和/或待打印文档内页眉区域大小进行调整后,发送至打印服务器作为页眉插入至待打印文件的页眉区域中进行打印。
优选的,所述步骤S1具体包括从待打印的生产记录文件的属性信息中查询是否存在所属项目名称,若存在则根据项目名称在打印模板数据库中查询是否存在匹配的打印模板,其中所述打印模板数据库中存储有多个使用handsontable页眉表格配置的页眉模板,各页眉摸板为具有多个行和列的不同handsontable页眉表格且在部分单元格上具有填充信息或绑定字段。
优选的,所述步骤S2具体包括:
根据接收到的Handsontable的copyPaste配置指令来开启所述handsontable页眉表格的复制粘贴动作;
通过修改Handsontable的wordWrap属性并通过设置值为true或false实现自动换行动作;
通过设置单元格的style.fontWeight属性并通过设置值是bold或none实现对单元格内字体是否加粗动作;
通过Handsonbatle的getSelectedRange方法获取当前选区,将选区拆分为独立单元格后循环遍历修改单元格的style.backgroundColor属性,来配置单元格背景色;
通过获取在handsontable页眉表格上操作的选区,将选区拆分为独立单元格并为每个单元格设置属性className来设置单元格边框。
优选的,所述步骤S2还包括:
响应图片插入指令调用Upload组件选择图片,在收到图片指定指令后将图片资源上传到文件服务器,并接收所述文件服务器返回的所述图片相对系统的地址,将图片地址设置添加到单元格的backgroundImage属性上;
获取当前选取的handsontable页眉表格可匹配和插入的字段信息bindData,修改Handsontable的contextMenu.items属性,将bindData补充到items中;在收到绑定字段插入指令后,获取所指定的待绑定的字段值后,在handsontable页眉表格上指定的单元格中呈现所绑定的字段信息。
优选的,所述步骤S3具体包括:调用服务协议,从待打印的生产记录文件中获取字段的实际生产数据,将实际数据与handsontable页眉表格中绑定的字段信息进行替换,使用htm12canvas服务将配置界面中Handsontable的内容区域,通过className名称获取打印区域元素dom,和dom的宽度和高度,将元素dom及宽度和高度信息传入htm12canvas服务,转换成与打印区域大小相同的图片后将htm12canvas服务返回的图片提交到打印服务器。
本发明还公开了基于Handsontable的自定义页眉打印系统,包括:
配置模块,用于在生成页眉配置交互界面用于采集页眉配置信息,根据所述页眉配置信息加载对应的handsontable页眉表格作为第一页眉界面,所述页眉初始界面包括但不限于根据页眉配置信息生成的对应行列数;
调整模块,用于根据接收到的各handsontable指令对handsontable页眉表格进行对应的调整和信息补充;
内容填充模块,用于遍历handsontable页眉表格上的各引用特征,根据所述引用特征在待打印的生产记录文件中查询获取对应内容后填充至所述handsontable页眉表格形成第二页眉界面;
转换模块,用于将所述第二页眉界面转换成图片后根据待打印文档的尺寸和/或待打印文档内页眉区域大小进行调整后,发送至打印服务器作为页眉插入至待打印文件的页眉区域中进行打印。
优选的,所述配置模块还用于从待打印的生产记录文件的属性信息中查询是否存在所属项目名称,若存在则根据项目名称在打印模板数据库中查询是否存在匹配的打印模板,其中所述打印模板数据库中存储有多个使用handsontable页眉表格配置的页眉模板,各页眉摸板为具有多个行和列的不同handsontable页眉表格且在部分单元格上具有填充信息或绑定字段。
优选的,所述调整模块具体包括:
复制粘贴,用于根据接收到的Handsontable的copyPaste配置指令来开启所述handsontable页眉表格的复制粘贴动作;
换行模块,用于通过修改Handsontable的wordWrap属性并通过设置值为true或false实现自动换行动作;
字体设置模块,用于通过设置单元格的style.fontWeight属性并通过设置值是bold或none实现对单元格内字体是否加粗动作;
背景设置模块,用于通过Handsonbatle的getSelectedRange方法获取当前选区,将选区拆分为独立单元格后循环遍历修改单元格的style.backgroundColor属性,来配置单元格背景色;
边框设置模块,用于通过获取在handsontable页眉表格上操作的选区,将选区拆分为独立单元格并为每个单元格设置属性className来设置单元格边框。
本发明还公开了基于Handsontable的自定义页眉打印装置,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如前述任一所述方法的步骤。
本发明还公开了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如前述任一所述方法的步骤。
本发明公开的基于Handsontable的自定义页眉打印方法,通过Handsontable表格搭建页眉界面,在页眉界面可进行编辑边框、合并格子、插入图片、插入字段、修改字体样式等操作,之后通过与服务器交互获取插入的字段的实际值,然后替换字段数据后使用html2canvas将界面转换为图片,再将此图片传给打印服务进行打印。从而在使用handsontable打印时也可支持自定义页眉,包括设置边框、插入图片、修改字体大小颜色等,满足用户的打印需求,提供生成记录管理效率。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明一实施例公开的基于Handsontable的自定义页眉打印方法的步骤示意图。
图2为本发明一实施例公开的空白handsontable页眉表格示意图。
图3为本发明一实施例公开的最终生成的handsontable页眉表格示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例的附图,对本发明实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于所描述的本发明的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
除非另作定义,此处使用的技术术语或者科学术语应当为本发明所属领域内具有一般技能的人士所理解的通常意义。本发明专利申请说明书以及权利要求书中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”或者“一”等类似词语也不表示数量限制,而是表示存在至少一个。
目前在MES系统使用过程中,客户现场发现已有的生产记录在线打印时与客户现实实际文档中页眉不一致,客户实际文档的页眉有边框、图片、字体颜色等,而MES系统在线打印的只有文字,无法进行边框、图片、字体颜色等设置,非常影响生产管理。为解决该问题,本实施例公开了一种基于Handsontable的自定义页眉打印方法,如附图1所示,该方法具体可以包括如下内容。
步骤S1,MES系统在接收到打印指令后,生成页眉配置交互界面用于采集页眉配置信息,根据所述页眉配置信息加载对应的handsontable页眉表格作为第一页眉界面,所述页眉初始界面包括但不限于根据页眉配置信息生成的对应行列数。具体的,MES系统在接收到打印指令后,生成页眉配置弹窗,并加载空白默认handsontable页眉表格,如附图2所示,所述handsontable页眉表格根据预定设置具有预设行数和列数。
在本实施例中,该步骤S1具体可以包括如下内容。从待打印的生产记录文件的属性信息中查询是否存在所属项目名称,若存在则根据项目名称在打印模板数据库中查询是否存在匹配的打印模板,其中所述打印模板数据库中存储有多个使用handsontable页眉表格配置的页眉模板,各页眉摸板为具有多个行和列的不同handsontable页眉表格且在部分单元格上具有填充信息或绑定字段。
具体的,获取打印的生产记录的发送端身份信息或打印文件属性信息中的项目信息,根据所述发送端身份在打印模板数据库中查询是否存在对应的打印模板,所述对应模板为包含有已预设的页眉配置信息的handsontable页眉表格。
在另一实施例中,也可根据打印文件属性信息中的项目信息在打印模板数据库中查询是否存在匹配的打印模板,所述打印模板数据库中存储有多个用handsontable页眉表格生成的页眉模板,其中各页眉摸板为具有多个行和列的handsontable页眉表格,在部分单元格上具有填充信息或绑定字段。其中一页眉模板内包括多个作为页眉界面的handsontable页眉表格,其中页眉各表格绑定有添加至待打印文件上具体位置的页数,各页眉界面对应不同的页数。
进一步的,若在打印模板数据库中查询存在匹配的打印模板,则加载该打印模板的handsontable页眉表格,所述handsontable页眉表格预定设置有预设行数和列数。其中在表格中部分单元格中还包括已填充的固定字符、待填充单元格和绑定字段。进一步的,在一些模板中的handsontable页眉表格还预设有固定的宽度和长度、或者固定的宽度长度比。进一步的,在生成的页眉配置弹窗中还包括推荐模板选择功能,根据选定的模板生成对应的handsontable页眉表格。
若在打印模板数据库中未查询到匹配的打印模板,则生成页眉配置弹窗,根据在页眉配置弹窗中获得的行数和列数数据加载生成对应的空白默认handsontable页眉表格,所述handsontable页眉表格根据预定设置具有预设行数和列数。其中在在页眉配置弹窗中也可配置该页眉出现在待打印文档中的页码位置,以及在多也页眉文档中该页眉表格的排列次序,如果是第二页眉表格或其它后续页眉表格则发出需补充配置第一页眉表格的提示信息和开启第一页眉表格配置界面,以方便后续按页眉顺序进行调用。
步骤S2,根据接收到的各handsontable指令对handsontable页眉表格进行对应的调整和信息补充。
在本实施例中,步骤S2可以具体包括如下内容。
页眉表格的复制粘贴、撤销恢复操作,根据接收到的Handsontable的copyPaste配置指令来开启所述handsontable页眉表格的复制粘贴动作。
单元格换行操作,通过修改Handsontable的wordWrap属性并通过设置值为true或false实现自动换行动作。
字体加粗操作,通过设置单元格的style.fontWeight属性并通过设置值是bold或none实现对单元格内字体是否加粗动作。
单元格设置背景色操作,通过Handsonbatle的getSelectedRange方法获取当前选区,将选区拆分为独立单元格后循环遍历修改单元格的style.backgroundColor属性,来配置单元格背景色。
单元格边框设置操作,通过获取在handsontable页眉表格上操作的选区,将选区拆分为独立单元格并为每个单元格设置属性className来设置单元格边框。
在本实施例中,步骤S2还可以包括如下内容。
响应图片插入指令调用Upload组件选择图片,在收到图片指定指令后将图片资源上传到文件服务器,并接收所述文件服务器返回的所述图片相对系统的地址,将图片地址设置添加到单元格的backgroundImage属性上。具体的,插入图片操作可通过点击右键的插入图片,调用Upload组件选择图片,确定选择图片后将图片资源上传到文件服务器,文件服务器会返回此图片相对于系统的地址,然后将图片地址设置到单元格的backgroundImage属性上。
在本实施例中,可根据单元格的最大限定尺寸对插入图片进行调整,使其符合限定单元格的位置要。识别图片所在单元是否存在单元格边框显示选项,若存在则查找该图片边沿是否度该显示边框进行了遮挡,如果存在遮挡则将所遮挡边框向远离图片方向进行预设距离的移动。
获取当前选取的handsontable页眉表格可匹配和插入的字段信息bindData,修改Handsontable的contextMenu.items属性,将bindData补充到items中;在收到绑定字段插入指令后,获取所指定的待绑定的字段值后,在handsontable页眉表格上指定的单元格中呈现所绑定的字段信息。具体的,可在Handsontable表格右键绑定字段功能。在打开插入模板时,获取当前打印模板所有的字段信息bindData;修改Handsontable的contextMenu.items属性,将bindData补充到items中,在鼠标移动到右键菜单的绑定字段上时,就会显示要绑定的字段值,选择一个字段值,点击确定后,单元格中就会出现字段信息,字段信息格式为:{字段名}。其中绑定字段可以根据打印文件所属的项目名称去字段数据集中进行匹配查找,最终生成如附图3所示的handsontable页眉表格。
步骤S3,遍历handsontable页眉表格上的各引用特征,根据所述引用特征在待打印的生产记录文件中查询获取对应内容后填充至所述handsontable页眉表格形成第二页眉界面。
该步骤S3具体包括:调用服务协议,从待打印的生产记录文件中获取字段的实际生产数据,将实际数据与handsontable页眉表格中绑定的字段信息进行替换,使用htm12canvas服务将配置界面中Handsontable的内容区域,通过className名称获取打印区域元素dom,和dom的宽度和高度,将元素dom及宽度和高度信息传入htm12canvas服务,转换成与打印区域大小相同的图片后将htm12canvas服务返回的图片提交到打印服务器。具体的,调用htm12canvas将配置界面转为图片,将图片根据打印纸张的宽度进行等比例压缩,在将页眉表格区域转换成图片后,根据待打印文件的页眉的长和宽区域进行调整。具体的根据设置的长宽优先匹配项进行匹配,例如将长作为优先匹配项,则先将页眉表格图片调成这个长后,查询其宽度是否符合要求,若宽超出则将宽作为最大后缩小长度,否则无需调整。
步骤S4,将所述第二页眉界面转换成图片后根据待打印文档的尺寸和/或待打印文档内页眉区域大小进行调整后,发送至打印服务器作为页眉插入至待打印文件的页眉区域中进行打印。打印服务器可将页眉图片加载到生成的pdf的页眉中,然后预览页眉来确认页眉生成是否符合要求。
本发明公开的基于Handsontable的自定义页眉打印方法,通过Handsontable表格搭建页眉界面,在页眉界面可进行编辑边框、合并格子、插入图片、插入字段、修改字体样式等操作,之后通过与服务器交互获取插入的字段的实际值,然后替换字段数据后使用html2canvas将界面转换为图片,再将此图片传给打印服务进行打印。从而在使用handsontable打印时也可支持自定义页眉,包括设置边框、插入图片、修改字体大小颜色等,满足用户的打印需求,提供生成记录管理效率。
在本实施例中,在完成页眉自定义配置并与待打印的生产记录文件绑定后,对待打印的生产记录文件中表格数据的打印区域进行识别校验,判断是否存在超出打印区域从而影响打印的单元格,同时对超出打印区域的单元格内数据类型进行类型分析和归类从而方便后续修改调整,该步骤具体还可以包括如下内容。
步骤S51,获取待打印的生产记录文件,根据所述生成记录文件的表格配置信息确定本次待打印的生产记录数据表格中位于可打印区域的设定最大列位置。其中该生成记录文件采用的Handsontable表格记录数据中各列都采用了相同的固定列宽从而使得可打印区域内的各列宽不会因为单元格的内容变化而改变,使得在可打印区域内最大列位置不变。
步骤S52,从待打印生产记录数据中获取组成该打印数据的各条记录数据、并组成行记录集合,对行记录集合内的各条记录进行遍历,将记录数据中结束列与设定最大列进行比较,若大于则将该条记录数据添加至跨区任务组。
在本实施例中,该步骤具体还包括:
将各条记录数据中最后列位置与设定最大列位置进行比较,若大于则获取超过设定最大列的各单元格,判断位于设定最大列外的各单元格内是否存在文字数据信息,若存在至少一单元格内存在文字数据信息则将该条记录数据添加至跨区任务组。若记录数据中最后列位置不大于设定最大列位置则对该条记录数据的尾部单元格进行分析,如果尾部单元格为合并单元格数组,则计算所述合并单元格的最终列位置,所述最终列位置为:合并单元格起始列+所包含的列数量-1,判断最终列位置是否大于设定最大列位置,若大于则判断该合并单元格内是否存在文字数据信息,若存在则将该记录数据添加至跨区任务组中。
在本实施例中,还可将各条记录数据中最后列位置与设定最大列位置进行比较,若记录数据中最后列位置不大于设定最大列位置则对该条记录数据的尾部单元格进行分析,若尾部单元格非合并单元格数组且存在文字数据信息则对所述文字数据信息进行循环遍历,记录该文字数据信息所分布的各列位置,判断其中是否存在超过设定最大列位置的文字所在列位置,若存在将其添加至临时变量数组中。
步骤S53,对跨区任务组中的各条记录数据进行单元格位置校验,识别组成各条记录数据的单元格中超出打印区域的区外单元格位置,对各区外单元格进行打印格式识别并匹配问题归类信息,所述打印格式包括但不限于合并单元格、格内文字、格子边框、格子背景色和格子字体设置。
在本实施例中,对各区外单元格进行打印格式识别并匹配问题归类信息,具体包括:
依次对跨区任务组中的各条记录数据所在的各单元格进行遍历;若存在合并单元格数组,则计算所述合并单元格的最终列位置,所述最终列位置为:合并单元格起始列+所包含的列数量-1,判断最终列位置是否大于设定最大列位置,若大于则将其添加至临时变量数组中。
若单元格中存在文字数据信息则对所述文字数据信息进行循环遍历,记录该文字数据信息所分布的各列位置,判断其中是否存在超过设定最大列位置的文字所在列位置,若存在将其添加至临时变量数组中。
若单元格中存在字体配置信息则对字体配置信息行遍历,记录该文字数据信息所分布的列位置,若存在超过设定最大列位置的字体配置信息所在列位置,则判断该单元格是否存在文字数据信息,若存在则将其添加至临时变量数组中。
若单元格中存在单元格背景配置信息,记录该背景配置信息所分布的列位置,若存在超过设定最大列位置的背景配置信息所在列位置,则判断该单元格是否存在文字数据信息,若存在则将其添加至临时变量数组中。
若单元格中存在单元格边框配置则对所述单元格边框配置信息进行遍历,判断是否存在上边框配置信息、下边框配置信息、左边框配置信息或右边框配置信息中的一个或多个,若存在则判断其中是否存在超过设定最大列位置的边框配置信息所在列位置,若存在将其添加至临时变量数组中。
步骤S54,根据识别的超出打印区域的区外单元格位置和对应问题归类信息添加识别标识。最终准确的定位打印区域数据,快速有效的罗列出不满足打印区域的组态数据供用户及时修改,从而满足用户的打印需求。
在本实施例中,在对超出打印区域的单元格数据进行调整并确认打印后,发送打印任务请求和调整确认后的待打印的生产记录文件,开始进入文件打印进程,具体步骤包括如下内容。
步骤S61,接收打印任务请求和待打印的生产记录文件,开启打印任务线程和背景工作线程,将打印任务请求中的设置参数发送至所述背景工作线程。其中背景工作线程被配置为保存在前端项目的静态文件夹中的javaScript文件。
步骤S62,背景工作线程根据接收的设置参数和待打印的生产记录文件所属项目信息从处理逻辑数据库中查询获取匹配的表格处理逻辑组合,加载匹配到的表格处理逻辑组合对所述待打印的生产记录文件的Handsontable表格记录数据进行预处理调整,形成拟打印数据,所述表格处理逻辑组合包括但不限于数据转换操作、边框补充操作、合并样式获取操作、和打印区域获取操作。
依次对待打印的Handsontable表格记录数据的各单元格进行遍历,若存在合并单元格数组,则判断所述合并单元格数组上是否存在单元格边框配置信息。若存在单元格边框配置信息则对所述单元格边框配置信息进行遍历,若当前单元格边框配置信息中存在上边框配置信息或下边框配置信息,则对所在合并单元格进行拆分并获取所有子单元格,向各子单元格补充添加对应的上边框配置信息或下边框配置信息。将待打印的Handsontable表格记录数据和合并数据格式转换为Excel表格应用的数据格式。通过获取待打印的表格记录数据中的各单元格文字数据信息、单元格形态数据、合并单元格信息,确定需要进行打印待打印表格记录数据中的最大列位置和最小列位置,根据所述最大列位置和最小列位置确认本次表格记录数据的打印区域。
步骤S63,打印任务线程在接收到背景工作线程发送的拟打印数据后调用打印机执行打印动作。
在本实施例中,为防止打印服务失败后需重新打印的问题,该步骤S63还包括如下内容。
背景工作线程获取待接收打印数据的目标打印机身份信息,根据目标打印机身份信息访问打印配置数据库中查询是否存在匹配所述目标打印机身份信息的数据打印规则,所述数据打印规则被配置为背景工作线程按对应的数据分割大小将处理好的拟打印数据进行分割断页后打包形成多个子打印数据包,所述各子打印数据包具有标识其在拟打印数据中所在位置顺序的序号标识。其中根据该目标打印机的型号信息和历史故障记录,对应匹配具有不同数据分割大小的数据打印规则。具体的,背景工作线程获取待打印的生产记录文件的数据量大小,若所述数据量不大于分割阈值则不对拟打印数据进行分割,否则获取待接收打印数据的目标打印机身份信息,根据目标打印机身份信息访问打印配置数据库。在打印配置数据库中查询所述目标打印机历史故障次数,根据所述历史故障次数在查找匹配对应的数据打印规则,其中所述各数据打印规则中的数据分割大小参数根据打印机历史故障次数的不同而具有不同设置。
打印任务线程在接收到背景工作线程发送的子打印数据包后调用目标打印机执行打印动作,并在收到目标打印机反馈的该子打印数据包打印完成后继续发送下一子打印数据包。若打印任务线程在设定时间内未接收到目标打印机发送的完成打印反馈或者接收到目标打印机发送的当前任务打印故障后暂停后续向其发送下一子打印数据包,并在收到故障解除信息后重新向其发送当前子打印数据包。从而防止在现在的打印模式中,在在打印机故障解除后出现的打印故障页可能的缺失从而导致工单数据出现遗漏打印的问题。
在本实施例中,由于打印的生产记录数据动辄超过千页,整个打印过程所占用的打印机时间较长,给其它临时产生的紧急打印任务造成了阻碍,因此为解决此类生成记录文件打印任务长时间占用打印机时间的缺点,利用打印任务线程和背景工作线程分开的特性,还可包括如下内容。
打印任务线程在对背景工作线程发送的子打印数据包进行打印过程中,若接收到另一新打印任务请求则获取该新打印任务请求的优先级,将当前打印任务优先级与新打印任务请求优先级进行比较。
若所述新打印任务请求优先级大于当前打印任务优先级则在完成当前打印任务的子打印数据包后,打印任务线程向第一背景工作线程发送暂停发送指令并暂停接收所述第一背景工作线程发送的后续子打印数据包,并在接收到目标打印机反馈的当前子打印数据包打印任务完成后接受第二背景工作线程发送的拟打印数据;所述第一背景工作线程为当前打印任务的背景工作线程,所述第二背景工作线程为新打印任务请求的背景工作线程
所述打印任务线程在完成第二背景工作线程发送的拟打印数据的打印任务后,再次向第一背景工作线程发送子打印数据包继续接收指令和当前已完成打印的子打印数据包最大序号标识,所述第一背景工作线程在接收到续接收指令后核实已完成的子打印数据包最大序号标识和当前未发送子打印数据包序号标识后,恢复向打印任务线程发送后续子打印数据包。
利用javaScript的多线程worker技术,通过把打印Handsontable表格数据之前的大量运算逻辑转移到背景工作线程,从而不影响主线程的运行,待背景工作线程worker进行运算结束,把结果返回作为主线程的打印任务线程,从而再开始打印,满足用户大数据量表格打印需求。
在另一实施例中,还公开了一种基于Handsontable的自定义页眉打印系统,包括:配置模块,用于在生成页眉配置交互界面用于采集页眉配置信息,根据所述页眉配置信息加载对应的handsontable页眉表格作为第一页眉界面,所述页眉初始界面包括但不限于根据页眉配置信息生成的对应行列数。调整模块,用于根据接收到的各handsontable指令对handsontable页眉表格进行对应的调整和信息补充。内容填充模块,用于遍历handsontable页眉表格上的各引用特征,根据所述引用特征在待打印的生产记录文件中查询获取对应内容后填充至所述handsontable页眉表格形成第二页眉界面。转换模块,用于将所述第二页眉界面转换成图片后根据待打印文档的尺寸和/或待打印文档内页眉区域大小进行调整后,发送至打印服务器作为页眉插入至待打印文件的页眉区域中进行打印。
在本实施例中,所述配置模块还用于从待打印的生产记录文件的属性信息中查询是否存在所属项目名称,若存在则根据项目名称在打印模板数据库中查询是否存在匹配的打印模板,其中所述打印模板数据库中存储有多个使用handsontable页眉表格配置的页眉模板,各页眉摸板为具有多个行和列的不同handsontable页眉表格且在部分单元格上具有填充信息或绑定字段。
在本实施例中,所述调整模块具体包括:复制粘贴,用于根据接收到的Handsontable的copyPaste配置指令来开启所述handsontable页眉表格的复制粘贴动作。换行模块,用于通过修改Handsontable的wordWrap属性并通过设置值为true或false实现自动换行动作。字体设置模块,用于通过设置单元格的style.fontWeight属性并通过设置值是bold或none实现对单元格内字体是否加粗动作。背景设置模块,用于通过Handsonbatle的getSelectedRange方法获取当前选区,将选区拆分为独立单元格后循环遍历修改单元格的style.backgroundColor属性,来配置单元格背景色。边框设置模块,用于通过获取在handsontable页眉表格上操作的选区,将选区拆分为独立单元格并为每个单元格设置属性className来设置单元格边框。
需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相似部分互相参见即可。对于实施例公开的基于Handsontable的自定义页眉打印系统而言,由于其与实施例公开的基于Handsontable的自定义页眉打印方法相对应,所以描述的比较简单,相关之处参见前述方法部分说明即可。
在另一些实施例中,还提供了一种基于Handsontable的自定义页眉打印装置,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述各实施例中描述的基于Handsontable的自定义页眉打印方法的各个步骤。其中该服务器可包括但不仅限于,处理器、存储器。本领域技术人员可以理解,所述示意图仅仅是服务器的示例,并不构成对该服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件。
所述基于Handsontable的自定义页眉打印装置如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个基于Handsontable的自定义页眉打印方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器、随机存取存储器、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
总之,以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所作的均等变化与修饰,皆应属本发明专利的涵盖范围。
Claims (10)
1.基于Handsontable的自定义页眉打印方法,其特征在于,包括如下步骤:
S1,MES系统在接收到打印指令后,生成页眉配置交互界面用于采集页眉配置信息,根据所述页眉配置信息加载对应的handsontable页眉表格作为第一页眉界面,所述页眉初始界面包括但不限于根据页眉配置信息生成的对应行列数;
S2,根据接收到的各handsontable指令对handsontable页眉表格进行对应的调整和信息补充;
S3,遍历handsontable页眉表格上的各引用特征,根据所述引用特征在待打印的生产记录文件中查询获取对应内容后填充至所述handsontable页眉表格形成第二页眉界面;
S4,将所述第二页眉界面转换成图片后根据待打印文档的尺寸和/或待打印文档内页眉区域大小进行调整后,发送至打印服务器作为页眉插入至待打印文件的页眉区域中进行打印。
2.根据权利要求1所述的基于Handsontable的自定义页眉打印方法,其特征在于,所述步骤S1具体包括:
从待打印的生产记录文件的属性信息中查询是否存在所属项目名称,若存在则根据项目名称在打印模板数据库中查询是否存在匹配的打印模板,其中所述打印模板数据库中存储有多个使用handsontable页眉表格配置的页眉模板,各页眉摸板为具有多个行和列的不同handsontable页眉表格且在部分单元格上具有填充信息或绑定字段。
3.根据权利要求2所述的基于Handsontable的自定义页眉打印方法,其特征在于,所述步骤S2具体包括:
根据接收到的Handsontable的copyPaste配置指令来开启所述handsontable页眉表格的复制粘贴动作;
通过修改Handsontable的wordWrap属性并通过设置值为true或false实现自动换行动作;
通过设置单元格的style.fontWeight属性并通过设置值是bold或none实现对单元格内字体是否加粗动作;
通过Handsonbatle的getSelectedRange方法获取当前选区,将选区拆分为独立单元格后循环遍历修改单元格的style.backgroundColor属性,来配置单元格背景色;
通过获取在handsontable页眉表格上操作的选区,将选区拆分为独立单元格并为每个单元格设置属性className来设置单元格边框。
4.根据权利要求3所述的基于Handsontable的自定义页眉打印方法,其特征在于,所述步骤S2还包括:
响应图片插入指令调用Upload组件选择图片,在收到图片指定指令后将图片资源上传到文件服务器,并接收所述文件服务器返回的所述图片相对系统的地址,将图片地址设置添加到单元格的backgroundImage属性上;
获取当前选取的handsontable页眉表格可匹配和插入的字段信息bindData,修改Handsontable的contextMenu.items属性,将bindData补充到items中;在收到绑定字段插入指令后,获取所指定的待绑定的字段值后,在handsontable页眉表格上指定的单元格中呈现所绑定的字段信息。
5.根据权利要求4所述的基于Handsontable的自定义页眉打印方法,其特征在于,所述步骤S3具体包括:
调用服务协议,从待打印的生产记录文件中获取字段的实际生产数据,将实际数据与handsontable页眉表格中绑定的字段信息进行替换,使用htm12canvas服务将配置界面中Handsontable的内容区域,通过className名称获取打印区域元素dom,和dom的宽度和高度,将元素dom及宽度和高度信息传入htm12canvas服务,转换成与打印区域大小相同的图片后将htm12canvas服务返回的图片提交到打印服务器。
6.基于Handsontable的自定义页眉打印系统,其特征在于,包括:
配置模块,用于在生成页眉配置交互界面用于采集页眉配置信息,根据所述页眉配置信息加载对应的handsontable页眉表格作为第一页眉界面,所述页眉初始界面包括但不限于根据页眉配置信息生成的对应行列数;
调整模块,用于根据接收到的各handsontable指令对handsontable页眉表格进行对应的调整和信息补充;
内容填充模块,用于遍历handsontable页眉表格上的各引用特征,根据所述引用特征在待打印的生产记录文件中查询获取对应内容后填充至所述handsontable页眉表格形成第二页眉界面;
转换模块,用于将所述第二页眉界面转换成图片后根据待打印文档的尺寸和/或待打印文档内页眉区域大小进行调整后,发送至打印服务器作为页眉插入至待打印文件的页眉区域中进行打印。
7.根据权利要求5所述的基于Handsontable的自定义页眉打印系统,其特征在于,所述配置模块还用于从待打印的生产记录文件的属性信息中查询是否存在所属项目名称,若存在则根据项目名称在打印模板数据库中查询是否存在匹配的打印模板,其中所述打印模板数据库中存储有多个使用handsontable页眉表格配置的页眉模板,各页眉摸板为具有多个行和列的不同handsontable页眉表格且在部分单元格上具有填充信息或绑定字段。
8.根据权利要求7所述的基于Handsontable的自定义页眉打印系统,其特征在于,所述调整模块具体包括:
复制粘贴,用于根据接收到的Handsontable的copyPaste配置指令来开启所述handsontable页眉表格的复制粘贴动作;
换行模块,用于通过修改Handsontable的wordWrap属性并通过设置值为true或false实现自动换行动作;
字体设置模块,用于通过设置单元格的style.fontWeight属性并通过设置值是bold或none实现对单元格内字体是否加粗动作;
背景设置模块,用于通过Handsonbatle的getSelectedRange方法获取当前选区,将选区拆分为独立单元格后循环遍历修改单元格的style.backgroundColor属性,来配置单元格背景色;
边框设置模块,用于通过获取在handsontable页眉表格上操作的选区,将选区拆分为独立单元格并为每个单元格设置属性className来设置单元格边框。
9.基于Handsontable的自定义页眉打印装置,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于:所述处理器执行所述计算机程序时实现如权利要求1-5任一所述方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现如权利要求1-5任一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311872127.8A CN118012359A (zh) | 2023-12-31 | 2023-12-31 | 基于Handsontable的自定义页眉打印方法、系统和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311872127.8A CN118012359A (zh) | 2023-12-31 | 2023-12-31 | 基于Handsontable的自定义页眉打印方法、系统和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118012359A true CN118012359A (zh) | 2024-05-10 |
Family
ID=90946966
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311872127.8A Pending CN118012359A (zh) | 2023-12-31 | 2023-12-31 | 基于Handsontable的自定义页眉打印方法、系统和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118012359A (zh) |
-
2023
- 2023-12-31 CN CN202311872127.8A patent/CN118012359A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7633638B2 (en) | Method and system for data processing | |
US6791707B2 (en) | Automated, hosted prepress applications | |
US5493634A (en) | Apparatus and method for multi-stage/multi-process decomposing | |
US6650431B1 (en) | Processing documents with multiple output devices | |
US8810847B2 (en) | Information processing apparatus, information processing method, and storage medium storing program thereof | |
US7952758B2 (en) | Image forming system | |
US20050289182A1 (en) | Document management system with enhanced intelligent document recognition capabilities | |
DE10158984A1 (de) | Drucksystem und Verfahren zur Individualisierung eines Druckauftrags | |
US8743421B1 (en) | System and method for spot color correction | |
US6734994B2 (en) | Image reading method and apparatus | |
CN1148696A (zh) | 打印控制设备方法、信息处理设备方法、存贮介质 | |
JP4596285B2 (ja) | 画像処理システム及び画像処理方法並びにオブジェクト名生成プログラム | |
US8749577B2 (en) | Information processing apparatus, data processing method, and computer-readable recording medium storing program | |
US6864993B1 (en) | Method, system, and program for determining consistency of information on a print job | |
EP1393157A1 (de) | Verfahren, geratesystem und computerprogrammsystem zur verarbeitung von dokumentendaten | |
DE10158419A1 (de) | Verfahren zum digitalen Drucken von zusammengesetzten Dokumenten | |
US20040120011A1 (en) | Alternative to pre-printed special forms | |
DE60123730T2 (de) | Gerät und Verfahren zur Bestimmung des Formats von Dokumenten | |
US8397162B2 (en) | Method, printing system and computer program for generating and processing document data streams | |
CN118012359A (zh) | 基于Handsontable的自定义页眉打印方法、系统和存储介质 | |
US7844138B2 (en) | History control apparatus | |
JP3245151B2 (ja) | ページ記述言語処理装置およびページ記述言語処理印刷装置 | |
US7710602B2 (en) | Systems and methods for context-based adaptive image processing using segmentation | |
CN118012357A (zh) | 一种大数据量表格的高效打印方法、系统和服务器 | |
US20060119886A1 (en) | Print control unit and a print control program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |