CN110991147B - 一种字体检测方法、装置、电子设备及存储介质 - Google Patents

一种字体检测方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN110991147B
CN110991147B CN201911313915.7A CN201911313915A CN110991147B CN 110991147 B CN110991147 B CN 110991147B CN 201911313915 A CN201911313915 A CN 201911313915A CN 110991147 B CN110991147 B CN 110991147B
Authority
CN
China
Prior art keywords
font
fonts
forbidden
statement
preset
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.)
Active
Application number
CN201911313915.7A
Other languages
English (en)
Other versions
CN110991147A (zh
Inventor
蒋演
吕庆春
彭飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuba Co Ltd
Original Assignee
Wuba Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuba Co Ltd filed Critical Wuba Co Ltd
Priority to CN201911313915.7A priority Critical patent/CN110991147B/zh
Publication of CN110991147A publication Critical patent/CN110991147A/zh
Application granted granted Critical
Publication of CN110991147B publication Critical patent/CN110991147B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明提供了一种字体检查方法、装置、电子设备及存储介质,其中,在字体检查方法中,首先创建由预设字体的字体名称和所述字体名称与相应字体配置语句之间的映射关系组成的替代函数,用以在检测字体时替代应用程序执行脚本中所述预设字体对应的完整的字体配置语句,所述字体配置语句包括根据开发需求创建的自定义配置语句以及从第三方平台调用字体文件的字体调用语句。在检查所述预设字体时,从所述替代函数中获取所述字体名称,再通过对比这些字体名称与预设可用字体名称名单的字体名称,确定禁用字体。可见,本发明通过创建的替代函数汇总各个预设字体的字体名称,进而根据字体名称判断是否为禁用字体,可以有效检查引用自第三方平台的字体。

Description

一种字体检测方法、装置、电子设备及存储介质
技术领域
本申请涉及字体设计领域,尤其涉及一种字体检查方法、装置、电子设备及存储介质。
背景技术
软件产品设计一般分为编码设计和UI(User Interface,用户界面)设计,UI设计是指对软件界面的样式设计,通常,设计人员在进行UI设计时,会不可避免地设计对字体的设置。但是,并不是所有字体都可以随意使用,通常除了系统自带的一些字体和一些与系统合作所不设限的字体以外,若要使用其它字体,都需要首先向这些字体的版权权利者进行申请、购买使用权限等操作之后,才可以使用这些字体。如果贸然使用这些字体,则会产生一些侵权纠纷。因此,要求从设计人员所设置的字体中准确识别出禁用字体,以避免纠纷。
目前,设计人员在设置字体之后,都会进行人工自检,以挑选出禁用字体。具体地,可以使用的字体都有对应的固定代码,设计人员或者审核人员通过对照完成的应用程序执行脚本中与字体相关的代码与这些固定代码,即可分辨出不属于这些固定代码的禁用字体。但是,通常应用程序执行脚本的代码量较庞大,从其中挑选出与字体相关的代码已经很困难,再将大量的字体相关的代码与这些固定代码相对照会更加不容易,不仅容易出错,而且效率低。同时,设计人员在设置字体时,有时会根据展示需求进行自定义设计字体代码,有时会直接调用第三方平台提供的字体。上述自检的方法仅适用于检查具有可视代码的字体,也就是只能检查自定义设计字体代码。但是,对于直接调用第三方平台提供的字体,在检测时只能看到这些字体所对应的字体文件夹,并不能看到字体文件夹中所包含的具体字体代码,也就无法检查字体。
发明内容
本申请提供了一种字体检查方法,以解决现有字体检查方式无法检查从第三方平台引用的字体的问题。
第一方面,本发明实施例提供了一种字体检查方法,包括:
创建替代函数,所述替代函数由预设字体的字体名称和所述字体名称与相应字体配置语句之间的映射关系组成,用以在检查字体时替代应用程序执行脚本中所述预设字体对应的完整的字体配置语句,所述字体配置语句包括根据开发需求创建的自定义配置语句以及从第三方平台调用字体文件的字体调用语句;
在检查所述预设字体时,从所述替代函数中获取所述字体名称;
确定禁用字体,所述禁用字体为不属于预设可用字体名称名单的字体名称所对应的预设字体。
在本发明实施例第一方面一种可能的实现方式中,所述创建替代函数包括:
从所述应用程序执行脚本中获取所述自定义配置语句和所述字体调用语句;
获取字体名称,所述字体名称为所述自定义配置语句和所述字体调用语句中所调用字体的名称;
对所述自定义配置语句和所述字体调用语句进行语法分析,确定字体名称与所述自定义配置语句或者所述字体调用语句之间的映射关系;
汇总所述字体名称和所述映射关系,得到替代函数。
在本发明实施例第一方面一种可能的实现方式中,所述创建替代函数之前包括:
从所述应用程序执行脚本对应的执行系统中获取全部预设可用字体的字体名称,所述预设可用字体为允许在所述应用程序中使用的字体;
汇总全部所述预设可用字体的字体名称,得到预设可用字体名称名单。
在本发明实施例第一方面一种可能的实现方式中,所述确定禁用字体之后包括:
向所述应用程序执行脚本对应的执行系统发送禁用通知,所述禁用通知包括所述禁用字体的字体名称。
在本发明实施例第一方面一种可能的实现方式中,所述禁用通知还包括禁用字体对应的代码行数,所述确定禁用字体之后还包括:
根据所述禁用字体的字体名称以及与所述禁用字体的字体名称相应字体配置语句之间的映射关系,确定所述禁用字体对应的字体配置语句;
根据所述字体配置语句中的位置标签,确定所述字体配置语句所在的代码行数。
在本发明实施例第一方面一种可能的实现方式中,所述确定禁用字体之后包括:
将所述禁用字体替换为所述预设可用字体。
第二方面,本发明实施例提供了一种字体检查装置,包括:
函数创建模块,用于创建替代函数,所述替代函数由预设字体的字体名称和所述字体名称与相应字体配置语句之间的映射关系组成,用以在检查字体时替代应用程序执行脚本中所述预设字体对应的完整的字体配置语句,所述字体配置语句包括根据开发需求创建的自定义配置语句以及从第三方平台调用字体文件的字体调用语句;
名称获取模块,用于在检查所述预设字体时,从所述替代函数中获取所述字体名称;
禁用字体确定模块,用于确定禁用字体,所述禁用字体为不属于预设可用字体名称名单的字体名称所对应的预设字体。
在本发明实施例第二方面一种可能的实现方式中,所述函数创建模块包括:
语句获取模块,用于从所述应用程序执行脚本中获取所述自定义配置语句和所述字体调用语句;
字体名称获取模块,用于获取字体名称,所述字体名称为所述自定义配置语句和所述字体调用语句中所调用字体的名称;
关系确定模块,用于对所述自定义配置语句和所述字体调用语句进行语法分析,确定字体名称与所述自定义配置语句或者所述字体调用语句之间的映射关系;
汇总模块,用于汇总所述字体名称和所述映射关系,得到替代函数。
在本发明实施例第二方面一种可能的实现方式中,所述装置还包括:
可用字体名称获取模块,用于从所述应用程序执行脚本对应的执行系统中获取全部预设可用字体的字体名称,所述预设可用字体为允许在所述应用程序中使用的字体;
名单生成模块,用于汇总全部所述预设可用字体的字体名称,得到预设可用字体名称名单。
在本发明实施例第二方面一种可能的实现方式中,所述装置还包括:
通知发送模块,用于向所述应用程序执行脚本对应的执行系统发送禁用通知,所述禁用通知包括所述禁用字体的字体名称。
在本发明实施例第二方面一种可能的实现方式中,所述装置还包括:
语句确定模块,用于根据所述禁用字体的字体名称以及与所述禁用字体的字体名称相应字体配置语句之间的映射关系,确定所述禁用字体对应的字体配置语句;
行数定位模块,用于根据所述字体配置语句中的位置标签,确定所述字体配置语句所在的代码行数。
在本发明实施例第二方面一种可能的实现方式中,所述装置还包括:
替换模块,用于将所述禁用字体替换为所述预设可用字体。
第三方面,本发明实施例提供了一种电子设备,包括:
处理器,以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行所述的字体检查方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述的字体检查方法。
本发明实施例提供了一种字体检查方法、装置、电子设备及存储介质,其中,在字体检查方法中,首先,创建由预设字体的字体名称和所述字体名称与相应字体配置语句之间的映射关系组成的替代函数,用以在检测字体时替代应用程序执行脚本中所述预设字体对应的完整的字体配置语句,所述字体配置语句包括根据开发需求创建的自定义配置语句以及从第三方平台调用字体文件的字体调用语句。在检查所述预设字体时,从所述替代函数中获取所述字体名称,再通过对比这些字体名称与预设可用字体名称名单的字体名称,确定禁用字体。可见,本申请通过创建的替代函数汇总各个预设字体的字体名称,进而根据字体名称判断是否为禁用字体,可以有效检查引用自第三方平台的字体。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种字体检查方法的流程图;
图2为本发明实施例提供的一种创建替代函数的方法的流程图;
图3为本申请实施例提供的一种确定预设可用字体名称名单的方法的流程图;
图4为本申请实施例提供的一种确定禁用字体对应代码行数的方法的流程图;
图5为本申请实施例提供的一种字体检查装置实施例一的结构示意图;
图6为本申请实施例提供的一种字体检查装置实施例二的结构示意图;
图7为本申请实施例提供的一种字体检查装置实施例三的结构示意图;
图8为本申请实施例提供的一种字体检查装置实施例四的结构示意图;
图9为本申请实施例提供的一种字体检查装置实施例五的结构示意图;
图10为本申请实施例提供的一种字体检查装置实施例六的结构示意图;
图11为本发明实施例提供的电子设备的硬件结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的一种字体检查方法的流程图,如图1所示,所述方法包括:
S1、创建替代函数,所述替代函数由预设字体的字体名称和所述字体名称与相应字体配置语句之间的映射关系组成,用以在检查字体时替代应用程序执行脚本中所述预设字体对应的完整的字体配置语句,所述字体配置语句包括根据开发需求创建的自定义配置语句以及从第三方平台调用字体文件的字体调用语句。
UI设计人员在编写与UI界面相关部分的应用程序执行脚本时,通常会将与预设字体相应的字体配置语句按照执行顺序写入执行脚本。其中,预设字体即为设计人员在设计UI时,认为需要最终展示于UI的字体。设计人员在编写字体配置语句时,在一种情况中,根据开发需求,编写的调用符合该开发需求的预设字体的调用代码,在本实施例中将这种调用代码定义为自定义配置语句。例如,设计人员针对开发需求为“加粗、红色、宋体、阴影”,可以确定所对应的预设字体名称为A,由于可以正常展示这些已知字体的相关代码也是已知的,可以直接调用,因此,当设计人员确定所使用的预设字体为A时,即可直接编写调用A相关的代码的自定义配置语句,可见,该自定义配置语句中必然包含预设字体的字体名称A。在另一种情况中,UI在展示的过程经常会与第三方平台进行交互,有时需要直接将第三方平台上的文字直接呈现在UI上,此时,预设字体即为第三方平台需要展示于UI上的字体,为了实现上述目的,就需要调用第三方平台的字体文件。或者对于某些满足设计人员开发需求的字体,关于这些字体的具体代码设计人员无法直接获得,但是,设计人员知道这些字体的来源于哪些第三方平台,那么设计人员也会直接调用第三方平台的字体文件,在本实施例中将以上用于调用第三方平台的字体文件的代码定义为字体调用语句。可见,这些字体调用语句中必然会包含字体文件的文件名称,通常,文件名称使用对应字体名称来命名,所以,可以认为字体调用语句中至少包含字体名称。
具体地,设计人员会利用setFon函数,配置与预设字体相关的UILabel、UITextField、UITextView等用于展示文本的类来编写预设字体的字体配置语句。
在渲染UI时,应用程序执行脚本就会直接使用这些字体文件渲染UI。
设计人员在完成应用程序执行脚本中关于字体配置语句的编写时,应用程序利用该执行脚本渲染UI时,是按照执行脚本中的代码顺序直接执行的。由上文可知,字体配置语句中包含两种类型的配置语句,其中,自定义配置语句中包含了大量的代码,而字体调用语句中主要包含了字体文件名称以及相关的调用方法。在检查预设字体时,如果直接对该应用程序执行脚本进行检查,则无法利用统一的方法进行检查。此时,为了方便字体检查,可以在检查字体之前,首先创建关于各个预设字体的替代函数,仅在该替代函数中保存有预设字体对应的字体名称以及该字体名称与相应字体配置语句之间的映射关系。一方面,可以利用替换函数将与预设字体相关的字体配置语句与应用程序执行脚本中其它代码相分离,相当于形成一个专门的函数或者区域,专供字体检查使用,从而可以大大降低字体检查时需要浏览全部应用程序执行脚本以确定字体配置语句所在的位置所耗费的时间,同时,也能够有效避免在应用程序执行脚本对应的大量代码中找寻字体配置语句所出现的遗漏的问题。另一方面,该替代函数中只包含字体配置语句的关键信息,即字体名称以及相关的映射关系,可以大大缩减替代函数所包含的代码量,从而可以减轻字体检查的计算压力。
具体地,如图2所示,为本发明实施例提供的一种创建替代函数的方法的流程图,所述方法包括:
S101、从所述应用程序执行脚本中获取所述自定义配置语句和所述字体调用语句;
S102、获取字体名称,所述字体名称为所述自定义配置语句和所述字体调用语句中所调用字体的名称;
S103、对所述自定义配置语句和所述字体调用语句进行语法分析,确定字体名称与所述自定义配置语句或者所述字体调用语句之间的映射关系;
S104、汇总所述字体名称和所述映射关系,得到替代函数。
编写的应用程序执行脚本中包含很多语句,用于实现不同的功能和作用,这些语句通常包括调用方法名称和调用方法名称后引用的调用内容,因此,可以首先获取调用方法名称,然后通过调用该方法名称即可判断出哪一条语句属于字体配置语句。本实施例提供一种获取字体配置语句的方法,可以首先令编写完成的应用程序执行脚本运行,然后利用Hook函数在监听到字体配置语句运行时,拦截字体配置语句,从而准确获取字体配置语句。
进一步地,由上文可知,无论哪一种字体配置语句,都会包含字体名称,通常这些字体名称位于语句中的特定位置,或者携带特定标签,以供准确识别。
通过语法分析,可以将每一条字体配置语句划分为不同的部分,例如字体名称、调用语句、引用内容、引用名称、相关参数等。其中,根据字体名称调用关系、引用内容和引用名称可以建立起字体名称与字体配置语句之间的映射关系,根据这种映射关系可以仅通过字体名称即可对应找到相应的字体配置语句。将全部预设字体相关的字体名称和映射关系汇总,即可形成替代函数,以为字体检查提供专用的检查区域。
可选地,创建代替函数的过程可以在设计人员编写应用程序执行脚本之后,立即创建;也可以是在产生字体检查需求时,运行该执行脚本并按照上述步骤创建代替函数。
可见,本申请实施例提供的技术方案不仅能够准确检查引用自第三方平台的字体,而且,对于所要检查的字体具有专设的检查区域,能够有效提高检查速度和准确性。
S2、在检查所述预设字体时,从所述替代函数中获取所述字体名称。
根据上述步骤创建替代函数之后,可以通过检查字体名称对上述所使用的两类字体进行检查。
通常应用程序所对应的操作系统,例如iOS、Android、windows等,或者应用程序所签订的字体限制协议等都会对应用程序的可用字体做出限制。例如,应用程序A只能免费使用字体a、b、c、d。此时,在检查预设字体是否为可用时,就需要首先准确获知这些不受限制,可以供应用程序免费使用的字体名称,即预设可用字体名称。
具体地,如图3所示,为本申请实施例提供的一种确定预设可用字体名称名单的方法的流程图,所述方法包括:
S001、从所述应用程序执行脚本对应的执行系统中获取全部预设可用字体,所述预设可用字体为允许在所述应用程序中使用的字体;
S002、汇总全部所述预设可用字体的字体名称,得到预设可用字体名称名单。
通常,预设可用字体已经通过协议等方式写入应用程序执行脚本对应的执行系统中,因此,可以直接从相应的执行系统中准确确定预设可用字体的字体名称。例如,应用程序执行脚本对应的执行系统A,已经设置预设可用字体为a’、b’、c’、d’,此时,可以直接从执行系统A中获取到与预设可用字体相对应的预设可用字体的字体名称a、b、c、d。
优选地,由于所确定的预设可用字体的字体名称用于后续与预设字体的字体名称进行比较,而执行系统的写入语言可能与设计人员编写应用程序执行脚本时所使用的语言不同,为了保证两部分字体名称的可比较性,和比较准确性,需要将两部分字体名称做格式统一处理。
为了方便对预设可用字体的字体名称的管理,可以将全部预设可用字体的字体名称汇总,以生成一份预设可用字体名称名单。当预设可用字体发生变更时,可以直接更新该预设可用字体名称名单,而在比较预设字体的字体名称与预设可用字体的字体名称时,如果预设可用字体名称名单不发生变更,则无需重新进行S001的操作,可以有效节省操作事件和处理步骤。
进一步地,可以将该预设可用字体名称名单存储至数据库,以便设计人员再次开发时,可以直接使用,节省时间,提高效率。
可选地,确定预设可用字体名称名单的过程可以在下述确定禁用字体之前的任一时刻,这样可以为设计人员提供极大的检查自由度。
S3、确定禁用字体,所述禁用字体为不属于预设可用字体名称名单的字体名称所对应的预设字体。
通过比较预设字体的字体名称与预设可用字体的字体名称,可以准确确定禁用字体,从而可以有效避免使用这些禁用字体,以避免产生商业纠纷。
为了进一步提醒设计人员,在确定禁用字体之后,可以向所述应用程序执行脚本对应的执行系统发送禁用通知,所述禁用通知包括所述禁用字体的字体名称。
此时,执行系统接收该禁用通知之后,可以通过继续发放文字、声音、图片等形式的指令以提醒设计人员,执行系统也可以根据该禁用通知直接限制设计人员对禁用字体的继续使用。
进一步地,为了方便设计人员对禁用字体的定位以及后续修改,可以在禁用通知中携带禁用字体对应的代码行数,以便设计人员准确定位到禁用字体。具体地,参见图4,为本申请实施例提供的一种确定禁用字体对应代码行数的方法的流程图,所述方法包括:
S301、根据所述禁用字体的字体名称以及与所述禁用字体的字体名称相应字体配置语句之间的映射关系,确定所述禁用字体对应的字体配置语句;
S302、根据所述字体配置语句中的位置标签,确定所述字体配置语句所在的代码行数。
由上文可知,禁用字体的字体名称与相应字体配置语句之间具有一一对应的映射关系,因此,通过禁用字体可以准确确定与该禁用字体对应的字体配置语句。同时,由上文可知,字体配置语句即为设计人员具体写入应用程序执行脚本的代码,通常一个字体配置语句即为一行代码或者连续多行代码。通常,字体配置语句中都会带有位置标签等标识以显示该字体配置语句在执行脚本中的精确位置,因此,设计人员可以根据该位置标签准确确定字体配置语句所在的代码行数。
进一步地,设计人员准确定位禁用字体所在的代码行数之后,为了避免商业纠纷,需要对该禁用字体进行修改,同时为了省略后续对修改后的字体再次进行检查的步骤,同时保证修改后的字体可用,设计人员可以直接将禁用字体修改为预设可用字体中的一种或几种的组合。
图5为本申请实施例提供的一种字体检查装置实施例一的结构示意图,所述装置包括:函数创建模块1,用于创建替代函数,所述替代函数由预设字体的字体名称和所述字体名称与相应字体配置语句之间的映射关系组成,用以在检查字体时替代应用程序执行脚本中所述预设字体对应的完整的字体配置语句,所述字体配置语句包括根据开发需求创建的自定义配置语句以及从第三方平台调用字体文件的字体调用语句;名称获取模块2,用于在检查所述预设字体时,从所述替代函数中获取所述字体名称;禁用字体确定模块3,用于确定禁用字体,所述禁用字体为不属于预设可用字体名称名单的字体名称所对应的预设字体。
图6为本申请实施例提供的一种字体检查装置实施例二的结构示意图,所述函数创建模块1包括:语句获取模块11,用于从所述应用程序执行脚本中获取所述自定义配置语句和所述字体调用语句;字体名称获取模块12,用于获取字体名称,所述字体名称为所述自定义配置语句和所述字体调用语句中所调用字体的名称;关系确定模块13,用于对所述自定义配置语句和所述字体调用语句进行语法分析,确定字体名称与所述自定义配置语句或者所述字体调用语句之间的映射关系;汇总模块14,用于汇总所述字体名称和所述映射关系,得到替代函数。
图7为本申请实施例提供的一种字体检查装置实施例三的结构示意图,所述装置还包括:可用字体获取模块4,用于从所述应用程序执行脚本对应的执行系统中获取全部预设可用字体的字体名称,所述预设可用字体为允许在所述应用程序中使用的字体;名单生成模块5,用于汇总全部所述预设可用字体的字体名称,得到预设可用字体名称名单。
图8为本申请实施例提供的一种字体检查装置实施例四的结构示意图,所述装置还包括:通知发送模块6,用于向所述应用程序执行脚本对应的执行系统发送禁用通知,所述禁用通知包括所述禁用字体的字体名称。
图9为本申请实施例提供的一种字体检查装置实施例五的结构示意图,所述装置还包括:语句确定模块7,用于根据所述禁用字体的字体名称以及与所述禁用字体的字体名称相应字体配置语句之间的映射关系,确定所述禁用字体对应的字体配置语句;行数定位模块8,用于根据所述字体配置语句中的位置标签,确定所述字体配置语句所在的代码行数。
图10为本申请实施例提供的一种字体检查装置实施例六的结构示意图,所述装置还包括:替换模块9,用于将所述禁用字体替换为所述预设可用字体。
图11为本发明实施例提供的电子设备的硬件结构示意图。该电子设备包括:存储器101和处理器102;
存储器101,用于存储计算机程序;
处理器102,用于执行存储器存储的计算机程序,以实现上述实施例中的流量数据监控方法。具体可以参见前述方法实施例中的相关描述。
可选地,存储器101既可以是独立的,也可以跟处理器102集成在一起。
当所述存储器101是独立于处理器102之外的器件时,所述电子设备还可以包括:
总线103,用于连接所述存储器101和处理器102。
本发明实施例提供的电子设备可用于执行上述实施例中任一所示的字体检查方法,其实现方式和技术效果类似,本发明实施例此处不再赘述。
本发明实施例还提供一种可读存储介质,可读存储介质中存储有计算机程序,当消息发送的装置的至少一个处理器执行该计算机程序时,消息发送的装置执行上述实施例任一所述的字体检查方法。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于以计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换,而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (12)

1.一种字体检查方法,其特征在于,包括:
创建替代函数,所述替代函数由预设字体的字体名称和所述字体名称与相应字体配置语句之间的映射关系组成,用以在检查字体时替代应用程序执行脚本中所述预设字体对应的完整的字体配置语句,所述字体配置语句包括根据开发需求创建的自定义配置语句以及从第三方平台调用字体文件的字体调用语句,其中,所述创建替代函数包括:从所述应用程序执行脚本中获取所述自定义配置语句和所述字体调用语句;获取字体名称,所述字体名称为所述自定义配置语句和所述字体调用语句中所调用字体的名称;对所述自定义配置语句和所述字体调用语句进行语法分析,确定字体名称与所述自定义配置语句或者所述字体调用语句之间的映射关系;汇总所述字体名称和所述映射关系,得到替代函数;
在检查所述预设字体时,从所述替代函数中获取所述字体名称;
确定禁用字体,所述禁用字体为不属于预设可用字体名称名单的字体名称所对应的预设字体。
2.根据权利要求1所述的方法,其特征在于,所述创建替代函数之前包括:
从所述应用程序执行脚本对应的执行系统中获取全部预设可用字体的字体名称,所述预设可用字体为允许在所述应用程序中使用的字体;
汇总全部所述预设可用字体的字体名称,得到预设可用字体名称名单。
3.根据权利要求1所述的方法,其特征在于,所述确定禁用字体之后包括:
向所述应用程序执行脚本对应的执行系统发送禁用通知,所述禁用通知包括所述禁用字体的字体名称。
4.根据权利要求3所述的方法,其特征在于,所述禁用通知还包括禁用字体对应的代码行数,所述确定禁用字体之后还包括:
根据所述禁用字体的字体名称以及与所述禁用字体的字体名称相应字体配置语句之间的映射关系,确定所述禁用字体对应的字体配置语句;
根据所述字体配置语句中的位置标签,确定所述字体配置语句所在的代码行数。
5.根据权利要求1-4中任一所述的方法,其特征在于,所述确定禁用字体之后包括:
将所述禁用字体替换为所述预设可用字体。
6.一种字体检查装置,其特征在于,包括:
函数创建模块,用于创建替代函数,所述替代函数由预设字体的字体名称和所述字体名称与相应字体配置语句之间的映射关系组成,用以在检查字体时替代应用程序执行脚本中所述预设字体对应的完整的字体配置语句,所述字体配置语句包括根据开发需求创建的自定义配置语句以及从第三方平台调用字体文件的字体调用语句,其中,所述函数创建模块包括:语句获取模块,用于从所述应用程序执行脚本中获取所述自定义配置语句和所述字体调用语句;字体名称获取模块,用于获取字体名称,所述字体名称为所述自定义配置语句和所述字体调用语句中所调用字体的名称;关系确定模块,用于对所述自定义配置语句和所述字体调用语句进行语法分析,确定字体名称与所述自定义配置语句或者所述字体调用语句之间的映射关系;汇总模块,用于汇总所述字体名称和所述映射关系,得到替代函数;
名称获取模块,用于在检查所述预设字体时,从所述替代函数中获取所述字体名称;
禁用字体确定模块,用于确定禁用字体,所述禁用字体为不属于预设可用字体名称名单的字体名称所对应的预设字体。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
可用字体获取模块,用于从所述应用程序执行脚本对应的执行系统中获取全部预设可用字体的字体名称,所述预设可用字体为允许在所述应用程序中使用的字体;
名单生成模块,用于汇总全部所述预设可用字体的字体名称,得到预设可用字体名称名单。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:
通知发送模块,用于向所述应用程序执行脚本对应的执行系统发送禁用通知,所述禁用通知包括所述禁用字体的字体名称。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
语句确定模块,用于根据所述禁用字体的字体名称以及与所述禁用字体的字体名称相应字体配置语句之间的映射关系,确定所述禁用字体对应的字体配置语句;
行数定位模块,用于根据所述字体配置语句中的位置标签,确定所述字体配置语句所在的代码行数。
10.根据权利要求6-8中任一所述的装置,其特征在于,所述装置还包括:
替换模块,用于将所述禁用字体替换为所述预设可用字体。
11.一种电子设备,其特征在于,所述电子设备包括:
处理器,以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1-5任一所述的字体检查方法。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-5任一所述的字体检查方法。
CN201911313915.7A 2019-12-19 2019-12-19 一种字体检测方法、装置、电子设备及存储介质 Active CN110991147B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911313915.7A CN110991147B (zh) 2019-12-19 2019-12-19 一种字体检测方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911313915.7A CN110991147B (zh) 2019-12-19 2019-12-19 一种字体检测方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN110991147A CN110991147A (zh) 2020-04-10
CN110991147B true CN110991147B (zh) 2023-07-07

Family

ID=70095698

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911313915.7A Active CN110991147B (zh) 2019-12-19 2019-12-19 一种字体检测方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN110991147B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111814428A (zh) * 2020-06-29 2020-10-23 远光软件股份有限公司 一种检测字体版权信息的方法、装置、终端及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004013390A (ja) * 2002-06-05 2004-01-15 Canon Inc 文書処理装置、その制御方法、及び制御プログラム
US7031002B1 (en) * 1998-12-31 2006-04-18 International Business Machines Corporation System and method for using character set matching to enhance print quality
CN102385570A (zh) * 2010-08-31 2012-03-21 国际商业机器公司 字体匹配方法和系统
WO2017049800A1 (zh) * 2015-09-23 2017-03-30 百度在线网络技术(北京)有限公司 检测应用漏洞代码的方法和装置
CN110245333A (zh) * 2019-04-30 2019-09-17 五八有限公司 字体类型检测方法、装置、电子设备及存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110115797A1 (en) * 2009-11-19 2011-05-19 Kaplan Gregory A Dynamic Streaming of Font Subsets
US20110276872A1 (en) * 2010-05-06 2011-11-10 Xerox Corporation Dynamic font replacement
US9875429B2 (en) * 2015-10-06 2018-01-23 Adobe Systems Incorporated Font attributes for font recognition and similarity

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7031002B1 (en) * 1998-12-31 2006-04-18 International Business Machines Corporation System and method for using character set matching to enhance print quality
JP2004013390A (ja) * 2002-06-05 2004-01-15 Canon Inc 文書処理装置、その制御方法、及び制御プログラム
CN102385570A (zh) * 2010-08-31 2012-03-21 国际商业机器公司 字体匹配方法和系统
WO2017049800A1 (zh) * 2015-09-23 2017-03-30 百度在线网络技术(北京)有限公司 检测应用漏洞代码的方法和装置
CN110245333A (zh) * 2019-04-30 2019-09-17 五八有限公司 字体类型检测方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN110991147A (zh) 2020-04-10

Similar Documents

Publication Publication Date Title
US9098626B2 (en) Method and system for log file processing and generating a graphical user interface based thereon
US20160357519A1 (en) Natural Language Engine for Coding and Debugging
CN107506300B (zh) 一种用户界面测试方法、装置、服务器和存储介质
US8434062B2 (en) Enhancing source code debugging and readability using visual symbols
CN104572463A (zh) 测试接口信息的方法及装置
US20150261505A1 (en) Method and system for generating stateflow models from software requirements
US8732667B2 (en) Debugging services for domain specific languages
US8898649B2 (en) Application program analysis method, analysis system and recording medium for identifying a contributing factor for an invalid operation of an application program
JP2014199569A (ja) ソースプログラム解析システム、ソースプログラム解析方法およびプログラム
US9563541B2 (en) Software defect detection identifying location of diverging paths
CN110991147B (zh) 一种字体检测方法、装置、电子设备及存储介质
CN114373460A (zh) 车载语音助手的指令确定方法、装置、设备及介质
US8423913B1 (en) Methods and apparatus to display style-related information
CN110543641B (zh) 一种中外文信息对比方法及装置
CN110162729B (zh) 建立浏览器指纹以及识别浏览器类型的方法、装置
CN116009852A (zh) 代码构建方法、装置、计算机设备及存储介质
US7664776B1 (en) Methods and apparatus for dynamic form definition
US9165007B2 (en) Log message optimization to ignore or identify redundant log messages
CN115756934A (zh) 一种应用崩溃分析方法及装置
JP2016057715A (ja) 図形式プログラム解析装置
CN109948251B (zh) 基于cad的数据处理方法、装置、设备及存储介质
CN110737642B (zh) 数据库信息分析方法、装置、计算机装置及存储介质
CN113760317A (zh) 一种页面显示方法、装置、设备及存储介质
CN111611153B (zh) 一种用户界面过度绘制的检测方法和装置
JP2009042951A (ja) プログラム中のデータ抽出方法及び装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant